{
  "version": "madrid-discovery-20261031-v1",
  "generatedOn": "2026-10-31",
  "thresholdPct": 95,
  "sources": [
    {
      "id": "madrid_admin_20260831",
      "name": "Ayuntamiento de Madrid: límites administrativos, 31/08/2026",
      "origin_url": "https://datos.madrid.es/dataset/900012-0-limites-administrativos-mapas/information",
      "license": "CC-BY-4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Ayuntamiento de Madrid / Geoportal; geometrías reproyectadas por ZONARA",
      "terms_of_use": "Uso comercial con atribución, licencia y cambios identificados. Municipio, 21 distritos y barrios oficiales. Fecha del Geoportal 31/08/2026; secciones municipales de junio 2022 no usadas como cartografía de otras ediciones. Distribuciones: https://geoportal.madrid.es/fsdescargas/IDEAM_WBGEOPORTAL/LIMITES_ADMINISTRATIVOS/Termino_Municipal/Termino_municipal.zip; https://geoportal.madrid.es/fsdescargas/IDEAM_WBGEOPORTAL/LIMITES_ADMINISTRATIVOS/Distritos/Distritos.zip; https://geoportal.madrid.es/fsdescargas/IDEAM_WBGEOPORTAL/LIMITES_ADMINISTRATIVOS/Barrios/Barrios.zip",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_sections_2021",
      "name": "INE seccionado 2021, selección Madrid 28079",
      "origin_url": "https://www.ine.es/prodyser/cartografia/seccionado_2021.zip",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Seccionado cedido por el Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_sections_2022",
      "name": "INE seccionado 2022, selección Madrid 28079",
      "origin_url": "https://www.ine.es/prodyser/cartografia/seccionado_2022.zip",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Seccionado cedido por el Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_sections_2025",
      "name": "INE seccionado 2025, selección Madrid 28079",
      "origin_url": "https://www.ine.es/prodyser/cartografia/seccionado_2025.zip",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Seccionado cedido por el Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_sections_2026",
      "name": "INE seccionado 2026, selección Madrid 28079",
      "origin_url": "https://www.ine.es/prodyser/cartografia/seccionado_2026.zip",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Seccionado cedido por el Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_padron_2022",
      "name": "INE Padrón 2022: Madrid, edad/nacionalidad/nacimiento",
      "origin_url": "https://www.ine.es/jaxi/files/_px/es/csv_bdsc/t20/e245/p07/a2022/2801.csv",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Elaboración propia con datos del Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia. Tablas 2801, 2802 y 2805; población 01/01/2022. Reparto de conteos por área EPSG:3035; tasas desde conteos repartidos. 0–14 y 65 y más; no estimar edad 15 dentro de 15–19. https://www.ine.es/jaxi/files/_px/es/csv_bdsc/t20/e245/p07/a2022/2802.csv; https://www.ine.es/jaxi/files/_px/es/csv_bdsc/t20/e245/p07/a2022/2805.csv",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_adrh_2024",
      "name": "INE ADRH 2024: Madrid, renta media por persona y hogar, tabla 31097",
      "origin_url": "https://www.ine.es/jaxiT3/files/t/es/csv_bdsc/31097.csv",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Elaboración propia con datos del Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia. Renta fiscal 2024; referencia geográfica 01/01/2025. Actualización publicada 15/10/2026. Ponderación por área física de secciones: no es una renta observada de cada hogar o celda H3.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_ine_demography_2024",
      "name": "INE ADRH 2024: Madrid, población y tamaño de hogar, tabla 31105",
      "origin_url": "https://www.ine.es/jaxiT3/files/t/es/csv_bdsc/31105.csv",
      "license": "Condiciones de reutilización INE",
      "license_url": "https://www.ine.es/ss/Satellite?L=0&c=Page&cid=1254735849170&p=1254735849170&pagename=Ayuda%2FINELayout",
      "attribution": "Elaboración propia con datos del Instituto Nacional de Estadística",
      "terms_of_use": "Reutilización comercial/no comercial con fuente y fecha de actualización; identificar transformaciones, preservar el sentido y no sugerir respaldo. Geometría de cada edición estadística; supresiones conservadas como ausencia. Referencia demográfica 01/01/2025. Hogares estimados como población/tamaño medio publicado; no es un recuento censal.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_renfe_direct_20261031",
      "name": "Renfe Cercanías GTFS directo, Madrid",
      "origin_url": "https://ssl.renfe.com/ftransit/Fichero_CER_FOMENTO/fomento_transit.zip",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Origen de los datos: Renfe Operadora; elaboración propia ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Ficha oficial https://data.renfe.com/dataset/horarios-cercanias enlaza esta descarga y CC BY 4.0. Filtrar red de Madrid y servicio fechado, sin duplicar el feed CRTM. Datos de oferta programada, no servicio real.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_noise_20261031",
      "name": "Madrid: MER 2021 tráfico vial, Lden",
      "origin_url": "https://geoportal.madrid.es/fsdescargas/IDEAM_WBGEOPORTAL/MEDIO_AMBIENTE/INFORMACION_ACUSTICA/Mapa_Estrategico_Ruido_2021/MER2021.zip",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Ayuntamiento de Madrid; MER 2021",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Ficha Geoportal 470b89af-5d64-41d3-8bdb-2fe6badd0364 verifica EPSG:25830, GeoTIFF, CC BY 4.0. Año 2021, publicación 09/02/2023. Solo tráfico vial, no ruido total. NoData es ausencia. No promediar dBA linealmente.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_schools_20261031",
      "name": "Comunidad de Madrid: centros educativos",
      "origin_url": "https://datos.comunidad.madrid/catalogo/dataset/c750856d-3166-4dac-8e80-d1b824c968b5/resource/28d60557-1d73-4281-ab08-6cfd3b2f5f83/download/centros_educativos.csv",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Comunidad de Madrid; elaboración propia ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Ficha centros_educativos: licencia Creative Commons Attribution enlaza CC BY 4.0. Inventario anual; no acredita plazas ni asignación escolar.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_health_20261031",
      "name": "Comunidad de Madrid: establecimientos sanitarios autorizados",
      "origin_url": "https://datos.comunidad.madrid/catalogo/dataset/d8a0a444-adf5-4c04-8999-0eac3de52cb7/resource/2948b4da-8b39-42b7-b667-779a5284f39d/download/centros_servicios_establecimientos_sanitarios.csv",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Comunidad de Madrid; elaboración propia ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Ficha centros_servicios_establecimientos_sanitarios enlaza CC BY 4.0. Incluye centros públicos y privados; no todos son atención primaria.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_emt_20261031",
      "name": "CRTM: GTFS Madrid emt",
      "origin_url": "https://crtm.maps.arcgis.com/sharing/rest/content/items/868df0e58fca47e79b942902dffd7da0/data",
      "license": "CRTM Licencia de datos abiertos",
      "license_url": "https://www.crtm.es/licencia-de-uso",
      "attribution": "Powered by CRTM https://www.crtm.es/; datos explotados por ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Licencia permite fines comerciales/no comerciales. Distinguir datos brutos y explotados; oferta programada, no servicio real. Comprobar calendario del ZIP antes de producir indicadores. Ficha oficial: https://crtm.maps.arcgis.com/home/item.html?id=868df0e58fca47e79b942902dffd7da0",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_metro_20261031",
      "name": "CRTM: GTFS Madrid metro",
      "origin_url": "https://crtm.maps.arcgis.com/sharing/rest/content/items/5c7f2951962540d69ffe8f640d94c246/data",
      "license": "CRTM Licencia de datos abiertos",
      "license_url": "https://www.crtm.es/licencia-de-uso",
      "attribution": "Powered by CRTM https://www.crtm.es/; datos explotados por ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Licencia permite fines comerciales/no comerciales. Distinguir datos brutos y explotados; oferta programada, no servicio real. Comprobar calendario del ZIP antes de producir indicadores. Ficha oficial: https://crtm.maps.arcgis.com/home/item.html?id=5c7f2951962540d69ffe8f640d94c246",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_renfe_20261031",
      "name": "CRTM: GTFS Madrid renfe",
      "origin_url": "https://crtm.maps.arcgis.com/sharing/rest/content/items/1a25440bf66f499bae2657ec7fb40144/data",
      "license": "CRTM Licencia de datos abiertos",
      "license_url": "https://www.crtm.es/licencia-de-uso",
      "attribution": "Powered by CRTM https://www.crtm.es/; datos explotados por ZONARA",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Licencia permite fines comerciales/no comerciales. Distinguir datos brutos y explotados; oferta programada, no servicio real. Comprobar calendario del ZIP antes de producir indicadores. Ficha oficial: https://crtm.maps.arcgis.com/home/item.html?id=1a25440bf66f499bae2657ec7fb40144",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "aemet_madrid_3195_normals_1981_2010",
      "name": "AEMET Madrid Retiro 3195: normales 1981–2010",
      "origin_url": "https://www.aemet.es/es/serviciosclimaticos/datosclimatologicos/valoresclimatologicos?l=3195&k=mad",
      "license": "Condiciones generales de reutilización AEMET",
      "license_url": "https://www.aemet.es/es/nota_legal",
      "attribution": "Fuente: AEMET. Madrid Retiro (3195).",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Nota legal permite fines comerciales/no comerciales. Contexto de estación, no microclima de barrio. Ausencias de insolación y días cálidos permanecen Pendiente; no reconstruir anual desde meses.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_sale_20261031",
      "name": "MIVAU valor tasado municipal: Madrid",
      "origin_url": "https://apps.fomento.gob.es/BoletinOnline2/sedal/35103500.XLS",
      "license": "Reutilización sector público estatal RD 1495/2011",
      "license_url": "https://www.boe.es/eli/es/rd/2011/10/24/1495/con",
      "attribution": "Ministerio de Vivienda y Agenda Urbana, tabla 35103500",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. RD 1495/2011 artículos 1.5, 2, 7, 8 y anexo. Media municipal de tasaciones, no compraventa ni precio de barrio. No asignar variación espacial local a un único valor municipal.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_rent_20261031",
      "name": "MIVAU SERPAVI 2024: Madrid, secciones INE 2021",
      "origin_url": "https://cdn.mivau.gob.es/portal-web-mivau/vivienda/serpavi/2026-03_09_bd_SERPAVI_2011-2024%20-%20DEFINITIVO%20WEB_v2.xlsx",
      "license": "Reutilización sector público estatal RD 1495/2011",
      "license_url": "https://www.boe.es/eli/es/rd/2011/10/24/1495/con",
      "attribution": "Ministerio de Vivienda y Agenda Urbana, SERPAVI 2024",
      "terms_of_use": "Reutilización comercial con atribución, licencia y cambios identificados; conservar fecha y metadatos, sin sugerir respaldo institucional. Medianas fiscales de vivienda colectiva. Geografía INE 2021 según metadatos corregidos 08/07/2026. Media ponderada de medianas seccionales; no mediana de contratos del barrio. Supresiones ausentes, no cero. No representa anuncios ni alquiler comercial.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_osm_20261031",
      "name": "OpenStreetMap / Geofabrik Madrid, 30 octubre 2026",
      "origin_url": "https://download.geofabrik.de/europe/spain/madrid-261030.osm.pbf",
      "license": "ODbL-1.0",
      "license_url": "https://www.openstreetmap.org/copyright",
      "attribution": "© OpenStreetMap contributors; extracto Geofabrik; elaboración ZONARA",
      "terms_of_use": "Atribución OSM y enlace ODbL, conservar obligación de compartir base derivada bajo ODbL. Oferta derivada separada de fuentes independientes. Inventario no exhaustivo; distancia recta no es ruta caminable.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_interior_crime_2026q2",
      "name": "Interior: criminalidad municipal Madrid, enero–junio 2026",
      "origin_url": "https://estadisticasdecriminalidad.ses.mir.es/publico/portalestadistico/dam/jcr:23d540f0-d4aa-40a9-a3c4-6378b6f3e017/Balance%20de%20Criminalidad%20Segundo%20Trimestre%202026.pdf",
      "license": "Condiciones de reutilización Portal Estadístico de Criminalidad",
      "license_url": "https://estadisticasdecriminalidad.ses.mir.es/publico/portalestadistico/avisoLegal.html",
      "attribution": "Origen de los datos: Portal Estadístico de Criminalidad / Interior",
      "terms_of_use": "Uso comercial y no comercial con fuente, fecha y metadatos preservados; sin desnaturalizar ni sugerir respaldo. Enero–junio 2026/2025, datos provisionales. Contexto municipal Madrid 28079: no repartir infracciones entre barrios/celdas, no inferir seguridad individual.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_police_activity_202608",
      "name": "Ayuntamiento de Madrid: actuaciones policiales agosto 2026",
      "origin_url": "https://datos.madrid.es/en/dataset/212616-0-policia-estadisticas/resource/212616-152-policia-estadisticas/download/212616-152-policia-estadisticas.xlsx",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Fuente: Ayuntamiento de Madrid, Policía Municipal; elaboración propia ZONARA",
      "terms_of_use": "Catálogo 212616-0-policia-estadisticas, condiciones generales municipales https://datos.madrid.es/pages/condiciones-de-uso. Uso comercial con atribución/licencia/cambios. Actuaciones de seguridad ciudadana por distrito, no delitos, víctimas, riesgo ni puntuación de seguridad. Último recurso verificado del catálogo: agosto 2026.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_snczi_review_20261031",
      "name": "SNCZI: revisión de cobertura de inundación Madrid",
      "origin_url": "https://www.miteco.gob.es/gl/cartografia-y-sig/ide/descargas/agua/mapas-peligrosidad-por-inundacion-fluvial.html",
      "license": "Uso libre y gratuito con atribución MITECO",
      "license_url": "https://www.miteco.gob.es/gl/cartografia-y-sig/ide/descargas/agua/mapas-peligrosidad-por-inundacion-fluvial.html",
      "attribution": "Fuente: © Ministerio para la Transición Ecológica y el Reto Demográfico",
      "terms_of_use": "Uso libre/gratuito atribuyendo autor/propietario. Pendiente de dominio de estudio verificado; no cartografía no equivale a ausencia de riesgo. Catálogo consultado, sin observaciones incorporadas ni ceros imputados.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_official_education_20261031",
      "name": "Ayuntamiento de Madrid: centros educativos, consulta 31/10/2026",
      "origin_url": "https://datos.madrid.es/dataset/300614-0-centros-educativos/resource/300614-5-centros-educativos-json/download/300614-5-centros-educativos-json.json",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Fuente: Ayuntamiento de Madrid; elaboración propia ZONARA",
      "terms_of_use": "Licencia CC BY 4.0 declarada en la ficha y distribución; reutilización comercial con atribución, enlace a licencia y cambios identificados. https://datos.madrid.es/pages/condiciones-de-uso. Instantánea consultada 31/10/2026: inventario institucional no necesariamente exhaustivo; coordenadas geográficas explícitas en JSON. Distancias rectas y conteos a 500 m en EPSG:25830; no son itinerarios ni garantizan plaza, adscripción, horario o acceso público. No se exportan teléfonos, correos ni otros datos de contacto. Catálogo 300614: cualquier tipo de centro. Las categorías docentes se separan; un centro sin nivel docente confirmado no cuenta como primaria. No inferir nivel ni titularidad a partir del nombre.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "madrid_official_health_20261031",
      "name": "Ayuntamiento de Madrid: centros de atención médica, 31/10/2026",
      "origin_url": "https://datos.madrid.es/dataset/212769-0-atencion-medica/resource/212769-2-atencion-medica-json/download/212769-2-atencion-medica-json.json",
      "license": "CC BY 4.0",
      "license_url": "https://creativecommons.org/licenses/by/4.0/",
      "attribution": "Fuente: Ayuntamiento de Madrid; elaboración propia ZONARA",
      "terms_of_use": "Licencia CC BY 4.0 declarada en la ficha y distribución; reutilización comercial con atribución, enlace a licencia y cambios identificados. https://datos.madrid.es/pages/condiciones-de-uso. Instantánea consultada 31/10/2026: inventario institucional no necesariamente exhaustivo; coordenadas geográficas explícitas en JSON. Distancias rectas y conteos a 500 m en EPSG:25830; no son itinerarios ni garantizan plaza, adscripción, horario o acceso público. No se exportan teléfonos, correos ni otros datos de contacto. Catálogo 212769: centros sanitarios públicos y privados. Separar atención primaria, hospitales y otros servicios según categoría oficial; no confundir Madrid Salud con toda la atención primaria.",
      "consulted_on": "2026-10-31"
    },
    {
      "id": "ign_admin_2026",
      "name": "IGN/CNIG Unidades Administrativas, 10 agosto 2026",
      "origin_url": "https://centrodedescargas.cnig.es/CentroDescargas/documentos/atom/au/lineas_limite_gml.zip",
      "license": "CC-BY-4.0; Orden FOM/2807/2015",
      "license_url": "https://www.ign.es/resources/licencia/Condiciones_licenciaUso_IGN.pdf",
      "attribution": "Obra derivada de Unidades Administrativas IGN/CNIG (10-08-2026), CC BY 4.0 ign.es",
      "terms_of_use": "Conservar atribución, producto, fecha y licencia. Geometrías reproyectadas a EPSG:4326; CCAA/provincias simplificadas.",
      "consulted_on": "2026-10-29"
    }
  ],
  "methodology": {
    "municipality": "28079",
    "missing": "Pendiente, nunca cero ni un dato de otra ciudad.",
    "sale": "MIVAU es tasación municipal; no hay variación por barrio.",
    "resolution": {
      "policy": "Latest edition only. Res9 only for cells intersecting districts 1–7 or official barrios with Padrón 2022 estimated density >=5000 people/km², plus the closed OSM M-30 interior/corridor; res8 elsewhere, including partial parent cohorts. All parents retained for overview.",
      "m30": {
        "source_id": "madrid_osm_20261031",
        "source_sha256": "24a35e3f03274f877827eb2412f44794f1ce8ae085dbb839f09e3fb100eb4069",
        "source_url": "https://download.geofabrik.de/europe/spain/madrid-261030.osm.pbf",
        "license": "ODbL-1.0",
        "license_url": "https://opendatacommons.org/licenses/odbl/1-0/",
        "attribution": "© OpenStreetMap contributors; Geofabrik Madrid 2026-10-30",
        "method": "Select OSM ways ref=M-30. Buffer40m in EPSG25830; take largest closed interior and expand40m to cover the road corridor edge. Storage-resolution selection only, not an administrative boundary.",
        "road_ways": 400,
        "interior_km2": 55.45314743403785,
        "corridor_buffer_m": 40
      },
      "densityThresholdPeopleKm2": 5000,
      "centralDistricts": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7"
      ],
      "refinedNeighbourhoodIds": [
        "011",
        "012",
        "013",
        "014",
        "015",
        "016",
        "021",
        "022",
        "023",
        "024",
        "025",
        "026",
        "027",
        "031",
        "032",
        "033",
        "034",
        "035",
        "036",
        "041",
        "042",
        "043",
        "044",
        "045",
        "046",
        "051",
        "052",
        "053",
        "054",
        "055",
        "056",
        "061",
        "062",
        "063",
        "064",
        "065",
        "066",
        "071",
        "072",
        "073",
        "074",
        "075",
        "076",
        "083",
        "084",
        "085",
        "086",
        "087",
        "092",
        "094",
        "101",
        "102",
        "103",
        "104",
        "107",
        "111",
        "112",
        "113",
        "114",
        "115",
        "116",
        "117",
        "121",
        "122",
        "123",
        "124",
        "125",
        "126",
        "127",
        "131",
        "132",
        "133",
        "134",
        "135",
        "136",
        "141",
        "142",
        "143",
        "144",
        "145",
        "146",
        "151",
        "152",
        "153",
        "154",
        "155",
        "156",
        "157",
        "158",
        "159",
        "161",
        "163",
        "164",
        "165",
        "172",
        "174",
        "175",
        "182",
        "183",
        "192",
        "193",
        "201",
        "202",
        "203",
        "204",
        "207",
        "208",
        "211",
        "213"
      ],
      "refinedParents": 300,
      "partialParents": 83,
      "coarseOnlyParents": 611,
      "fullRes9": 5871,
      "storedRes9": 1820,
      "storedRes8": 911,
      "populationAllocationTotal": 3280782.0
    }
  },
  "city": {
    "incomeMedian": 21112.750474,
    "incomeMedianLabel": "Mediana de rentas medias estimadas de barrios con cobertura ≥95 %; no mediana de hogares."
  },
  "neighbourhoods": [
    {
      "id": "011",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 25696.718025,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 7.302965075828979,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.153725313137535,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 27555.2083,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 57686.587044,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.33668,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.616074,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4655.925579,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.691682,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.515017,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 701.276404,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 17.736783,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 17.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.224556,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 283.413165,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 441.619208,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 295.966583,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 422.714315,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 197.365213,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 288.401068,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 89.927037,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 222757.675392,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 89.928636,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "012",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 45246.790579,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 7.725484332191179,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 14.146745298595423,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20503.407113,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 43433.058008,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.907844,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.626021,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 7097.163811,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.930523,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.197398,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1073.307602,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.365971,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 129.68589,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 352.482242,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 125.02564,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 348.296256,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 146.419614,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 146.87314,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 294.565184,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 36582.213902,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 144.608769,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "013",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 10831.218209,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 6.20224055168419,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.662823499394978,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28751.989482,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 61780.175594,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.963012,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.062641,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 8599.974326,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.150459,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.305453,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1104.481441,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.293257,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 212.83665,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 265.84274,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 240.791398,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 243.547117,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 154.015806,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 162.384832,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 403.28541,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 68644.560348,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 138.299356,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "014",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 17586.131058,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 6.910933075567666,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 15.895342845909095,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 32480.074201,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 68800.521825,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 19.355438,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.435894,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5902.928132,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.900397,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.916195,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1235.786552,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.348245,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 215.854438,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 326.543446,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 210.364591,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 213.026322,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 132.460572,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 198.168023,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 200.00525,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 39636.567787,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 132.592961,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "015",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 33689.4096,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 6.845756917034247,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.60950542748603,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 25449.207006,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 51706.534436,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.174714,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 32.331964,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4818.72669,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.246575,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.362598,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1510.795618,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.098446,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 150.235964,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 323.728638,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 164.885822,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 178.527827,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 101.605547,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 147.001479,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 261.418387,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 37878.793379,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 174.355782,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "016",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 8809.462546,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 5.8166665710232985,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.09902843214835,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 23701.693472,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49490.848153,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.733447,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 30.145413,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5675.592279,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.142043,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.806785,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1858.990682,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.949864,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 340.531976,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 416.057043,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 281.363074,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 347.835889,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 116.527136,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 124.151452,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 603.995119,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 16083.913513,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 175.200212,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "021",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 21457.633627,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.056637462971256,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.799634242259124,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 26411.791403,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 61375.027891,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.615821,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 29.382113,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3776.623902,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.947975,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.8225,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 196.316962,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.566861,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.231071,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 157.930105,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 417.128863,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 158.65988,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 213.728839,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 139.395758,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 245.959866,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 82.53712,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 202732.075021,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 21.023829,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "022",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 35984.835027,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.295554684327994,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.036312947496345,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 26510.688482,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 62243.185402,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.655504,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.564047,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4892.101942,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.921507,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.237352,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 375.041536,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.902933,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 128.166761,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 358.55499,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 144.473268,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 370.299615,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 138.609027,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 198.9874,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 72.866741,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 182979.517936,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 34.859587,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "023",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20432.843785,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.897808549217565,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.94962815916228,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19064.380216,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44605.037861,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.445912,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 27.096296,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4733.135421,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.518592,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.529011,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 347.595091,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.07686,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 187.614031,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 336.12126,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 211.878473,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 302.788883,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 165.952109,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 258.442684,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 89.142492,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 162516.668111,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 26.30816,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "024",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19190.609135,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.068372276813612,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 10.945589633051533,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 27109.616423,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 67917.400308,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.825192,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 13.417894,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1727.117414,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.71452,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.354459,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 88.079203,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 33.261976,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 33.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.130822,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 297.820255,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 568.02903,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 370.890055,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 503.996563,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 299.263177,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 409.207647,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 70.198595,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 236431.917974,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.744543,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "025",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 27460.136894,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.528556369839924,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.091635133419523,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 24978.055885,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 61798.582998,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.264741,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.354385,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3133.874852,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.849374,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.938158,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 246.215626,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.015488,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.555276,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 151.787799,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 495.765566,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 203.046697,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 433.904937,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 186.048699,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 236.335276,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 77.195099,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 98081.202206,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 18.813384,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "026",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 23891.346845,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 8.86334155934439,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.4246998388508,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 22572.397748,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49905.758632,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.104367,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 28.373473,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 7794.446668,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.297826,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.985508,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 522.754161,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 1.101714,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 176.762141,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 298.835183,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 161.075894,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 363.931936,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 123.198923,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 212.031782,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 160.883966,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 36051.225652,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 50.206512,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "027",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 7349.6709,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.23692792829676,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.064522086288246,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 23363.968788,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 59229.645881,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.446022,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.900563,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4174.360446,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.482259,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.318353,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 179.66731,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.74449,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 217.694086,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 618.708084,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 238.605274,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 599.108521,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 234.780754,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 376.596194,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 127.334177,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 77202.141428,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 9.012212,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "031",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 28475.932973,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.708371092252747,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.048336983490763,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 25560.20221,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 61134.517799,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.369456,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.980968,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5123.905729,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 5.187128,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.837203,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 422.433278,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.108669,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 129.956346,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 439.732873,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 128.229284,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 195.291022,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 128.772206,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 216.902379,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 169.029594,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 72348.884383,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 25.474842,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "032",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19091.973901,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.660808413756483,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.237019142256578,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 24727.685333,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 59796.850928,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.294295,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.923978,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4065.596508,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.429273,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.475412,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 308.118212,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.078861,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.207338,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 197.219394,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 457.587819,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 229.8714,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 319.448677,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 150.352503,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 251.12005,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 86.25671,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 75453.591915,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 11.087726,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "033",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 22254.296149,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.260046589353042,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 30.922592401598944,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28676.949798,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 75123.839962,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 68.440495,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 68.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.457701,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3080.469339,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.977991,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.108017,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 124.018619,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.470459,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 170.308728,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 752.196859,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 149.927873,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 440.224379,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 157.90653,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 319.045426,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 120.075279,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 146085.757707,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.409963,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "034",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18112.794741,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.229468754459617,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.229984645360695,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29341.170227,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 70992.579345,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.135548,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 30.60614,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5942.011565,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.968942,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.663621,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 424.531071,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.007989,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 195.32082,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 285.990061,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 211.529247,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 84.624858,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 91.903034,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 223.938542,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 117.064639,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 126251.90568,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 18.874177,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "035",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 12172.904223,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.505026307393795,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.736213247375026,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29969.003738,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 77694.643954,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.372406,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.112855,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5562.152674,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.405596,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.375136,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 208.750812,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 39.794737,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 39.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.237894,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 349.113817,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 517.438384,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 418.676254,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 344.939795,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 325.674286,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 585.607339,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 39.579859,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 425925.931674,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 13.461963,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "036",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 16366.269931,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.47808586568521,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.38521301369094,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 33445.397355,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 88854.518144,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.782232,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901064,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.770372,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4413.513192,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 4.958132,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.519416,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 308.723602,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 149.79172,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 491.216693,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 129.530554,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 207.428776,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 175.06721,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 294.08462,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 127.792016,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 143014.279074,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 15.778026,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "041",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 14409.886683,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.516377819874073,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.352094204667523,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38897.171007,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 102507.12293,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 20.978662,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 23.500323,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 7037.393403,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.734547,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.015451,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 615.54731,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.431985,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 272.741681,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 764.408125,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 266.575118,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 202.056064,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 139.61756,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 392.612298,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 265.584971,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 96017.466404,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 17.095595,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "042",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 29310.470156,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.871083256601175,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.988226908604215,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31185.071779,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 73706.013368,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.261113,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 41.921865,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 8496.377589,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.075894,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.292828,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 567.891701,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 225.383999,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 431.83037,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 245.883926,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 153.46693,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 124.909391,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 148.886358,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 401.373649,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 28838.875536,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 35.809909,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "043",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 21236.495725,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.250567990072664,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.04169879468191,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 26247.520515,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 63526.602058,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.162578,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 19.071772,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4224.966313,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.388862,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.572116,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 190.768172,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 7.818189,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 7.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 161.523901,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 571.406959,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 163.046791,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 473.717059,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 205.977937,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 220.174479,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 146.797045,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 149346.518645,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 22.634204,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "044",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 43212.838251,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.661089591571526,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.014624958729375,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 27008.827325,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 63714.40532,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.77755,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.428851,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3152.740058,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.457966,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.017406,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 218.253137,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 175.41678,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 352.912935,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 169.796805,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 323.856795,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 145.657809,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 226.658653,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 138.706409,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 66451.279471,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 23.065469,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "045",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19638.301256,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.964259293568707,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.072838191926756,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31422.240376,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 74380.932966,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.697622,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 34.827187,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4646.138939,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.339392,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.777401,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 425.638035,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 146.269017,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 391.986812,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 115.517703,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 133.088792,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 98.534433,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 194.319313,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 253.398751,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 22979.676386,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 32.611519,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "046",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 16469.045326,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.975312062602796,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.778000172345877,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38117.115043,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 101217.832845,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 20.672018,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 27.467152,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5121.995062,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.325839,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.879041,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 363.508927,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 248.784095,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 398.513541,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 168.746396,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 212.165241,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 100.193428,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 237.859181,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 323.32456,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 20874.233768,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 17.223369,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "051",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19218.123411,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.339905209697063,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.335095150565742,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38944.532678,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 105911.471699,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 19.948691,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 27.400872,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 8188.746715,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 5.472219,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.527137,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 182.575973,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.130323,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 158.655239,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 464.295657,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 118.011968,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 230.315525,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 197.877088,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 562.021337,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 269.149306,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 29892.780696,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 11.798053,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "052",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 33866.762822,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.457962975720987,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.585260311243104,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28019.555562,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 65595.270792,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.151698,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.128634,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2017.369412,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.868517,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.53583,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 235.011639,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 163.681123,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 365.572907,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 171.601288,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 297.450104,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 127.131303,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 223.933155,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 177.299375,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 49094.879634,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 16.567512,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "053",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19607.394037,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.505242740279817,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.818363175581652,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 30326.256043,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 76220.371069,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.961076,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.869645,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1845.096678,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.155166,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.4691,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 219.898416,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 127.548997,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 508.659686,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 113.256673,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 350.915111,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 169.315928,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 270.198687,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 146.451873,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 52435.746647,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 15.309901,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "054",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 31358.652799,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.333930847735077,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.653313784087477,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 35981.004743,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 94884.996806,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.366281,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.715068,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4644.524699,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.358551,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.893224,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 226.516536,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 162.924695,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 363.760661,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 196.142169,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 289.06307,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 149.740412,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 261.212716,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 176.981348,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 48413.115631,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 20.273759,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "055",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 24845.91428,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.24843807035786,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.924983200899938,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 37317.851178,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 101615.579788,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.217699,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 23.70552,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5144.194673,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 4.898791,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.338039,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 202.907297,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.042226,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 145.558291,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 597.898536,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 168.074166,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 227.477474,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 198.46939,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 321.03927,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 288.48306,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 52295.544579,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 15.218553,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "056",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 16124.109942,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.038060528997104,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.132923192889997,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 30629.92633,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 76462.597114,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.363831,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.342692,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2349.581461,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.083426,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.306044,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 98.573144,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 11.048853,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 11.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.334794,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 267.72157,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 696.726261,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 258.881438,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 379.451837,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 293.976517,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 565.717861,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 519.708184,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 36968.930065,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 5.716521,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "061",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 28050.228707,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.015803576064584,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.588236022827235,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19710.734002,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 47332.523945,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.881369,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.114562,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3384.987759,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.24111,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.923181,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 557.154336,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 153.777303,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 379.103028,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 155.134469,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 339.743964,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 132.362841,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 167.996327,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 228.0261,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 43019.347397,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 24.085547,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "062",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 35586.673817,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.229979215593067,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.530163156664198,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29648.358245,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 68698.505269,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.231348,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.284929,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 8982.496619,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.126921,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.611784,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 501.022692,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.222043,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 181.909837,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 444.939221,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 186.965588,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 245.615054,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 98.906282,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 218.718861,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 157.243047,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 41801.294619,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 34.252336,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "063",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19832.380174,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.71994353217969,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.708088105148885,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29902.071822,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 69791.914445,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.738425,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 29.68957,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 10112.098753,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.015085,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.055985,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 634.357204,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 191.294636,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 379.541453,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 200.161552,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 202.64963,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 98.653273,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 170.384398,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 233.724592,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 37422.407452,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 44.397895,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "064",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 22172.857183,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.08545691118476,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.612880032142133,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18618.221486,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 45938.040242,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.592606,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 28.136439,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4955.055858,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.604154,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.74084,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 281.879762,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.693977,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.06777,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 161.646579,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 414.528802,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 155.187114,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 252.673317,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 140.988274,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 253.303571,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 214.636854,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 103490.513274,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 20.06559,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "065",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 29426.526858,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.37828897428898,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.603580037077034,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16956.233758,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 40870.353844,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.591642,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.370534,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1945.145109,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.795867,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.640809,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 238.644123,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 3.739369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 3.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 213.761903,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 458.914253,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 231.242568,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 393.311174,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 195.185823,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 284.763084,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 143.223376,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 160046.202989,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 19.133082,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "066",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 22916.250735,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.167119842564421,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.31639912169079,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17464.59662,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 42337.506101,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.409523,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 18.939616,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1958.154166,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.766065,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.368307,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 581.766306,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 159.741596,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 316.398119,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 154.372437,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 316.963786,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 149.082416,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 183.566347,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 261.481031,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 44112.825653,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 32.12119,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "071",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19976.612252,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.089677224015832,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.591343669836576,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28419.780938,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 63470.664684,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.119401,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 30.084335,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 6422.788269,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.298882,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.444417,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 748.885345,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 172.079761,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 271.71566,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 168.414826,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 147.518017,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 80.780799,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 134.774646,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 234.188756,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 49865.395746,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 72.930864,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "072",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 23929.800614,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.31500664362368,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.927799112751938,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28315.737794,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 62098.054889,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.956269,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.948995,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2508.196424,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.334713,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.077546,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 862.481065,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 161.028615,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 336.257426,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 148.137326,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 174.78676,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 119.427343,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 149.614924,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 264.823026,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 24423.440834,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 77.425539,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "073",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 22763.988254,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.296813552116149,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.11719059429453,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29356.898137,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 63448.962799,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.552994,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 29.16116,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2601.699,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.249631,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.84594,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 956.498724,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 125.810999,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 348.27743,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 138.015634,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 175.118356,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 78.382028,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 141.250179,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 323.130919,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 20382.369865,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 102.332374,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "074",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20142.977336,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.436189387171536,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.580242288765884,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 37260.500339,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 96838.622578,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 19.189194,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 26.142152,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4468.427355,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.002572,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.308959,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 474.759466,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.023598,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 198.932891,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 545.492673,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 170.985453,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 209.775498,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 160.968924,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 276.277499,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 466.818997,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 19322.564885,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 41.700469,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "075",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 26541.922614,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.463277157379478,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.52992821140172,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 32419.010171,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 77995.171467,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.316795,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.010091,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 7050.655559,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.461771,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.893949,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 415.271692,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.279688,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 174.552965,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 391.430953,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 164.257004,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 233.182959,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 129.576039,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 242.48478,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 160.702953,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 56392.903606,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 39.714835,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "076",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 21250.577127,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.59276309790172,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.141551213081083,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31993.494918,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 78681.698635,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 71.228261,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 71.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.037939,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3773.874773,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 5.052739,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.617787,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 377.611209,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 10.13884,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 10.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 149.240389,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 491.13976,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 163.438607,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 171.29003,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 179.902264,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 247.250707,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 181.67787,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 52394.649377,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 26.84734,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "081",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 4189.273165,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.999972,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.783311406478791,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999972,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.59736185047747,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999972,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19148.628754,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999972,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 45136.368462,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999972,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.737725,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 96.79633,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 0.155224,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 11.973592,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.00539,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.004048,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 0.382489,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 4.522819,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 4.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.001647,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 4610.30651,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 6256.31318,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 3580.095763,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 4381.696488,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 4441.055983,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 5660.094037,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 3439.822638,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 735770.582768,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.02459,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.995183,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "082",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 3264.962852,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.39981651466581,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.102435299622208,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 37804.169829,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 106615.689736,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.779888,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 10.023876,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 907.521438,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.001003,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.261287,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 6.616206,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 30.148228,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 30.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 946.487729,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 880.087949,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1122.649232,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 804.480558,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 737.348122,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 986.457156,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 362.094812,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 260100.15679,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.629471,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.346369,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "083",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 45112.455936,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.838205108089108,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.114459643592127,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 27154.183234,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 74815.493581,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.20691,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.78487,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2435.587835,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.381727,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.424353,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 89.431676,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 3.134347,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 3.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 224.811582,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 571.088932,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 223.252212,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 475.073202,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 268.641313,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 456.990887,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 97.004314,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 130226.833696,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.769697,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "084",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 41601.193206,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.324890742269638,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 28.753869954563626,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 21112.750474,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 50807.054525,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.631006,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.799628,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3634.741072,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.674669,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.516,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 393.964901,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.771713,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 159.968184,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 498.128608,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 168.348281,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 248.233392,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 145.262967,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 291.053109,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 74.16511,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 203237.459383,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 36.598358,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "085",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 32127.014932,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.717133021189957,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 34.007437003173365,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29276.992628,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 76538.93535,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 94.294482,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 94.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.373081,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2957.509067,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.842734,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.478621,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 155.399106,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 15.096794,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 15.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.161431,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 227.408714,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 538.498052,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 255.35759,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 235.423961,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 240.626414,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 389.052709,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 126.955184,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 167075.923608,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 11.979836,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "086",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 64198.343538,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 21.347463197220915,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 12.375089938726326,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 23488.867709,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 67916.664415,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.324871,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 95.149304,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 12.390443,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 689.302122,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.25679,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.265254,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 47.88575,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 16.973808,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 17.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.148022,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 258.447187,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 751.70677,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 292.998306,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 610.08548,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 432.540795,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 558.564996,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 158.560194,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 93958.007948,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.448069,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "087",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 36571.024558,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 20.26882403374858,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.41909176615199,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31896.269573,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 100692.376108,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 80.553465,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 80.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.908925,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 848.155489,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.71993,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.151502,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 21.434735,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 37.195016,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 37.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.231442,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 543.574982,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1099.802997,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 463.837327,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 794.597252,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 716.915603,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 891.637886,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 370.857817,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 333184.5503,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.324806,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "088",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18452.129888,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 28.149880374395078,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 8.215794730482012,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18864.247797,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 52936.693838,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 1.975924,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 2.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 0.508656,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 28.888729,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.107049,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.0,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 5.547084,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 13.636127,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 13.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.054243,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1186.462486,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 3896.7082,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1082.016796,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1723.938372,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1702.897893,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 2922.769238,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 1239.270594,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 536199.916876,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.242134,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.931854,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "091",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 24092.950295,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.620394076357762,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.943438953788785,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 22420.136292,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49789.583151,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.988894,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.495373,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 3.738062,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 530.574378,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.378665,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.106395,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 28.245894,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 12.56119,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 12.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.025271,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1053.112232,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1563.068446,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1040.659762,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1180.178952,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1380.525411,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1592.370599,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 981.514656,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 611259.827475,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.728951,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.708492,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "092",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19257.708849,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.182630768103165,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.4224136831533,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 30668.604368,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 70535.381329,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.742975,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 26.407079,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5747.336595,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.431718,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.368589,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 574.606975,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 1.435751,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 1.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.171498,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 164.768405,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 352.797179,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 157.485198,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 218.14429,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 100.111061,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 213.741115,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 137.145285,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 219293.826404,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 54.511026,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "093",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20260.780824,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.66585525272646,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.666531498332148,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 34736.330474,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 91852.169111,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.8709,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.559342,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 6.688976,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1319.988605,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.348653,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.070586,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 25.254871,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 50.394321,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 50.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 680.832355,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1515.618857,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 636.223234,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1195.974726,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1414.319499,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1698.811546,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 479.84784,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 265686.85391,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.45879,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.682873,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "094",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 27562.434252,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.948089595029286,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.78820796281532,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 21875.266938,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 53953.787085,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.058914,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 19.046301,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1963.69549,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.035232,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.723898,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 125.459828,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.159658,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 179.045298,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 394.804562,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 122.288206,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 283.222646,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 190.329839,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 371.730737,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 98.392954,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 176945.347075,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 12.073729,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "095",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 6689.205315,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 22.7752722372523,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.783964445408863,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38907.738156,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 108638.343234,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 93.969908,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 94.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 7.024673,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 128.746536,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.01217,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.031634,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 8.747232,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res8_union_of_res9_child_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 11.184735,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 11.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.001361,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 477.712286,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1602.766789,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 514.270185,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 900.175122,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1092.606034,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1609.619994,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 396.473088,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 145701.569659,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.468414,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "096",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 2767.51354,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 18.20876258477131,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.323361229155903,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38582.44496,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 109060.594609,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.778875,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 4.266202,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 128.220055,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.389695,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.0,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 8.611962,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res8_union_of_res9_child_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.141461,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 534.742558,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 3672.50287,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 550.877066,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 2050.215192,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 640.73451,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1124.966177,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 567.880511,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 383234.468941,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.018961,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "097",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 25146.519513,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.722714727284814,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.266362427951005,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 35127.900935,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 99070.388941,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 40.306141,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 40.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 7.137519,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 190.048462,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.282112,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.242503,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 27.966484,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res8_union_of_res9_child_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 3.018962,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 3.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.109067,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 336.629801,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1038.093922,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 317.5246,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 680.15101,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 690.777585,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 988.631787,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 198.063229,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 163177.822956,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.980369,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "101",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18874.631325,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.111429042707408,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.60518499028219,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16189.032406,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 42119.694853,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.322866,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.717648,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1345.730674,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.816519,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.381847,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 71.553867,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.27077,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 276.175365,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 496.12546,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 307.980548,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 485.482326,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 197.903292,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 391.329255,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 72.837949,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 215043.488903,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 7.389235,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "102",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 37587.766463,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.399982384821916,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 20.26883364165697,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17648.78826,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 42159.117304,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.113462,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.206395,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1958.550624,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.520209,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.867121,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 96.457601,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.819706,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.00477,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 205.342993,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 388.336636,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 200.098012,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 427.119235,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 160.614806,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 250.937889,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 130.138101,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 125488.178852,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.230597,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "103",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 32599.840489,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.015401916496169,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.21853799083477,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17794.22977,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 45209.425928,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.769568,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.798228,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1970.492043,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.055747,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.621448,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 102.734348,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 8.194092,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 8.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.243818,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 189.921429,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 484.936796,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 162.312064,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 367.979889,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 163.908776,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 369.902296,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 85.744259,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 283874.589274,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 12.304852,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "104",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 65414.670527,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.564477913479044,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 28.283092832155386,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17936.469625,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44295.507752,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.783699,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.462636,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1532.852255,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.060588,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.374307,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 253.430809,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 9.168147,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 9.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.134245,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 172.929119,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 598.465793,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 157.606826,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 323.015626,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 152.433583,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 352.714375,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 164.001997,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 149732.301354,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 23.802424,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "105",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 16380.824429,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.99995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.554549578403272,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.99995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.53313245440438,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.99995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 21846.812079,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.99995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 54901.343375,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.99995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 4.868202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 4.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 2.084451,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 153.158953,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.156109,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.053636,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 14.934653,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 19.702493,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 19.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.041072,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1381.463014,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2231.197892,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1387.553338,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1698.704038,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1785.244174,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1715.815526,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 1042.177038,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 367169.136245,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.53282,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.963689,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "106",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 9838.907343,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.337134520771755,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 15.701396223627388,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20675.577876,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49596.939482,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 78.56087,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 78.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 3.087643,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 335.034457,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.31872,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.033664,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 28.761243,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 24.88872,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 24.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.072058,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 795.958152,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1442.178019,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 707.582904,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 898.23043,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 867.41292,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 858.561482,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 512.09812,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 84429.796267,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.518349,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.333675,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "107",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 49420.086517,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.77967685501209,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.906240755478926,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17756.756687,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44603.742664,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 92.099173,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 92.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.019464,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1533.070944,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.757317,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.52763,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 112.555086,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 20.278045,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 20.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.546996,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 242.914176,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 528.714778,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 225.826575,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 410.423365,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 279.400837,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 434.107584,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 167.241377,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 122925.303328,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 10.787281,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "111",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19235.962496,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.28540498772243,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.928527729855688,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17217.581938,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 40813.810136,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.872201,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 14.734459,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2014.872138,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.111273,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.231627,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 336.66125,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.006333,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 173.689479,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 362.22097,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 145.193462,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 275.098119,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 165.450198,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 191.770191,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 60.484622,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 196472.943448,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 33.337608,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "112",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 33464.958501,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.001539311306734,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.710558776885662,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15717.346664,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 40084.718608,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.115355,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.538067,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2576.892942,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.999054,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.529002,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 168.690411,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 224.606741,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 500.749736,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 192.897163,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 431.222081,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 164.546409,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 238.526135,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 89.853447,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 90779.468909,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 14.742743,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "113",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 39036.700381,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.033667474842204,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.76668094510793,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14158.805401,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 37394.565099,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.938733,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.740382,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1879.096253,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.427552,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.635807,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 128.831693,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 11.420149,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 11.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 208.234484,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 467.017987,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 259.141379,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 535.929884,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 217.06148,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 384.825888,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 64.895969,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 192377.04305,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 11.912987,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "114",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 43450.027783,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.260867057291843,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.375988481655053,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15546.837206,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 40679.761734,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.856923,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 18.482774,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2151.705212,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.434381,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.433787,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 251.516626,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 11.815888,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 11.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.015141,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 151.164183,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 570.900254,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 156.875031,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 431.112926,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 133.961837,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 265.536817,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 96.272967,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 145573.898728,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 25.753231,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "115",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 37667.768942,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.820297802707064,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.920349908150396,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13275.892456,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 37700.406077,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.23922,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.630888,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2324.761053,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.565541,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.710638,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 133.650926,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.190711,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 197.266798,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 459.505009,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 150.752796,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 515.362109,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 194.38417,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 339.249596,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 50.076509,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 246255.179597,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 11.861789,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "116",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 48393.392586,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 17.201308164553403,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 13.729909995857962,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18415.622623,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49567.317749,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.520479,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 97.69001,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 10.747248,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1353.169516,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.985924,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.2055,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 73.82624,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 24.297192,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 24.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 328.550951,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 803.63025,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 350.062701,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 881.721986,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 371.887391,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 413.325327,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 109.89017,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 211980.82528,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.228717,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "117",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 29198.043708,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.691890689596606,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.088272049380272,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16294.051372,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 46118.010025,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.959861,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.807654,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 18.085474,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1287.327668,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.561637,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.420918,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 35.921453,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 37.775507,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 37.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 224.045785,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 538.067857,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 205.731309,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 558.556158,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 250.628328,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 478.833948,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 46.052905,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 348095.668153,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.275801,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "121",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20786.574704,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.532944330739989,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.136525351791313,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14154.223722,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 39187.724553,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 43.290086,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 43.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.981331,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1505.533174,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.980329,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.336885,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 17.612132,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 8.443732,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 8.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.279205,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 175.972623,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 545.660991,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 166.465228,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 686.711393,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 252.633586,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1355.700616,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 78.790466,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 174490.351155,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.021144,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "122",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 14832.534771,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.545782708821129,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 15.564478820664549,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14422.317548,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 39251.822062,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.902109,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 98.709764,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.118475,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2042.563378,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.329286,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.497134,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 34.288459,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.891885,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.546665,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 192.209859,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 490.044707,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 190.805537,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 315.394181,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 341.624175,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 558.467876,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 99.483866,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 147260.601667,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.5991,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "123",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 22144.474736,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.513299165209876,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 14.50013282446457,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13356.552839,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 37673.698452,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.175406,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 12.752573,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1677.025567,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.300436,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.340623,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 39.634825,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 19.865717,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 19.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.051347,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 316.159731,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 579.401172,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 349.874575,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 640.871307,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 280.423953,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 433.922962,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 89.100439,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 205039.878935,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 5.585717,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "124",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 21399.409507,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.125666748006308,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 15.34106329394802,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15626.546088,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 43203.350749,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.069688,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.499478,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3570.468928,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.219228,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.726052,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 203.428739,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.10404,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.279424,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 175.057906,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 403.910744,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 178.831408,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 428.405876,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 134.348029,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 331.846005,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 137.422394,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 86666.666862,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 5.395922,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "125",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 25625.213683,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.49100593043433,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.3924598892095,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15119.561916,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38872.968138,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.051495,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.388714,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2510.592335,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 4.381691,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.136668,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 338.107901,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 143.868527,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 372.69325,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 146.50252,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 390.096171,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 124.979595,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 199.723858,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 85.246781,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 109901.501237,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 16.552155,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "126",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 13333.756542,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.33786603811234,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.788881374342406,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15269.909457,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 42580.655373,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 83.700048,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 83.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.595222,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2130.839122,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.476026,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.693643,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 65.779056,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 8.845376,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 8.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 173.739502,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 473.455775,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 173.541924,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 364.804582,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 199.608044,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 514.32739,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 74.719216,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 237637.335481,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.791309,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "127",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20834.859779,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.180792000184072,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.223862199480756,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 11623.22584,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 34180.806663,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 94.340465,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 94.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.939473,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1531.822546,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.277673,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.769034,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 157.56324,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 36.167587,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 36.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.195907,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 256.374394,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 445.851166,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 245.354559,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 420.123108,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 323.376123,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 582.477925,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 41.209883,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 297602.307175,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.298341,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "131",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 38329.038285,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.521256321289407,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.834153683097032,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 11099.033258,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 31256.159677,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 83.795052,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 83.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.719246,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 673.060019,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.506517,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.305642,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 22.461922,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 47.862088,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 47.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.167039,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 498.942088,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 735.072145,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 577.90173,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 913.706683,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 588.566071,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 681.483227,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 103.009297,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 243324.59933,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.649231,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "132",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 40207.635986,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.651685657200131,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 13.835431816824446,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 11754.899013,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 32950.968861,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.597815,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.72792,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1873.721167,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.30508,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.738211,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 133.972767,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.676584,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.211517,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 207.304197,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 323.016676,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 219.130006,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 314.651662,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 140.879895,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 216.131623,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 169.751912,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 50336.308666,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.10504,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "133",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 40449.529673,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.584583904637679,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.357224014118636,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14562.378527,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38588.117528,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.528629,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.559406,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 27.474772,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1223.44049,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.561507,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.021221,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 90.758896,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 1.529025,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 1.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.241308,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 177.351365,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 409.79865,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 170.552494,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 510.361201,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 191.695762,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 309.18773,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 72.661223,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 109775.539692,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 9.034484,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "134",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 41964.272707,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.390438467274258,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.65858048266353,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15410.506212,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 39790.924259,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.196505,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.165395,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1041.546554,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.913831,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.616746,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 59.917074,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 23.134896,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 23.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.119382,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 241.22069,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 597.248059,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 253.853489,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 506.740259,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 344.530936,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 457.740197,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 127.497674,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 131924.65055,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.471169,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "135",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 27800.708414,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.550544137367822,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.117837130522553,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 12932.717284,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 34332.263643,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.636432,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 26.233187,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1474.646641,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.585998,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.666414,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 87.588779,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 160.032439,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 489.653094,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 136.050711,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 604.497051,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 175.269068,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 271.207939,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 117.8671,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 87141.787331,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.186036,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "136",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 47351.771674,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.77578869358695,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.05655881922303,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13820.971537,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 36358.543299,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.103153,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.495556,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2092.975854,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.412579,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.662461,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 132.629071,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.923591,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 186.917575,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 428.459274,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 169.861276,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 437.217766,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 192.744364,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 256.11522,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 96.376526,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 141002.938772,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 12.462906,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "141",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 9015.211882,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.269630011120796,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 25.32697570379744,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18389.849937,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 46687.824383,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.431823,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.656905,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2705.763268,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.933401,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.545275,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 37.476526,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 21.674708,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 21.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 222.550942,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 450.663136,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 198.157637,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 412.738918,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 292.064549,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 379.491509,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 40.799917,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 272149.222531,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.416072,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "142",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 6406.137682,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.456470148029517,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.413554458163453,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19241.457813,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 56515.495696,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.602732,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 12.223942,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1214.875915,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.785815,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.019113,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 24.988776,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 45.153131,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 45.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 365.300361,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 897.167021,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 443.236818,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1014.50027,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 471.640627,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 606.023233,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 49.257836,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 355377.497251,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.381223,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "143",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 27440.518244,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.180166914488979,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 28.203637756339454,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 23402.705826,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 59497.276167,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.275086,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 14.36988,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1691.14965,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.836065,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.193752,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 102.339074,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 38.246763,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 38.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 290.862156,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 756.045065,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 283.474078,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 866.968574,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 269.846528,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 414.699242,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 65.105788,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 281042.308659,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 9.828807,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "144",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 15819.104892,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.256146274246476,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 29.156439934427105,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19177.586639,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 48044.313691,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.324009,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.921336,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.385696,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2321.979929,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.437448,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.491974,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 97.701596,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 15.140988,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 15.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 167.537852,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 452.466485,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 170.869758,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 531.070285,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 303.246823,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 353.653049,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 105.680809,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 148238.330369,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.841249,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "145",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18513.125149,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.33588015588691,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.73167167698489,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 15354.41292,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38869.656266,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.449101,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 28.615313,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2474.660338,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 4.396112,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.136038,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 102.676978,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 5.137195,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 5.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 166.539657,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 665.464864,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 180.265811,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 738.191205,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 205.531417,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 266.661494,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 143.147346,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 85880.272465,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 10.686844,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "146",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 15735.351131,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.106725148744315,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 29.12206907777329,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17207.053932,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 41281.102521,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.436964,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 28.595895,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2542.034717,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.403206,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.753712,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 178.091028,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 180.574416,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 392.582942,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 174.427635,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 452.71278,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 133.702423,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 266.947783,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 124.304895,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 130796.937174,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 15.745078,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "151",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 49850.487296,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.239324722527982,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.91602352283654,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17148.152634,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 42696.792299,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.097044,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.757982,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1136.768167,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.88339,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.168179,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 64.7519,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 49.049656,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 49.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 300.630132,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 823.020924,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 333.639188,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 807.716154,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 398.249115,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 523.286567,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 252.011693,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 148762.254736,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 5.629469,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "152",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 59251.86698,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.089192644710822,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.779365850793994,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16905.379921,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44003.159235,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.961253,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 19.551238,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1849.350789,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.478734,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.673408,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 99.875574,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 5.546266,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 5.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 207.587122,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 514.65862,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 223.219578,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 509.259406,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 192.170027,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 327.934342,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 197.18479,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 118678.586391,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 5.643805,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "153",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 23103.273373,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.101640833837179,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.243086899563043,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18693.153228,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 45032.626006,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.649902,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.208671,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2497.713732,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 5.21268,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.821473,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 323.64954,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 121.822238,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 423.703289,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 128.984094,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 309.9188,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 107.627761,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 138.742675,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 293.596124,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 65388.42475,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 34.465942,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "154",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 19601.951529,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.444674082430232,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.030059002193138,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 22342.741115,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 53099.316926,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.28285,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.432389,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2138.877615,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 5.276265,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.778926,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 232.975519,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 164.928074,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 420.25459,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 146.280757,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 453.554412,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 146.981136,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 231.316643,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 146.72966,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 71814.755061,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 34.783556,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "155",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18763.639166,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.162559290711954,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.139466203482634,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 26643.649222,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 66862.144667,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.531254,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 19.900422,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2033.836072,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 4.169601,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.912815,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 179.237055,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 152.994846,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 451.675386,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 159.624753,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 478.195543,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 194.73391,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 259.775957,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 154.760297,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 84292.509864,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 22.588741,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "156",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 11668.59595,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.580410134948583,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.507344746134603,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 30786.658645,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 78946.668501,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.184887,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.985955,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1929.081096,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.668556,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.033143,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 84.007079,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 175.586335,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 816.827562,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 186.714734,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 350.149508,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 214.074393,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 335.830968,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 175.777371,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 60627.077221,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.142438,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "157",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 6260.154601,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.742672055775957,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.685295084615753,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 33285.29478,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 84299.27007,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.153551,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.744018,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2607.062857,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.141991,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 1.046878,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 58.317484,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 245.884837,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 317.79807,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 269.02733,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 243.731453,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 194.611476,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 357.882608,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 194.234084,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 42341.861873,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.025831,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "158",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 1696.093824,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.237086200250205,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.144921270581783,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 35407.282755,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 93218.899266,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.8716,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 11.322861,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1660.374339,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.749907,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.147378,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 28.632563,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 241.879647,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 745.255555,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 221.521803,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 496.568307,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 238.382839,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 786.214106,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 153.864126,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 65756.481297,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.273367,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "159",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 20720.784882,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.437580674942312,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.867145897142567,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 32197.159656,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 87756.314376,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.931647,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.738342,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1367.264912,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.870757,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.222669,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 71.456509,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.214858,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 164.688259,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 796.069284,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 168.712196,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 426.568905,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 235.030288,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 431.399778,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 135.289087,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 94420.964717,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.035535,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "161",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 6214.23839,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.290832495725997,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.324110316276425,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 37320.038087,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 103922.986748,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.240041,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 13.321033,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1074.34318,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.648853,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.003052,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 31.443017,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.373606,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 237.203171,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1036.585542,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 284.366112,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 733.217133,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 424.888804,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 502.654987,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 143.474379,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 137957.118942,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.140619,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "162",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 15885.044064,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.378589616482664,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.75954139399232,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 38573.146626,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 107329.579032,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 16.526121,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.515536,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 632.201743,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.451853,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.062318,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 41.677267,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 210.653796,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 989.152417,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 180.855198,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 723.285804,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 450.596951,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 584.748647,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 275.006205,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 118464.442473,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.29042,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.712544,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "163",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 38274.443507,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.228079517900852,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 27.055025895036586,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 24079.913653,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 61518.575441,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.564572,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.246176,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 892.990573,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.797255,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.559862,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 59.044585,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 1.832709,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 1.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 167.162773,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 494.951091,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 164.909472,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 344.578954,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 200.412906,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 349.590946,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 216.695298,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 96045.601717,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.256463,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "164",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 49130.500131,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.035053558469953,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.342446393770462,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20532.619663,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 53064.299048,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 84.107169,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 84.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.590478,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1102.335194,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.703101,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.426543,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 96.584506,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 6.085842,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 6.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 163.73122,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 548.488549,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 166.841511,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 525.70779,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 194.135047,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 332.669596,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 96.220331,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 129675.170393,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 7.894174,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "165",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 15873.522789,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.312291133284868,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.428183895997556,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20481.966747,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 54343.553546,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.111627,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.191052,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.070812,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 930.939241,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.294419,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.700932,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 25.360993,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 6.258611,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 6.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.048252,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 214.612044,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 483.126836,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 241.346914,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 452.286359,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 317.353399,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 507.834505,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 84.206059,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 166220.550089,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.57711,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "166",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 67418.287503,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 24.40465031133854,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 8.830282031021763,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29499.806548,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 82300.509653,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.846341,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 5.883973,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 352.283958,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.537439,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.150657,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 24.438921,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 34.89286,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 34.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.055777,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 509.714716,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1904.121664,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 527.882592,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1029.229146,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 802.422464,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 899.084277,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 180.633431,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 240839.556507,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.906875,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.893964,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "171",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 48354.390851,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.433349845116842,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.165556061054886,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 11636.211232,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 33895.323236,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 52.606194,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 52.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 6.574521,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 540.02787,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.936689,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.149487,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 29.088227,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.832719,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.219793,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 577.642782,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1072.095912,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 527.898348,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 911.909446,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 662.023694,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 771.900465,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 342.788065,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 143944.29742,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.638623,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.90236,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "172",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 15276.930754,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 17.66157836575607,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.459076349754593,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 9268.887863,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 31987.250981,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.03049,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 5.994013,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 299.508909,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.280023,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.355398,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 8.509559,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 10.394683,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 10.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.391615,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 259.827313,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 596.862055,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 280.412238,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 588.256175,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 403.009904,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 885.210817,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 246.454436,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 67272.334584,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.044906,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "173",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 21131.6096,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 20.440480705265347,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 9.115795045730922,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13288.889464,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38135.146655,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.790983,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 2.962485,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 179.701341,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.787881,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.094532,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 5.975038,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 43.588227,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 43.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.119798,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 731.598947,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1435.782618,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 715.567238,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1585.332709,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1088.230585,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1090.040205,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 300.322081,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 140472.729082,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.06453,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.433741,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "174",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 35786.481917,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.811531249798657,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.486180643611547,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14379.14477,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 40647.844614,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 9.932524,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.761283,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1665.232646,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.028836,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.921603,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 108.407272,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 4.627743,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 4.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.289113,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 181.52976,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 375.912635,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 186.384242,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 383.395422,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 226.123633,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 313.902323,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 62.824934,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 152188.600219,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 7.442371,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "175",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 32490.218809,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.779900534064142,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.62390902050142,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14806.763,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 39739.761289,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 87.640623,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 87.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.27133,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1463.336578,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.824489,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.577742,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 112.924296,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.175785,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 194.213772,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 472.457466,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 226.426392,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 474.046182,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 271.007633,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 361.128591,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 89.401397,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 120038.744373,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 10.478209,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "181",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 42375.37078,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.3752570756857,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 14.724282521074379,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 7836.801755,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 23937.519531,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 33.060238,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 33.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 1.216974,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 66.396962,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.123059,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.026508,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 6.489352,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 27.826144,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 27.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.012047,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 2156.362406,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 3189.436576,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 2448.984327,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 2962.576067,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 2635.035481,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 2720.322767,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 1047.354792,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 194166.437026,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.239956,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.874008,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "182",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 24289.339727,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.164180267879704,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.448734374894688,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16656.700174,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 45453.241411,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 9.922559,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 13.427574,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 998.475336,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.146098,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.356669,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 44.307649,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 27.065129,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 27.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.278168,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 273.179726,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 773.177039,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 360.602381,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 346.311502,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 386.388865,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 414.742097,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 157.266739,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 109942.742483,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.045832,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "183",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 47848.565194,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 22.277300719012235,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 6.140678373713159,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17211.143487,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44051.738798,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 84.957807,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 85.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 7.5149,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 170.586909,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.862503,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.104284,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 44.880374,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 34.448118,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 34.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 314.844529,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1579.16898,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 320.068632,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 660.752932,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 432.095183,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 555.953714,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 78.054087,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 188501.361441,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.348748,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "191",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 39556.407348,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.288695,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.729085009522692,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.288695,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.423495306047982,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.288695,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 9547.769174,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.288695,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 30534.88529,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.288695,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.465736,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 97.005576,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 2.883409,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 194.363581,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.203395,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.082976,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 7.568683,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 22.261297,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 22.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.056871,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1210.56957,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2308.001591,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1049.568549,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1682.391246,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1391.745639,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1440.759585,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 577.478273,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 52797.834945,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.28442,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.65753,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "192",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18480.420203,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.045633890232816,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 12.921319508808358,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16229.167905,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 48271.26417,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 9.756489,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 12.574131,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 714.968245,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.633979,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.414485,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 62.099016,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 55.955131,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 56.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.06807,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 351.837571,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 695.643631,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 412.168827,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 587.828965,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 420.796872,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 467.959963,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 28.735457,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 318919.275799,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.450715,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "193",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 13313.060724,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 20.890223012251017,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 8.068296714545955,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16488.789919,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 47344.919845,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.85869,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.01516,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1237.255041,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.150225,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.243457,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 20.399817,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 10.918573,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 10.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.344299,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 206.194255,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 804.36381,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 198.383401,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 994.859712,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 214.486966,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 406.837022,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 117.125699,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 161452.283982,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.428682,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "194",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 8330.513212,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 22.233509975495615,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 2.321335961888155,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17085.292751,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 51134.505007,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.750174,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 1.592223,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 85.884953,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.07168,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.0,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 13.663678,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res8_union_of_res9_child_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 36.579484,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 36.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1734.877951,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 4599.011402,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1196.35313,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1234.256158,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1149.680272,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1155.7427,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 788.428035,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 168639.038532,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.366719,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "201",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 29235.226453,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.657026587253576,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.710030677729534,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19968.949732,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49073.974377,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.508159,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 19.922591,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1633.051969,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.743858,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.386538,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 93.137382,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.177379,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 224.230519,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 720.924455,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 280.062657,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 606.155571,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 249.42631,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 323.671112,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 267.974886,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 83311.698939,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.349569,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "202",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 10968.363595,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.342858269369762,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.092208430750876,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13691.834844,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 37396.612669,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.181687,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 23.982935,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1546.053514,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.023385,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.034848,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 46.592591,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 191.325014,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1048.94205,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 157.388143,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 766.926187,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 198.291237,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 273.718219,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 112.862181,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 126228.857258,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.60169,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "203",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 8666.559078,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.011684324203944,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.013435077861015,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 11922.647759,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 32879.921647,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.622704,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.06278,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1805.156334,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.409576,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.503722,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 56.138849,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 198.924466,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 568.722912,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 216.106456,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 244.856185,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 130.196374,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 311.795088,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 106.796716,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 109540.430437,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.745185,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "204",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 24178.242202,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.842883291752045,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.266410101784285,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17115.962075,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 48223.578209,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.729409,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 18.769831,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1749.425031,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.190715,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.943237,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 56.74764,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 3.409153,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 3.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 147.942309,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 401.947069,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 131.0382,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 352.438467,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 228.332673,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 353.504938,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 237.56843,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 94379.597078,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 3.296189,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "205",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 32722.940952,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.256883471700494,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 15.411566049022158,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 21527.237215,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 59854.527849,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.154865,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 4.598119,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 415.196659,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.662446,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.053,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 18.44875,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 18.103037,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 18.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 705.070715,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1178.97545,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 754.780093,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1130.277254,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 909.813171,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 880.705638,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 486.765507,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 59685.391709,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.77326,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.902913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "206",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 14865.660779,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 17.797319764873397,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.677929685119448,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20205.59986,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 53038.760928,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.031211,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 5.640378,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 699.784078,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.128108,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.145897,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 30.266,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.00579,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.02367,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 591.82172,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1880.96554,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 725.775133,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1396.333431,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1052.477035,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1215.354393,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 597.582745,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 54202.885977,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.99258,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.820152,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "207",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 25658.558179,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.74147174982618,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.382153709284616,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19512.713155,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 51611.909645,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.079747,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.283531,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1595.321054,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.214251,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.431988,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 37.327053,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 0.798913,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 0.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 264.479718,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 590.679515,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 293.993917,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 634.490274,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 274.925231,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 418.089516,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 147.034247,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 103428.012543,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.468484,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "208",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 10967.677754,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.594056417970865,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.979946394037718,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28657.761389,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 75067.787465,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.319905,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 13.363681,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1051.026222,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.847845,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.122873,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 56.502385,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 5.544635,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 5.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 246.677496,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 834.404127,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 284.205808,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 629.923312,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 442.411374,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 506.344585,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 153.37161,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 218344.568605,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.479259,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "211",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 18111.251234,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.490952072229424,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.256202835245812,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28062.969961,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 78059.346514,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.680799,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 13.857836,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 954.695826,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.996832,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.228658,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 22.345928,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 12.168983,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 12.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 239.148158,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 715.810349,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 195.21532,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 856.087541,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 396.930583,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 625.332188,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 106.751791,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 182794.698637,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.785368,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "212",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 6734.254362,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.544541677946201,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.43952020326137,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 13336.561276,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 36607.025959,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.375614,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 0.921768,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 96.525728,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.014193,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.014305,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 9.703122,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 10.42582,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 10.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.028315,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1981.323041,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2719.08385,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 2120.855201,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1690.182584,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1954.53668,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 2278.143061,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 1895.616,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 187748.99855,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.361806,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.939202,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "213",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 5388.381611,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.704210348104093,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.63673441094,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16141.855938,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 39287.205306,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.0672,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.012725,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 576.427091,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.390378,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.563193,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 105.321561,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 18.358485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 18.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 374.774542,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 474.05682,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 476.209237,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 621.679731,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 308.174335,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 312.079091,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 114.057577,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 84187.674491,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 7.262916,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "214",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 12455.417106,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 18.646755955536765,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.550926073017212,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 18804.878759,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49348.987161,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.551427,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 5.682622,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 230.027745,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.613272,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.026908,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 18.20242,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 67.727037,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 67.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.056261,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 607.323071,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1685.350501,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 788.265473,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 917.864343,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 867.879827,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 879.135431,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 265.242537,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 166686.838533,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.955909,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.62411,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "215",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 8721.785801,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 18.093089958928697,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 11.469858809021673,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 36827.935812,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 104709.098573,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.132398,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 6.746302,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 334.362765,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.271472,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.0,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 17.338898,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 20.054053,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 20.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 699.83781,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1457.171889,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 809.676738,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 945.630499,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1037.127872,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1162.850482,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 146.318488,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 271337.399395,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.996324,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    }
  ],
  "districts": [
    {
      "id": "1",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 141859.730017,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 7.104209324092388,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.16869832985818,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 26282.835624,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 55121.22516,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.794055,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 26.85231,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5877.828064,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.760296,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.974698,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 1141.467431,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 4.986634,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 5.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.316696,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 216.19012,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 364.267093,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 218.803196,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 307.406504,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 148.956505,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 193.761748,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 256.310879,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 91475.662741,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 134.821511,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "2",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 155767.076214,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.909068048279082,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 20.611316406742965,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 24969.160207,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 60151.816194,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.788914,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 21.530381,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 3940.895219,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.093441,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.929223,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 254.609577,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 7.367965,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 7.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.505909,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 193.905116,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 457.224139,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 224.0214,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 405.977207,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 193.438952,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 284.883477,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 90.900109,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 155197.661937,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 21.423189,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "3",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 116474.171917,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.224934452692821,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.278364052084477,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 28853.208854,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 73527.197611,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 94.067414,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 94.1 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.290216,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4759.342222,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.001545,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.533818,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 265.329481,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 14.352253,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 14.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.122348,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 230.062528,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 519.770168,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 253.161942,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 299.457875,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 207.569326,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 378.382657,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 95.465156,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 223027.70073,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 13.91142,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "4",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 144277.037396,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.252587704860998,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.075181660171108,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31428.926932,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 77801.133066,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 18.019039,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 27.666482,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5141.103106,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.194174,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.78111,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 369.022365,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 1.236112,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 1.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.069947,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 203.827325,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 475.670831,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 189.881838,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 269.066266,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 140.186331,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 239.881761,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 235.59399,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 68241.662134,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 23.934196,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "5",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 145020.957292,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.578441416760855,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.7031895347282,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 34161.186331,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 89042.057151,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 17.605981,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 22.979007,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4331.292193,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.331088,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.616009,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 184.001462,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.602531,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.111375,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 180.572604,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 518.840877,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 181.222048,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 293.484655,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 201.252271,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 397.166257,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 294.132213,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 43436.382659,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 13.447199,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "6",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 157984.917474,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.775361870731485,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 19.708538835122802,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 22184.92882,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 52765.760009,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 15.935747,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 24.057261,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 5320.249115,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.163841,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.827185,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 437.551665,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 1.310334,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 1.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.061558,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 180.02002,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 410.456776,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 184.454208,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 293.847997,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 137.657401,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 222.388603,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 196.099536,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 78715.912367,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 28.078447,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "7",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 134605.878198,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 9.874409123833857,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.24538043353066,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 31951.89369,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 76490.448773,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 93.425396,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 93.4 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 25.643766,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 4573.206927,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 3.463743,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.789575,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 580.738669,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 2.316817,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 2.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.063034,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 165.343002,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 419.677903,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 160.445288,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 190.266251,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 134.138565,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 213.97458,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 268.917712,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 38682.398248,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 53.616175,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "8",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 245516.398075,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.999978,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.497160027423963,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999978,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 21.336109689503477,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999978,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19964.30996,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999978,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49533.666157,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999978,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 85.743657,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 85.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 1.617431,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 146.085016,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.133619,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.031623,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 8.14878,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 7.186657,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 7.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.021197,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 3805.529891,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 5449.173264,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 2981.552252,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 3708.505577,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 3740.55739,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 4853.727085,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 2872.97422,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 659167.07657,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.606241,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.98481,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "9",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 125777.112588,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.701495405869398,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 22.365802001789547,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 30298.977695,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 77984.069434,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 91.763916,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 91.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 6.172318,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 798.389416,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.612225,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.138314,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 36.256338,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 21.348349,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 21.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.03682,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 728.102668,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1590.794534,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 709.385351,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1125.695657,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1170.8169,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1455.573432,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 616.225372,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 379344.580594,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.505109,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.793485,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "10",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 230116.727092,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.999982,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.09188475890128,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999982,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 24.282055249577972,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.999982,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19796.016373,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999982,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 49140.424504,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.999982,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 59.902131,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 59.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.616531,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 821.437965,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.136558,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.251071,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 71.618277,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 16.929108,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 16.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.153159,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 760.871382,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1334.762514,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 739.663664,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 972.537936,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 916.989362,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 962.800159,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 544.67734,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 221647.646386,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 6.71776,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.844603,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "11",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 250446.854398,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.93756906785041,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.65901109771462,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 16421.268871,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 44010.689278,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.812776,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.055595,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 15.334934,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1746.359154,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.073629,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.445488,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 123.932651,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 16.817841,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 16.8 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.002013,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 250.009772,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 618.009423,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 254.917353,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 641.78198,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 264.078548,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 367.284419,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 84.385949,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 210613.543466,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 10.456685,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "12",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 138956.823722,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 13.494125456921546,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.913033708958572,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 14065.693333,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38910.291805,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 87.460791,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 87.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 18.528171,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2024.348836,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.090427,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.595045,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 105.359427,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 11.742455,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 11.7 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.211568,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 212.72297,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 486.466219,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 216.324293,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 481.624709,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 251.687267,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 608.212762,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 85.373703,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 182699.476618,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.665731,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "13",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 236102.956739,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.546322943657966,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.849814274705594,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 12928.944706,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 34880.349583,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 93.484081,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 93.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 16.861112,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1140.874087,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.364772,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.629143,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 65.102986,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 24.485363,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 24.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.134344,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 320.800084,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 581.24517,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 350.885794,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 655.33698,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 376.90348,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 472.203896,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 109.786943,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 165382.739114,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 4.82021,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "14",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 92929.44898,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 10.28121647429142,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 26.3931683004799,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 19498.350253,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 50106.380681,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 11.104641,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.987124,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 20.098985,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 2110.67257,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.379342,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.324743,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 88.820793,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 23.612706,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 23.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.0,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 238.092815,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 623.398791,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 243.532598,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 694.21185,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 280.23968,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 384.492277,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 83.884046,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 221454.15589,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 8.450577,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "15",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 210916.847601,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 11.207422439632522,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 23.046801594985315,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 22749.000616,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 58117.020513,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 13.491504,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 17.940504,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 1710.215382,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 2.809871,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.465493,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 113.297639,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_business_res9_ring1\"]]"
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 14.854758,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 14.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.026839,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 214.29739,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 639.354954,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 228.505399,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 535.310317,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 249.651267,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 381.940844,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 200.097742,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 103866.170447,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 10.733481,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "16",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 192796.036383,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 16.29865731190456,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.957672584820216,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 29080.298929,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 80044.267296,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 14.660136,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 98.333585,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.680557,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 559.120375,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.085209,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.222991,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 36.835529,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 22.54448,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 22.5 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.036476,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 387.628921,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1444.970362,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 398.531939,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 846.663914,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 612.944312,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 726.067461,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 180.834652,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 195745.128655,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.834498,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.901984,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "17",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 153039.631931,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 14.642494604994424,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 16.6145290766669,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 12544.708418,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 36208.186715,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 76.918489,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 76.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 7.421954,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 588.349608,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.303292,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.243417,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 34.821054,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 15.98308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 16.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.198606,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 541.937545,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1050.272979,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 518.635555,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1024.13593,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 711.447463,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 803.705688,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 278.493548,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 137066.209589,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 2.35008,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.776308,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "18",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 114513.275707,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 17.73606615268493,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 12.988222081826994,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 9349.943285,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 27289.064287,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": null,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 42.170041,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 42.2 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 2.4892,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 117.016265,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.2558,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.049485,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 12.761476,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 28.612126,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 28.6 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.021339,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1852.704401,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2892.73904,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 2101.528627,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 2572.388594,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 2271.948069,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 2359.691706,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 891.618369,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 190055.398701,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.450011,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.894646,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "19",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 79680.401487,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 99.56973,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.688763799765168,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.56973,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 13.733745348641834,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 99.56973,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 12464.582986,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.56973,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 38427.783471,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.56973,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 10.816916,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 98.188665,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 3.427501,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 218.940191,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.231014,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.085087,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 13.665717,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 28.865613,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 28.9 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.045725,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1288.242983,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2858.021947,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1031.597554,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1453.035223,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1225.047054,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1263.521735,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 592.753427,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 109571.994555,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.581774,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.792839,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "20",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 157263.228993,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 12.792618514716803,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 17.743823554737048,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 20916.35199,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 56228.335755,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.668869,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 9.505201,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 871.23143,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 1.0412,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.200274,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 36.872389,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 8.291995,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 8.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.005321,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 506.400537,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 1159.7927,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 566.685831,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 989.433543,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 718.903989,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 778.861122,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 406.639193,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 81905.790337,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 1.610583,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.919047,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    },
    {
      "id": "21",
      "metrics": [
        {
          "key": "population",
          "label": "Población empadronada",
          "value": 51411.090114,
          "unit": "personas",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "Suma de conteos por fracción de superficie.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_under15_pct",
          "label": "Población de 0 a 14 años",
          "value": 15.849998858088792,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "age_over65_pct",
          "label": "Población de 65 y más años",
          "value": 18.33640021072594,
          "unit": "%",
          "asOf": "2022-01-01",
          "sourceIds": [
            "madrid_ine_padron_2022"
          ],
          "scope": "neighbourhood",
          "method": "100 × conteo de edad repartido / población repartida; no media de porcentajes.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2022-01-01\",\"madrid_ine_padron_2022\",\"madrid-padron-2022-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_person",
          "label": "Renta neta media por persona",
          "value": 17350.733602,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "income_per_household",
          "label": "Renta neta media por hogar",
          "value": 47754.207681,
          "unit": "EUR/año",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_ine_adrh_2024"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 100.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_ine_adrh_2024\",\"madrid-adrh-2024-v1\"]],[\"seccion\"]]"
        },
        {
          "key": "sale_eur_m2",
          "label": "Valor tasado MIVAU: contexto municipal",
          "value": 5418.4,
          "unit": "EUR/m²",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_sale_20261031"
          ],
          "scope": "city_context",
          "method": "Tasación municipal MIVAU, no transacciones ni ofertas actuales.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; no distrito ni barrio",
          "note": "",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "rent_eur_m2",
          "label": "Alquiler residencial SERPAVI",
          "value": 12.731399,
          "unit": "EUR/m²/mes",
          "asOf": "2024-12-31",
          "sourceIds": [
            "madrid_rent_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2024-12-31\",\"madrid_rent_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"secci\\u00f3n INE2021; media de medianas ponderada por \\u00e1rea EPSG:3035\"]]"
        },
        {
          "key": "transport_stops",
          "label": "Paradas EMT a 500 m",
          "value": 2.950091,
          "unit": "paradas",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "metro_stops",
          "label": "Estaciones Metro a 500 m",
          "value": null,
          "unit": "estaciones",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: no se ha validado una edición GTFS Metro vigente.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "transport_frequency",
          "label": "Salidas programadas EMT",
          "value": 186.647498,
          "unit": "salidas/hora",
          "asOf": "2026-10-29",
          "sourceIds": [
            "madrid_emt_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-29\",\"madrid_emt_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"gtfs_stop\"]]"
        },
        {
          "key": "schools",
          "label": "Primaria oficial a 500 m: media de proximidades",
          "value": 0.164591,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "health",
          "label": "Centros de salud públicos/privados a 500 m: media",
          "value": 0.031828,
          "unit": "centros",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "commerce_density",
          "label": "Densidad de comercio OSM",
          "value": 13.410412,
          "unit": "locales/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "noise_lden_share",
          "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
          "value": null,
          "unit": "%",
          "asOf": "2021-12-31",
          "sourceIds": [
            "madrid_noise_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Porcentaje de superficie de celdas cuya clase dominante Lden vial MER2021 es ≥65 dBA. Clase calculada por área de píxel; no media aritmética de dBA.",
          "coveragePct": 18.284647,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Solo tráfico vial, no ruido total ni exposición personal. Cada celda exige ≥95 % de superficie observada.",
          "reason": "Pendiente: cobertura 18.3 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "madrid_flood_t100_pct",
          "label": "Peligrosidad fluvial SNCZI T100",
          "value": null,
          "unit": "%",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: sin dominio de estudio verificado; ausencia no es riesgo cero.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "safety",
          "label": "Infracciones registradas: contexto municipal",
          "value": 117596,
          "unit": "casos",
          "asOf": "2026-06-30",
          "sourceIds": [
            "madrid_interior_crime_2026q2"
          ],
          "scope": "city_context",
          "method": "Balance de criminalidad enero–junio de 2026, provisional.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Municipio de Madrid; sin reparto por barrio",
          "note": "No es una tasa local ni una puntuación de seguridad.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate",
          "label": "Temperatura media normal: estación Madrid Retiro",
          "value": 15.0,
          "unit": "°C",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "renfe_stops",
          "label": "Paradas Cercanías a 500 m",
          "value": 0.026593,
          "unit": "paradas",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_renfe_direct_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_renfe_direct_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"GTFS topolog\\u00eda publicada; horarios incompletos, no oferta validada\"]]"
        },
        {
          "key": "renfe_frequency",
          "label": "Salidas programadas Cercanías",
          "value": null,
          "unit": "salidas/hora",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 0.0,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": "Pendiente: cobertura 0.0 %, inferior al umbral del 95 %.",
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "official_school_distance",
          "label": "Distancia recta a centro docente del catálogo municipal",
          "value": 1573.998759,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_education_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_education_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "official_health_distance",
          "label": "Distancia recta a centro de salud público/privado",
          "value": 2331.83915,
          "unit": "m",
          "asOf": "2026-10-31",
          "sourceIds": [
            "madrid_official_health_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-31\",\"madrid_official_health_20261031\",\"madrid-official-services-20261031-v1\"]],[\"municipal_catalogue_straight_distance\"]]"
        },
        {
          "key": "school_distance",
          "label": "Distancia aproximada a centro educativo OSM",
          "value": 1705.508414,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "health_distance",
          "label": "Distancia aproximada a sanidad OSM",
          "value": 1463.404599,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "pharmacy_distance",
          "label": "Distancia aproximada a farmacia OSM",
          "value": 1629.452299,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "supermarket_distance",
          "label": "Distancia aproximada a supermercado OSM",
          "value": 1886.197564,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "park_distance",
          "label": "Distancia aproximada a parque OSM",
          "value": 1401.862517,
          "unit": "m",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "green_area",
          "label": "Superficie verde OSM a 500 m",
          "value": 193097.35026,
          "unit": "m²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "nightlife_density",
          "label": "Ocio nocturno OSM a 500 m",
          "value": 0.661416,
          "unit": "POI/km²",
          "asOf": "2026-10-30",
          "sourceIds": [
            "madrid_osm_20261031"
          ],
          "scope": "neighbourhood",
          "method": "Media ponderada por superficie EPSG:3035; inventarios y distancias no exhaustivos.",
          "coveragePct": 99.91353,
          "thresholdPct": 95,
          "granularity": "Agregado de celdas; res9 urbana y res8 periférica",
          "note": "Umbral 95 % sobre todo el polígono. Sin rellenar ausencias.",
          "reason": null,
          "comparable": true,
          "comparisonKey": "[[[\"2026-10-30\",\"madrid_osm_20261031\",\"madrid-supplementary-20261031-v1\"]],[\"osm_geometry\"]]"
        },
        {
          "key": "climate_rain",
          "label": "Precipitación normal: estación Madrid Retiro",
          "value": 421.0,
          "unit": "mm/año",
          "asOf": "1981–2010",
          "sourceIds": [
            "aemet_madrid_3195_normals_1981_2010"
          ],
          "scope": "city_context",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias.",
          "coveragePct": 100,
          "thresholdPct": 95,
          "granularity": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "note": "Normal de estación; no microclima de barrio ni medición actual.",
          "reason": null,
          "comparable": false,
          "comparisonKey": null
        },
        {
          "key": "climate_sunshine",
          "label": "Insolación normal: estación Madrid Retiro",
          "value": null,
          "unit": "h/año",
          "asOf": null,
          "sourceIds": [],
          "scope": "neighbourhood",
          "method": "Sin imputación de ausencias.",
          "coveragePct": 0,
          "thresholdPct": 95,
          "granularity": "Pendiente",
          "note": "",
          "reason": "Pendiente: distribución y cobertura del indicador sin validar.",
          "comparable": false,
          "comparisonKey": null
        }
      ],
      "details": {
        "sale": {
          "value": 5418.4,
          "as_of": "2026-06-30",
          "context": {
            "granularity": "municipality",
            "statistic": "mean",
            "geography_name": "Madrid",
            "source_area_ids": [
              "28079"
            ],
            "period_label": "2026 · 2T",
            "previous_year_eur_m2": 4952.5,
            "geography_date": null
          }
        },
        "climate": {
          "station": {
            "id": "3195",
            "name": "Madrid, Retiro",
            "municipio_id": "28079",
            "latitude": 40.4113888889,
            "longitude": -3.6777777778,
            "altitude_m": 667
          },
          "normal_period": {
            "start": "1981-01-01",
            "end": "2010-12-31"
          },
          "annual": {
            "temperature_c": 15.0,
            "rain_mm": 421.0,
            "sunshine_hours": null,
            "hot_days": null
          },
          "months": [
            {
              "month": 1,
              "temperature_c": 6.3,
              "rain_mm": 33.0,
              "sunshine_hours": 149.0
            },
            {
              "month": 2,
              "temperature_c": 7.9,
              "rain_mm": 34.0,
              "sunshine_hours": 158.0
            },
            {
              "month": 3,
              "temperature_c": 11.2,
              "rain_mm": 25.0,
              "sunshine_hours": 211.0
            },
            {
              "month": 4,
              "temperature_c": 12.9,
              "rain_mm": 45.0,
              "sunshine_hours": 230.0
            },
            {
              "month": 5,
              "temperature_c": 16.7,
              "rain_mm": 50.0,
              "sunshine_hours": 268.0
            },
            {
              "month": 6,
              "temperature_c": 22.2,
              "rain_mm": 21.0,
              "sunshine_hours": 315.0
            },
            {
              "month": 7,
              "temperature_c": 25.6,
              "rain_mm": 12.0,
              "sunshine_hours": 355.0
            },
            {
              "month": 8,
              "temperature_c": 25.1,
              "rain_mm": 10.0,
              "sunshine_hours": 332.0
            },
            {
              "month": 9,
              "temperature_c": 20.9,
              "rain_mm": 22.0,
              "sunshine_hours": 259.0
            },
            {
              "month": 10,
              "temperature_c": 15.1,
              "rain_mm": 60.0,
              "sunshine_hours": null
            },
            {
              "month": 11,
              "temperature_c": 9.9,
              "rain_mm": 58.0,
              "sunshine_hours": 144.0
            },
            {
              "month": 12,
              "temperature_c": 6.9,
              "rain_mm": 51.0,
              "sunshine_hours": 124.0
            }
          ],
          "hot_days_reason": "Pendiente: AEMET no publica días con máxima ≥30 °C en esta tabla.",
          "granularity_label": "Estación Madrid Retiro; contexto de ciudad, no microclima de barrio",
          "method": "Normales publicadas 1981–2010, sin interpolación ni reconstrucción de ausencias."
        },
        "safety": {
          "h3": "88390c849bfffff",
          "metric_key": "safety_crime_context",
          "as_of": "2026-06-30",
          "data_version": "madrid-safety-2026q2-v1",
          "value_json": {
            "granularity": "municipality",
            "municipality_id": "28079",
            "municipality_name": "Madrid",
            "period_label": "enero–junio 2026",
            "period_start": "2026-01-01",
            "previous_period_start": "2025-01-01",
            "previous_as_of": "2025-06-30",
            "provisional": true,
            "indicators": [
              {
                "key": "total_crime",
                "label": "Total de infracciones penales registradas",
                "total": 117596,
                "previous_total": 116450,
                "yoy_pct": 0.9841133533705415
              },
              {
                "key": "conventional_crime",
                "label": "Criminalidad convencional",
                "total": 99024,
                "previous_total": 97947,
                "yoy_pct": 1.0995742595485414
              },
              {
                "key": "cybercrime",
                "label": "Cibercriminalidad",
                "total": 18572,
                "previous_total": 18503,
                "yoy_pct": 0.3729125006755707
              },
              {
                "key": "burglary_home",
                "label": "Robos con fuerza en domicilios",
                "total": 1986,
                "previous_total": 1744,
                "yoy_pct": 13.876146788990829
              },
              {
                "key": "theft",
                "label": "Hurtos",
                "total": 35150,
                "previous_total": 37425,
                "yoy_pct": -6.078824315297259
              }
            ],
            "district_status": "pending"
          },
          "source_id": "madrid_interior_crime_2026q2",
          "confidence": 80,
          "spatial_origin": "municipio:28079; contexto sin reparto a H3"
        }
      }
    }
  ],
  "coverage": [
    {
      "key": "age_over65_pct",
      "label": "Población de 65 y más años",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.288695,
      "maxCoveragePct": 100.0
    },
    {
      "key": "age_under15_pct",
      "label": "Población de 0 a 14 años",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.288695,
      "maxCoveragePct": 100.0
    },
    {
      "key": "climate",
      "label": "Temperatura media normal: estación Madrid Retiro",
      "published": 131,
      "total": 131,
      "minCoveragePct": 100,
      "maxCoveragePct": 100
    },
    {
      "key": "climate_rain",
      "label": "Precipitación normal: estación Madrid Retiro",
      "published": 131,
      "total": 131,
      "minCoveragePct": 100,
      "maxCoveragePct": 100
    },
    {
      "key": "climate_sunshine",
      "label": "Insolación normal: estación Madrid Retiro",
      "published": 0,
      "total": 131,
      "minCoveragePct": 0,
      "maxCoveragePct": 0
    },
    {
      "key": "commerce_density",
      "label": "Densidad de comercio OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "green_area",
      "label": "Superficie verde OSM a 500 m",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "health",
      "label": "Centros de salud públicos/privados a 500 m: media",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "health_distance",
      "label": "Distancia aproximada a sanidad OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "income_per_household",
      "label": "Renta neta media por hogar",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.288695,
      "maxCoveragePct": 100.0
    },
    {
      "key": "income_per_person",
      "label": "Renta neta media por persona",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.288695,
      "maxCoveragePct": 100.0
    },
    {
      "key": "madrid_flood_t100_pct",
      "label": "Peligrosidad fluvial SNCZI T100",
      "published": 0,
      "total": 131,
      "minCoveragePct": 0,
      "maxCoveragePct": 0
    },
    {
      "key": "metro_stops",
      "label": "Estaciones Metro a 500 m",
      "published": 0,
      "total": 131,
      "minCoveragePct": 0,
      "maxCoveragePct": 0
    },
    {
      "key": "nightlife_density",
      "label": "Ocio nocturno OSM a 500 m",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "noise_lden_share",
      "label": "Superficie de celdas con clase dominante Lden vial ≥65 dBA",
      "published": 0,
      "total": 131,
      "minCoveragePct": 0.0,
      "maxCoveragePct": 67.727037
    },
    {
      "key": "official_health_distance",
      "label": "Distancia recta a centro de salud público/privado",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "official_school_distance",
      "label": "Distancia recta a centro docente del catálogo municipal",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "park_distance",
      "label": "Distancia aproximada a parque OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "pharmacy_distance",
      "label": "Distancia aproximada a farmacia OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "population",
      "label": "Población empadronada",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.288695,
      "maxCoveragePct": 100.0
    },
    {
      "key": "renfe_frequency",
      "label": "Salidas programadas Cercanías",
      "published": 0,
      "total": 131,
      "minCoveragePct": 0.0,
      "maxCoveragePct": 0.0
    },
    {
      "key": "renfe_stops",
      "label": "Paradas Cercanías a 500 m",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "rent_eur_m2",
      "label": "Alquiler residencial SERPAVI",
      "published": 112,
      "total": 131,
      "minCoveragePct": 1.975924,
      "maxCoveragePct": 100.0
    },
    {
      "key": "safety",
      "label": "Infracciones registradas: contexto municipal",
      "published": 131,
      "total": 131,
      "minCoveragePct": 100,
      "maxCoveragePct": 100
    },
    {
      "key": "sale_eur_m2",
      "label": "Valor tasado MIVAU: contexto municipal",
      "published": 131,
      "total": 131,
      "minCoveragePct": 100,
      "maxCoveragePct": 100
    },
    {
      "key": "school_distance",
      "label": "Distancia aproximada a centro educativo OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "schools",
      "label": "Primaria oficial a 500 m: media de proximidades",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "supermarket_distance",
      "label": "Distancia aproximada a supermercado OSM",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "transport_frequency",
      "label": "Salidas programadas EMT",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    },
    {
      "key": "transport_stops",
      "label": "Paradas EMT a 500 m",
      "published": 131,
      "total": 131,
      "minCoveragePct": 99.333675,
      "maxCoveragePct": 100.0
    }
  ]
}
