{
  "report_id": "010-occupancy",
  "status": "validated",
  "version": "1.4",
  "publication": {
    "headline": "El centro mediano utiliza el 48 % de sus plazas, aunque una de cada cinco clases soporta presión",
    "canonical_url": "https://wodbuster.com/observatorio/ocupacion-clases-deportivas/",
    "date_modified": "2026-07-19",
    "articles": [
      {
        "id": "empty-capacity",
        "path": "articles/por-que-quedan-plazas-vacias.html",
        "headline": "Tres de cada cuatro plazas vacías responden a falta de reservas en el centro mediano",
        "status": "validated"
      },
      {
        "id": "occupancy-regions",
        "path": "articles/ocupacion-comunidades.html",
        "headline": "La brecha territorial de ocupación se reduce a la mitad al comparar capacidades similares",
        "canonical_url": "https://wodbuster.com/observatorio/ocupacion-clases-deportivas/ocupacion-comunidades/",
        "status": "validated"
      },
      {
        "id": "capacity-occupancy",
        "path": "articles/capacidad-y-ocupacion.html",
        "headline": "Las clases de 17–20 plazas coinciden con 9,7 puntos más de ocupación",
        "canonical_url": "https://wodbuster.com/observatorio/ocupacion-clases-deportivas/capacidad-y-ocupacion/",
        "status": "validated"
      },
      {
        "id": "waitlist-final-gaps",
        "path": "articles/lista-espera-plazas-vacias.html",
        "headline": "El 56 % de las clases con lista de espera termina con alguna plaza sin utilizar",
        "canonical_url": "https://wodbuster.com/observatorio/ocupacion-clases-deportivas/lista-espera-plazas-vacias/",
        "status": "validated"
      }
    ]
  },
  "period": {
    "start": "2025-01-01",
    "end": "2025-12-31"
  },
  "sample": {
    "eligible_centers": 2152,
    "eligible_classes": 6905153,
    "effective_attendances": 32352093,
    "ordinary_places_offered": 76429427,
    "minimum_classes_per_center": 100,
    "paired_centers_12_19": 956
  },
  "definitions": {
    "occupancy": "Asistencias efectivas divididas por plazas ordinarias configuradas, calculadas dentro de cada centro antes de obtener el benchmark nacional.",
    "demand_pressure": "Proporción de clases que llegaron a estar completas en algún momento o generaron lista de espera.",
    "ordinary_places": "Plazas ordinarias reservables; no equivale al aforo físico o legal del local."
  },
  "findings": {
    "median_center_occupancy_pct": 48.31,
    "p25_center_occupancy_pct": 34.36,
    "p75_center_occupancy_pct": 62.04,
    "median_center_pressure_pct": 21.9,
    "median_center_ever_full_pct": 21.57,
    "median_center_waitlist_pct": 5.98,
    "centers_under_30_pct": 18.08,
    "centers_70_plus_pct": 12.83,
    "paired_median_occupancy_12_pct": 16.96,
    "paired_median_occupancy_19_pct": 60.1,
    "paired_median_difference_pp": 31.9,
    "paired_centers_higher_at_19_pct": 94.46,
    "paired_median_pressure_12_pct": 0.9,
    "paired_median_pressure_19_pct": 36.63
  },
  "series": {
    "occupancy_bands": [
      {
        "band": "Menos del 30 %",
        "centers": 389,
        "centers_pct": 18.08,
        "median_pressure_pct": 2.1
      },
      {
        "band": "Del 30 al 50 %",
        "centers": 765,
        "centers_pct": 35.55,
        "median_pressure_pct": 13.38
      },
      {
        "band": "Del 50 al 70 %",
        "centers": 722,
        "centers_pct": 33.55,
        "median_pressure_pct": 37.0
      },
      {
        "band": "70 % o más",
        "centers": 276,
        "centers_pct": 12.83,
        "median_pressure_pct": 71.98
      }
    ],
    "hourly_medians": [
      {
        "hour": "06:00",
        "centers": 278,
        "occupancy_pct": 41.71,
        "pressure_pct": 3.58
      },
      {
        "hour": "07:00",
        "centers": 1238,
        "occupancy_pct": 45.14,
        "pressure_pct": 8.9
      },
      {
        "hour": "08:00",
        "centers": 1546,
        "occupancy_pct": 38.03,
        "pressure_pct": 5.88
      },
      {
        "hour": "09:00",
        "centers": 1918,
        "occupancy_pct": 49.77,
        "pressure_pct": 17.9
      },
      {
        "hour": "10:00",
        "centers": 1844,
        "occupancy_pct": 42.54,
        "pressure_pct": 13.2
      },
      {
        "hour": "11:00",
        "centers": 1359,
        "occupancy_pct": 27.86,
        "pressure_pct": 6.03
      },
      {
        "hour": "12:00",
        "centers": 970,
        "occupancy_pct": 16.73,
        "pressure_pct": 0.9
      },
      {
        "hour": "13:00",
        "centers": 710,
        "occupancy_pct": 18.82,
        "pressure_pct": 0.4
      },
      {
        "hour": "14:00",
        "centers": 745,
        "occupancy_pct": 27.55,
        "pressure_pct": 0.59
      },
      {
        "hour": "15:00",
        "centers": 716,
        "occupancy_pct": 28.29,
        "pressure_pct": 1.38
      },
      {
        "hour": "16:00",
        "centers": 1333,
        "occupancy_pct": 41.28,
        "pressure_pct": 9.09
      },
      {
        "hour": "17:00",
        "centers": 1959,
        "occupancy_pct": 55.51,
        "pressure_pct": 26.66
      },
      {
        "hour": "18:00",
        "centers": 2055,
        "occupancy_pct": 61.57,
        "pressure_pct": 36.68
      },
      {
        "hour": "19:00",
        "centers": 2081,
        "occupancy_pct": 61.63,
        "pressure_pct": 37.72
      },
      {
        "hour": "20:00",
        "centers": 1880,
        "occupancy_pct": 53.91,
        "pressure_pct": 26.85
      },
      {
        "hour": "21:00",
        "centers": 874,
        "occupancy_pct": 39.56,
        "pressure_pct": 8.12
      }
    ]
  },
  "empty_capacity": {
    "definition": "Las plazas finales sin utilizar se separan entre hueco de demanda y fuga neta de reservas, descontando las sustituciones observadas.",
    "findings": {
      "median_center_unused_pct": 51.69,
      "median_center_demand_gap_share_pct": 73.28,
      "p25_center_demand_gap_share_pct": 51.92,
      "p75_center_demand_gap_share_pct": 86.82,
      "median_center_booking_leakage_share_pct": 26.72,
      "centers_booking_leakage_majority": 495,
      "centers_booking_leakage_majority_pct": 23.0,
      "median_replacement_recovery_pct": 29.15
    },
    "occupancy_quartiles": [
      {
        "quartile": 1,
        "centers": 538,
        "median_occupancy_pct": 25.75,
        "median_demand_gap_share_pct": 92.36,
        "median_booking_leakage_share_pct": 7.64
      },
      {
        "quartile": 2,
        "centers": 538,
        "median_occupancy_pct": 41.92,
        "median_demand_gap_share_pct": 79.54,
        "median_booking_leakage_share_pct": 20.46
      },
      {
        "quartile": 3,
        "centers": 538,
        "median_occupancy_pct": 55.2,
        "median_demand_gap_share_pct": 62.94,
        "median_booking_leakage_share_pct": 37.06
      },
      {
        "quartile": 4,
        "centers": 538,
        "median_occupancy_pct": 70.28,
        "median_demand_gap_share_pct": 35.23,
        "median_booking_leakage_share_pct": 64.77
      }
    ],
    "quality": {
      "reservation_outcome_identity_mismatches": 0,
      "center_accounting_identity_mismatches": 0
    }
  },
  "quality": {
    "non_cancelled_classes_reviewed": 7000684,
    "class_level_valid_rows": 6905700,
    "class_level_valid_pct": 98.64,
    "nonpositive_capacity_excluded": 40023,
    "capacity_above_100_excluded": 3078,
    "attendance_above_ordinary_capacity_excluded": 51883
  },
  "privacy": {
    "personal_identifiers_stored": false,
    "center_identifiers_exported": false,
    "minimum_centers_in_published_hour": 278
  },
  "limitations": [
    "La ocupación mide plazas ordinarias configuradas, no el aforo físico o legal del local.",
    "Una clase puede llenarse durante la reserva y terminar con plazas libres por cancelaciones o ausencias.",
    "El benchmark no indica por sí solo rentabilidad, calidad del servicio ni el nivel de ocupación óptimo.",
    "Las comparaciones horarias exigen al menos 30 clases por centro y hora; la comparación 12:00–19:00 utiliza únicamente centros presentes en ambas.",
    "La muestra representa centros usuarios de WodBuster y no todo el mercado español."
  ],
  "regional_occupancy": {
    "definition": {
      "occupancy": "Asistencias efectivas divididas por plazas ordinarias configuradas dentro de cada centro.",
      "regional_benchmark": "Mediana de las tasas anuales de los centros elegibles de cada comunidad."
    },
    "period": "2024-01-01/2025-12-31",
    "rules": {
      "minimum_classes_per_center_year": 100,
      "minimum_centers_per_region": 30,
      "maximum_largest_center_class_share_pct": 8.0,
      "valid_capacity_range": "1–100",
      "attendance_must_not_exceed_capacity": true
    },
    "sample": {
      "eligible_centers": {
        "2024": 1827,
        "2025": 2152
      },
      "published_regions_2025": 11,
      "published_centers_2025": 1966,
      "published_classes_2025": 6127751
    },
    "regions_2024": [
      {
        "community": "Cataluña",
        "centers": 100,
        "classes": 308860,
        "median_center_occupancy_pct": 35.01,
        "p25_center_occupancy_pct": 27.31,
        "p75_center_occupancy_pct": 51.17,
        "median_center_pressure_pct": 10.74,
        "centers_under_30_pct": 34.0,
        "centers_70_plus_pct": 4.0,
        "largest_center_class_share_pct": 2.95
      },
      {
        "community": "Comunidad de Madrid",
        "centers": 192,
        "classes": 646956,
        "median_center_occupancy_pct": 44.24,
        "p25_center_occupancy_pct": 29.85,
        "p75_center_occupancy_pct": 56.83,
        "median_center_pressure_pct": 17.51,
        "centers_under_30_pct": 26.04,
        "centers_70_plus_pct": 7.29,
        "largest_center_class_share_pct": 6.99
      },
      {
        "community": "Comunidad Valenciana",
        "centers": 300,
        "classes": 867293,
        "median_center_occupancy_pct": 44.45,
        "p25_center_occupancy_pct": 31.54,
        "p75_center_occupancy_pct": 57.9,
        "median_center_pressure_pct": 17.22,
        "centers_under_30_pct": 23.0,
        "centers_70_plus_pct": 11.0,
        "largest_center_class_share_pct": 1.92
      },
      {
        "community": "Canarias",
        "centers": 116,
        "classes": 310208,
        "median_center_occupancy_pct": 45.53,
        "p25_center_occupancy_pct": 33.93,
        "p75_center_occupancy_pct": 56.08,
        "median_center_pressure_pct": 20.19,
        "centers_under_30_pct": 18.97,
        "centers_70_plus_pct": 5.17,
        "largest_center_class_share_pct": 2.39
      },
      {
        "community": "Aragón",
        "centers": 30,
        "classes": 69003,
        "median_center_occupancy_pct": 49.09,
        "p25_center_occupancy_pct": 32.79,
        "p75_center_occupancy_pct": 61.0,
        "median_center_pressure_pct": 22.53,
        "centers_under_30_pct": 16.67,
        "centers_70_plus_pct": 10.0,
        "largest_center_class_share_pct": 7.91
      },
      {
        "community": "Islas Baleares",
        "centers": 68,
        "classes": 155356,
        "median_center_occupancy_pct": 49.58,
        "p25_center_occupancy_pct": 32.62,
        "p75_center_occupancy_pct": 66.11,
        "median_center_pressure_pct": 19.65,
        "centers_under_30_pct": 14.71,
        "centers_70_plus_pct": 17.65,
        "largest_center_class_share_pct": 6.41
      },
      {
        "community": "Andalucía",
        "centers": 627,
        "classes": 1756974,
        "median_center_occupancy_pct": 50.05,
        "p25_center_occupancy_pct": 35.36,
        "p75_center_occupancy_pct": 63.39,
        "median_center_pressure_pct": 24.71,
        "centers_under_30_pct": 18.82,
        "centers_70_plus_pct": 14.51,
        "largest_center_class_share_pct": 1.02
      },
      {
        "community": "Asturias",
        "centers": 32,
        "classes": 110298,
        "median_center_occupancy_pct": 51.57,
        "p25_center_occupancy_pct": 40.77,
        "p75_center_occupancy_pct": 63.78,
        "median_center_pressure_pct": 26.51,
        "centers_under_30_pct": 12.5,
        "centers_70_plus_pct": 15.62,
        "largest_center_class_share_pct": 6.48
      }
    ],
    "regions_2025": [
      {
        "community": "Cataluña",
        "centers": 115,
        "classes": 411301,
        "median_center_occupancy_pct": 35.61,
        "p25_center_occupancy_pct": 27.0,
        "p75_center_occupancy_pct": 48.12,
        "median_center_pressure_pct": 12.46,
        "centers_under_30_pct": 34.78,
        "centers_70_plus_pct": 6.09,
        "largest_center_class_share_pct": 2.61
      },
      {
        "community": "Región de Murcia",
        "centers": 96,
        "classes": 354207,
        "median_center_occupancy_pct": 42.63,
        "p25_center_occupancy_pct": 32.34,
        "p75_center_occupancy_pct": 54.43,
        "median_center_pressure_pct": 13.24,
        "centers_under_30_pct": 20.83,
        "centers_70_plus_pct": 8.33,
        "largest_center_class_share_pct": 7.94
      },
      {
        "community": "País Vasco",
        "centers": 40,
        "classes": 127610,
        "median_center_occupancy_pct": 42.65,
        "p25_center_occupancy_pct": 30.45,
        "p75_center_occupancy_pct": 59.53,
        "median_center_pressure_pct": 14.66,
        "centers_under_30_pct": 25.0,
        "centers_70_plus_pct": 12.5,
        "largest_center_class_share_pct": 6.83
      },
      {
        "community": "Comunidad de Madrid",
        "centers": 235,
        "classes": 802971,
        "median_center_occupancy_pct": 44.79,
        "p25_center_occupancy_pct": 33.12,
        "p75_center_occupancy_pct": 56.58,
        "median_center_pressure_pct": 18.84,
        "centers_under_30_pct": 20.0,
        "centers_70_plus_pct": 8.51,
        "largest_center_class_share_pct": 5.56
      },
      {
        "community": "Comunidad Valenciana",
        "centers": 348,
        "classes": 1092573,
        "median_center_occupancy_pct": 47.33,
        "p25_center_occupancy_pct": 32.76,
        "p75_center_occupancy_pct": 61.16,
        "median_center_pressure_pct": 19.3,
        "centers_under_30_pct": 19.83,
        "centers_70_plus_pct": 12.07,
        "largest_center_class_share_pct": 1.27
      },
      {
        "community": "Canarias",
        "centers": 137,
        "classes": 386050,
        "median_center_occupancy_pct": 47.94,
        "p25_center_occupancy_pct": 37.28,
        "p75_center_occupancy_pct": 60.68,
        "median_center_pressure_pct": 21.33,
        "centers_under_30_pct": 15.33,
        "centers_70_plus_pct": 8.03,
        "largest_center_class_share_pct": 2.83
      },
      {
        "community": "Aragón",
        "centers": 35,
        "classes": 86236,
        "median_center_occupancy_pct": 51.56,
        "p25_center_occupancy_pct": 39.71,
        "p75_center_occupancy_pct": 60.92,
        "median_center_pressure_pct": 25.62,
        "centers_under_30_pct": 11.43,
        "centers_70_plus_pct": 8.57,
        "largest_center_class_share_pct": 7.79
      },
      {
        "community": "Andalucía",
        "centers": 749,
        "classes": 2255576,
        "median_center_occupancy_pct": 52.42,
        "p25_center_occupancy_pct": 38.44,
        "p75_center_occupancy_pct": 65.05,
        "median_center_pressure_pct": 26.85,
        "centers_under_30_pct": 14.29,
        "centers_70_plus_pct": 16.69,
        "largest_center_class_share_pct": 0.74
      },
      {
        "community": "Castilla-La Mancha",
        "centers": 97,
        "classes": 287932,
        "median_center_occupancy_pct": 52.47,
        "p25_center_occupancy_pct": 37.41,
        "p75_center_occupancy_pct": 65.32,
        "median_center_pressure_pct": 26.8,
        "centers_under_30_pct": 14.43,
        "centers_70_plus_pct": 13.4,
        "largest_center_class_share_pct": 6.07
      },
      {
        "community": "Islas Baleares",
        "centers": 78,
        "classes": 191878,
        "median_center_occupancy_pct": 54.2,
        "p25_center_occupancy_pct": 39.91,
        "p75_center_occupancy_pct": 68.39,
        "median_center_pressure_pct": 23.54,
        "centers_under_30_pct": 10.26,
        "centers_70_plus_pct": 21.79,
        "largest_center_class_share_pct": 5.22
      },
      {
        "community": "Asturias",
        "centers": 36,
        "classes": 131417,
        "median_center_occupancy_pct": 54.86,
        "p25_center_occupancy_pct": 40.6,
        "p75_center_occupancy_pct": 64.41,
        "median_center_pressure_pct": 25.44,
        "centers_under_30_pct": 13.89,
        "centers_70_plus_pct": 11.11,
        "largest_center_class_share_pct": 7.45
      }
    ],
    "stability": [
      {
        "community": "Cataluña",
        "centers_2024": 100,
        "centers_2025": 115,
        "occupancy_2024_pct": 35.01,
        "occupancy_2025_pct": 35.61,
        "change_pp": 0.6
      },
      {
        "community": "Comunidad de Madrid",
        "centers_2024": 192,
        "centers_2025": 235,
        "occupancy_2024_pct": 44.24,
        "occupancy_2025_pct": 44.79,
        "change_pp": 0.55
      },
      {
        "community": "Comunidad Valenciana",
        "centers_2024": 300,
        "centers_2025": 348,
        "occupancy_2024_pct": 44.45,
        "occupancy_2025_pct": 47.33,
        "change_pp": 2.88
      },
      {
        "community": "Canarias",
        "centers_2024": 116,
        "centers_2025": 137,
        "occupancy_2024_pct": 45.53,
        "occupancy_2025_pct": 47.94,
        "change_pp": 2.41
      },
      {
        "community": "Aragón",
        "centers_2024": 30,
        "centers_2025": 35,
        "occupancy_2024_pct": 49.09,
        "occupancy_2025_pct": 51.56,
        "change_pp": 2.47
      },
      {
        "community": "Andalucía",
        "centers_2024": 627,
        "centers_2025": 749,
        "occupancy_2024_pct": 50.05,
        "occupancy_2025_pct": 52.42,
        "change_pp": 2.37
      },
      {
        "community": "Islas Baleares",
        "centers_2024": 68,
        "centers_2025": 78,
        "occupancy_2024_pct": 49.58,
        "occupancy_2025_pct": 54.2,
        "change_pp": 4.62
      },
      {
        "community": "Asturias",
        "centers_2024": 32,
        "centers_2025": 36,
        "occupancy_2024_pct": 51.57,
        "occupancy_2025_pct": 54.86,
        "change_pp": 3.29
      }
    ],
    "range_2025": {
      "minimum_pct": 35.61,
      "maximum_pct": 54.86,
      "gap_pp": 19.25,
      "minimum_region": "Cataluña",
      "maximum_region": "Asturias"
    },
    "standard_capacity_sensitivity_2025": {
      "definition": "Solo clases con 9–12 plazas y centros con al menos 50 clases de ese rango.",
      "regions": [
        {
          "community": "Comunidad de Madrid",
          "centers": 152,
          "classes": 201869,
          "median_center_occupancy_pct": 45.53,
          "p25_center_occupancy_pct": 26.89,
          "p75_center_occupancy_pct": 60.01,
          "median_center_pressure_pct": 16.41,
          "centers_under_30_pct": 28.29,
          "centers_70_plus_pct": 10.53,
          "largest_center_class_share_pct": 3.01
        },
        {
          "community": "Comunidad Valenciana",
          "centers": 221,
          "classes": 235430,
          "median_center_occupancy_pct": 46.74,
          "p25_center_occupancy_pct": 31.07,
          "p75_center_occupancy_pct": 61.11,
          "median_center_pressure_pct": 15.04,
          "centers_under_30_pct": 23.08,
          "centers_70_plus_pct": 11.76,
          "largest_center_class_share_pct": 2.82
        },
        {
          "community": "Canarias",
          "centers": 91,
          "classes": 87285,
          "median_center_occupancy_pct": 49.62,
          "p25_center_occupancy_pct": 40.38,
          "p75_center_occupancy_pct": 61.26,
          "median_center_pressure_pct": 22.3,
          "centers_under_30_pct": 15.38,
          "centers_70_plus_pct": 12.09,
          "largest_center_class_share_pct": 3.44
        },
        {
          "community": "Castilla-La Mancha",
          "centers": 64,
          "classes": 65777,
          "median_center_occupancy_pct": 51.14,
          "p25_center_occupancy_pct": 29.05,
          "p75_center_occupancy_pct": 65.11,
          "median_center_pressure_pct": 20.87,
          "centers_under_30_pct": 26.56,
          "centers_70_plus_pct": 12.5,
          "largest_center_class_share_pct": 6.97
        },
        {
          "community": "Andalucía",
          "centers": 478,
          "classes": 560908,
          "median_center_occupancy_pct": 53.14,
          "p25_center_occupancy_pct": 36.32,
          "p75_center_occupancy_pct": 66.28,
          "median_center_pressure_pct": 26.74,
          "centers_under_30_pct": 17.99,
          "centers_70_plus_pct": 19.67,
          "largest_center_class_share_pct": 1.23
        },
        {
          "community": "Islas Baleares",
          "centers": 55,
          "classes": 70941,
          "median_center_occupancy_pct": 54.14,
          "p25_center_occupancy_pct": 39.6,
          "p75_center_occupancy_pct": 68.71,
          "median_center_pressure_pct": 21.87,
          "centers_under_30_pct": 18.18,
          "centers_70_plus_pct": 25.45,
          "largest_center_class_share_pct": 7.92
        }
      ],
      "range": {
        "minimum_pct": 45.53,
        "maximum_pct": 54.14,
        "gap_pp": 8.61,
        "minimum_region": "Comunidad de Madrid",
        "maximum_region": "Islas Baleares"
      }
    },
    "excluded_regions": {
      "2024": [
        "País Vasco",
        "Región de Murcia",
        "Castilla y León",
        "Castilla-La Mancha",
        "Extremadura",
        "Galicia",
        "Navarra",
        "Cantabria",
        "Melilla",
        "La Rioja",
        "Ceuta"
      ],
      "2025": [
        "Castilla y León",
        "Cantabria",
        "Extremadura",
        "Galicia",
        "La Rioja",
        "Ceuta",
        "Melilla",
        "Navarra"
      ]
    },
    "limitations": [
      "La comunidad se aproxima mediante el código postal de facturación del centro.",
      "Las plazas ordinarias configuradas no equivalen al aforo físico o legal.",
      "La composición de tipos y tamaños de centro puede variar entre comunidades.",
      "La ocupación no mide rentabilidad, calidad del servicio ni un objetivo óptimo.",
      "La muestra representa centros usuarios de WodBuster y no todo el mercado español."
    ]
  },
  "capacity_occupancy": {
    "definition": {
      "unit": "Tasas calculadas dentro de cada centro y banda de plazas configuradas.",
      "occupancy": "Asistencias efectivas divididas por plazas ordinarias configuradas.",
      "pressure": "Proporción de clases que llegaron a llenarse o generaron lista de espera."
    },
    "period": "2024-01-01/2025-12-31",
    "rules": {
      "minimum_classes_per_center_band_year": 50,
      "minimum_centers_per_public_band": 100,
      "maximum_largest_center_class_share_pct": 3.0
    },
    "sample": {
      "2024": {
        "eligible_center_band_rows": 4912,
        "centers": 1850
      },
      "2025": {
        "eligible_center_band_rows": 5772,
        "centers": 2156
      }
    },
    "profiles_2024": [
      {
        "band": "02_5_8",
        "label": "5–8 plazas",
        "centers": 1164,
        "classes": 1447165,
        "median_occupancy_pct": 36.9,
        "median_attendances_per_class": 2.45,
        "median_configured_places_per_class": 6.67,
        "median_pressure_pct": 13.64,
        "largest_center_class_share_pct": 1.3
      },
      {
        "band": "03_9_12",
        "label": "9–12 plazas",
        "centers": 1211,
        "classes": 1375542,
        "median_occupancy_pct": 46.08,
        "median_attendances_per_class": 5.03,
        "median_configured_places_per_class": 10.87,
        "median_pressure_pct": 17.61,
        "largest_center_class_share_pct": 0.51
      },
      {
        "band": "04_13_16",
        "label": "13–16 plazas",
        "centers": 940,
        "classes": 1035842,
        "median_occupancy_pct": 52.03,
        "median_attendances_per_class": 7.76,
        "median_configured_places_per_class": 15.0,
        "median_pressure_pct": 21.33,
        "largest_center_class_share_pct": 0.88
      },
      {
        "band": "05_17_20",
        "label": "17–20 plazas",
        "centers": 573,
        "classes": 473870,
        "median_occupancy_pct": 51.44,
        "median_attendances_per_class": 9.82,
        "median_configured_places_per_class": 19.23,
        "median_pressure_pct": 16.25,
        "largest_center_class_share_pct": 1.2
      }
    ],
    "profiles_2025": [
      {
        "band": "01_1_4",
        "label": "1–4 plazas",
        "centers": 794,
        "classes": 1026027,
        "median_occupancy_pct": 34.49,
        "median_attendances_per_class": 0.85,
        "median_configured_places_per_class": 3.0,
        "median_pressure_pct": 19.33,
        "largest_center_class_share_pct": 2.71
      },
      {
        "band": "02_5_8",
        "label": "5–8 plazas",
        "centers": 1354,
        "classes": 1920141,
        "median_occupancy_pct": 40.11,
        "median_attendances_per_class": 2.64,
        "median_configured_places_per_class": 6.7,
        "median_pressure_pct": 17.06,
        "largest_center_class_share_pct": 0.88
      },
      {
        "band": "03_9_12",
        "label": "9–12 plazas",
        "centers": 1407,
        "classes": 1666789,
        "median_occupancy_pct": 49.4,
        "median_attendances_per_class": 5.35,
        "median_configured_places_per_class": 10.87,
        "median_pressure_pct": 20.91,
        "largest_center_class_share_pct": 0.55
      },
      {
        "band": "04_13_16",
        "label": "13–16 plazas",
        "centers": 1061,
        "classes": 1284746,
        "median_occupancy_pct": 52.14,
        "median_attendances_per_class": 7.73,
        "median_configured_places_per_class": 15.0,
        "median_pressure_pct": 22.29,
        "largest_center_class_share_pct": 0.73
      },
      {
        "band": "05_17_20",
        "label": "17–20 plazas",
        "centers": 695,
        "classes": 580685,
        "median_occupancy_pct": 54.23,
        "median_attendances_per_class": 10.32,
        "median_configured_places_per_class": 19.31,
        "median_pressure_pct": 22.0,
        "largest_center_class_share_pct": 1.04
      },
      {
        "band": "06_21_100",
        "label": "21–100 plazas",
        "centers": 461,
        "classes": 396196,
        "median_occupancy_pct": 48.7,
        "median_attendances_per_class": 12.79,
        "median_configured_places_per_class": 25.81,
        "median_pressure_pct": 12.96,
        "largest_center_class_share_pct": 2.16
      }
    ],
    "paired_comparisons": {
      "2024": {
        "9_12_vs_13_16": {
          "lower_band": "03_9_12",
          "upper_band": "04_13_16",
          "lower_label": "9–12 plazas",
          "upper_label": "13–16 plazas",
          "centers": 701,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 44.33,
              "upper_median": 53.28,
              "median_within_center_difference": 7.56,
              "centers_upper_higher_pct": 64.62
            },
            "attendances_per_class": {
              "lower_median": 4.9,
              "upper_median": 7.92,
              "median_within_center_difference": 2.9,
              "centers_upper_higher_pct": 82.88
            },
            "configured_places_per_class": {
              "lower_median": 11.25,
              "upper_median": 14.98,
              "median_within_center_difference": 3.8,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 15.58,
              "upper_median": 23.26,
              "median_within_center_difference": 3.49,
              "centers_upper_higher_pct": 59.06
            }
          },
          "largest_center_combined_class_share_pct": 0.78
        },
        "9_12_vs_17_20": {
          "lower_band": "03_9_12",
          "upper_band": "05_17_20",
          "lower_label": "9–12 plazas",
          "upper_label": "17–20 plazas",
          "centers": 392,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 39.48,
              "upper_median": 50.84,
              "median_within_center_difference": 9.06,
              "centers_upper_higher_pct": 66.58
            },
            "attendances_per_class": {
              "lower_median": 4.4,
              "upper_median": 9.69,
              "median_within_center_difference": 5.33,
              "centers_upper_higher_pct": 89.03
            },
            "configured_places_per_class": {
              "lower_median": 11.0,
              "upper_median": 19.12,
              "median_within_center_difference": 8.02,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 12.17,
              "upper_median": 16.37,
              "median_within_center_difference": 2.28,
              "centers_upper_higher_pct": 58.67
            }
          },
          "largest_center_combined_class_share_pct": 1.06
        },
        "13_16_vs_17_20": {
          "lower_band": "04_13_16",
          "upper_band": "05_17_20",
          "lower_label": "13–16 plazas",
          "upper_label": "17–20 plazas",
          "centers": 444,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 52.33,
              "upper_median": 55.57,
              "median_within_center_difference": 3.68,
              "centers_upper_higher_pct": 57.88
            },
            "attendances_per_class": {
              "lower_median": 7.82,
              "upper_median": 10.58,
              "median_within_center_difference": 2.7,
              "centers_upper_higher_pct": 79.95
            },
            "configured_places_per_class": {
              "lower_median": 15.01,
              "upper_median": 19.02,
              "median_within_center_difference": 3.99,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 22.69,
              "upper_median": 22.95,
              "median_within_center_difference": 0.96,
              "centers_upper_higher_pct": 54.05
            }
          },
          "largest_center_combined_class_share_pct": 1.09
        }
      },
      "2025": {
        "9_12_vs_13_16": {
          "lower_band": "03_9_12",
          "upper_band": "04_13_16",
          "lower_label": "9–12 plazas",
          "upper_label": "13–16 plazas",
          "centers": 817,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 46.87,
              "upper_median": 53.39,
              "median_within_center_difference": 5.33,
              "centers_upper_higher_pct": 59.85
            },
            "attendances_per_class": {
              "lower_median": 5.17,
              "upper_median": 7.94,
              "median_within_center_difference": 2.53,
              "centers_upper_higher_pct": 84.46
            },
            "configured_places_per_class": {
              "lower_median": 11.32,
              "upper_median": 15.0,
              "median_within_center_difference": 3.81,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 17.75,
              "upper_median": 25.0,
              "median_within_center_difference": 2.02,
              "centers_upper_higher_pct": 56.67
            }
          },
          "largest_center_combined_class_share_pct": 0.66
        },
        "9_12_vs_17_20": {
          "lower_band": "03_9_12",
          "upper_band": "05_17_20",
          "lower_label": "9–12 plazas",
          "upper_label": "17–20 plazas",
          "centers": 480,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 42.72,
              "upper_median": 55.07,
              "median_within_center_difference": 9.73,
              "centers_upper_higher_pct": 67.92
            },
            "attendances_per_class": {
              "lower_median": 4.79,
              "upper_median": 10.47,
              "median_within_center_difference": 5.34,
              "centers_upper_higher_pct": 90.42
            },
            "configured_places_per_class": {
              "lower_median": 11.15,
              "upper_median": 19.07,
              "median_within_center_difference": 8.0,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 12.97,
              "upper_median": 24.12,
              "median_within_center_difference": 4.51,
              "centers_upper_higher_pct": 60.62
            }
          },
          "largest_center_combined_class_share_pct": 1.12
        },
        "13_16_vs_17_20": {
          "lower_band": "04_13_16",
          "upper_band": "05_17_20",
          "lower_label": "13–16 plazas",
          "upper_label": "17–20 plazas",
          "centers": 519,
          "metrics": {
            "occupancy_pct": {
              "lower_median": 52.07,
              "upper_median": 57.3,
              "median_within_center_difference": 4.25,
              "centers_upper_higher_pct": 60.89
            },
            "attendances_per_class": {
              "lower_median": 7.9,
              "upper_median": 10.94,
              "median_within_center_difference": 2.79,
              "centers_upper_higher_pct": 83.04
            },
            "configured_places_per_class": {
              "lower_median": 15.02,
              "upper_median": 19.11,
              "median_within_center_difference": 3.98,
              "centers_upper_higher_pct": 100.0
            },
            "pressure_pct": {
              "lower_median": 22.94,
              "upper_median": 26.78,
              "median_within_center_difference": 2.64,
              "centers_upper_higher_pct": 58.19
            }
          },
          "largest_center_combined_class_share_pct": 0.97
        }
      }
    },
    "limitations": [
      "La comparación es descriptiva: los centros eligen capacidades diferentes para actividades y contextos distintos.",
      "Una banda mayor puede contener clases distintas incluso dentro del mismo centro.",
      "Las plazas configuradas no equivalen al aforo físico o legal.",
      "El análisis no mide precios, costes, margen, superficie ni calidad del servicio."
    ]
  },
  "waitlist_final_gaps": {
    "article_id": "163-waitlist-final-gaps",
    "status": "validated",
    "period": "2025-01-01/2025-12-31",
    "definitions": {
      "waitlist_class": "Clase no cancelada con al menos una entrada en lista de espera.",
      "final_empty_seat": "Diferencia positiva entre plazas ordinarias configuradas y asistencias efectivas.",
      "center_balancing": "Cada centro elegible pesa una vez mediante su proporción interna."
    },
    "primary": {
      "minimum_waitlist_classes_per_center": 50,
      "centers": 1481,
      "waitlist_classes": 679519,
      "ordinary_capacity": 7979072,
      "effective_attendances": 6985801,
      "classes_ending_with_empty_seat_share_pct": {
        "p25": 46.02,
        "median": 56.41,
        "p75": 66.22
      },
      "classes_ending_with_two_or_more_empty_seats_share_pct": {
        "p25": 23.08,
        "median": 33.2,
        "p75": 44.79
      },
      "final_occupancy_pct": {
        "p25": 85.23,
        "median": 88.16,
        "p75": 91.32
      },
      "empty_seats_per_waitlist_class": {
        "p25": 0.9,
        "median": 1.28,
        "p75": 1.78
      },
      "bootstrap_95_ci_primary_share_pct": [
        55.43,
        57.65
      ]
    },
    "sensitivity": [
      {
        "minimum_waitlist_classes_per_center": 20,
        "centers": 1705,
        "waitlist_classes": 687072,
        "ordinary_capacity": 8060528,
        "effective_attendances": 7059680,
        "classes_ending_with_empty_seat_share_pct": {
          "p25": 44.19,
          "median": 55.22,
          "p75": 65.82
        },
        "classes_ending_with_two_or_more_empty_seats_share_pct": {
          "p25": 21.5,
          "median": 32.01,
          "p75": 43.48
        },
        "final_occupancy_pct": {
          "p25": 85.42,
          "median": 88.55,
          "p75": 91.74
        },
        "empty_seats_per_waitlist_class": {
          "p25": 0.84,
          "median": 1.22,
          "p75": 1.74
        },
        "bootstrap_95_ci_primary_share_pct": [
          54.3,
          56.13
        ]
      },
      {
        "minimum_waitlist_classes_per_center": 50,
        "centers": 1481,
        "waitlist_classes": 679519,
        "ordinary_capacity": 7979072,
        "effective_attendances": 6985801,
        "classes_ending_with_empty_seat_share_pct": {
          "p25": 46.02,
          "median": 56.41,
          "p75": 66.22
        },
        "classes_ending_with_two_or_more_empty_seats_share_pct": {
          "p25": 23.08,
          "median": 33.2,
          "p75": 44.79
        },
        "final_occupancy_pct": {
          "p25": 85.23,
          "median": 88.16,
          "p75": 91.32
        },
        "empty_seats_per_waitlist_class": {
          "p25": 0.9,
          "median": 1.28,
          "p75": 1.78
        },
        "bootstrap_95_ci_primary_share_pct": [
          55.43,
          57.65
        ]
      },
      {
        "minimum_waitlist_classes_per_center": 100,
        "centers": 1240,
        "waitlist_classes": 662027,
        "ordinary_capacity": 7765799,
        "effective_attendances": 6795341,
        "classes_ending_with_empty_seat_share_pct": {
          "p25": 46.78,
          "median": 56.97,
          "p75": 66.28
        },
        "classes_ending_with_two_or_more_empty_seats_share_pct": {
          "p25": 23.75,
          "median": 34.04,
          "p75": 45.14
        },
        "final_occupancy_pct": {
          "p25": 85.27,
          "median": 88.04,
          "p75": 90.93
        },
        "empty_seats_per_waitlist_class": {
          "p25": 0.92,
          "median": 1.32,
          "p75": 1.8
        },
        "bootstrap_95_ci_primary_share_pct": [
          55.86,
          58.33
        ]
      }
    ],
    "by_start_hour": [
      {
        "start_hour": 6,
        "centers": 57,
        "waitlist_classes": 4847,
        "median_center_classes_with_empty_seat_pct": 68.67,
        "median_center_final_occupancy_pct": 87.83
      },
      {
        "start_hour": 7,
        "centers": 326,
        "waitlist_classes": 23425,
        "median_center_classes_with_empty_seat_pct": 66.52,
        "median_center_final_occupancy_pct": 87.64
      },
      {
        "start_hour": 8,
        "centers": 353,
        "waitlist_classes": 24312,
        "median_center_classes_with_empty_seat_pct": 63.49,
        "median_center_final_occupancy_pct": 86.76
      },
      {
        "start_hour": 9,
        "centers": 817,
        "waitlist_classes": 65908,
        "median_center_classes_with_empty_seat_pct": 59.18,
        "median_center_final_occupancy_pct": 88.2
      },
      {
        "start_hour": 10,
        "centers": 627,
        "waitlist_classes": 44246,
        "median_center_classes_with_empty_seat_pct": 62.5,
        "median_center_final_occupancy_pct": 86.49
      },
      {
        "start_hour": 11,
        "centers": 258,
        "waitlist_classes": 16099,
        "median_center_classes_with_empty_seat_pct": 62.07,
        "median_center_final_occupancy_pct": 85.71
      },
      {
        "start_hour": 12,
        "centers": 90,
        "waitlist_classes": 5200,
        "median_center_classes_with_empty_seat_pct": 59.62,
        "median_center_final_occupancy_pct": 85.44
      },
      {
        "start_hour": 13,
        "centers": 50,
        "waitlist_classes": 3312,
        "median_center_classes_with_empty_seat_pct": 62.55,
        "median_center_final_occupancy_pct": 87.85
      },
      {
        "start_hour": 14,
        "centers": 78,
        "waitlist_classes": 4710,
        "median_center_classes_with_empty_seat_pct": 56.9,
        "median_center_final_occupancy_pct": 88.07
      },
      {
        "start_hour": 15,
        "centers": 94,
        "waitlist_classes": 5460,
        "median_center_classes_with_empty_seat_pct": 59.86,
        "median_center_final_occupancy_pct": 86.65
      },
      {
        "start_hour": 16,
        "centers": 326,
        "waitlist_classes": 21953,
        "median_center_classes_with_empty_seat_pct": 58.71,
        "median_center_final_occupancy_pct": 87.36
      },
      {
        "start_hour": 17,
        "centers": 925,
        "waitlist_classes": 76142,
        "median_center_classes_with_empty_seat_pct": 56.35,
        "median_center_final_occupancy_pct": 88.19
      },
      {
        "start_hour": 18,
        "centers": 1226,
        "waitlist_classes": 118800,
        "median_center_classes_with_empty_seat_pct": 53.85,
        "median_center_final_occupancy_pct": 88.89
      },
      {
        "start_hour": 19,
        "centers": 1257,
        "waitlist_classes": 129495,
        "median_center_classes_with_empty_seat_pct": 55.0,
        "median_center_final_occupancy_pct": 89.02
      },
      {
        "start_hour": 20,
        "centers": 901,
        "waitlist_classes": 80660,
        "median_center_classes_with_empty_seat_pct": 60.0,
        "median_center_final_occupancy_pct": 87.66
      },
      {
        "start_hour": 21,
        "centers": 254,
        "waitlist_classes": 16522,
        "median_center_classes_with_empty_seat_pct": 67.29,
        "median_center_final_occupancy_pct": 84.59
      }
    ],
    "quality": {
      "source_tenants_succeeded": 2174,
      "source_tenants_failed": 0,
      "centers_with_any_waitlist": 2018,
      "waitlist_classes_all_valid_centers": 689258,
      "waitlist_classes_marked_ever_full_pct": 96.54,
      "largest_center_waitlist_class_share_pct": 0.73,
      "reservation_and_waitlist_identities_reconciled": true,
      "personal_or_center_identifiers_exported": false
    },
    "limitations": [
      "Una plaza físicamente sin utilizar puede deberse a baja tardía, ausencia sin aviso u otra incidencia; no siempre estuvo disponible a tiempo para reasignarla.",
      "La clase tuvo lista en algún momento, pero el agregado no vincula una entrada concreta con una plaza concreta.",
      "Las plazas son la capacidad ordinaria configurada, no el aforo legal ni una medida de rentabilidad o calidad.",
      "La medición describe coexistencia entre presión previa y hueco final; no demuestra que una automatización o una política concreta los reduzca."
    ]
  }
}
