El usuario queria ver claramente dónde hay viviendas vacantes y cuántas.
Hasta ahora solo teníamos el choropleth de consumo_p50, que era
abstracto y los numeros de Airbnb en circulos confundian.
Nueva variable 'viviendas_vacantes_estimadas' en el dataset:
- Viviendas_totales (municipio) * 0.162 (tasa CCAA INE 2021)
- Asume distribucion uniforme del 16,2% (proxy: en realidad varia
por municipio, mas alta en zonas turisticas)
- Replicada a todas las secciones del mismo municipio
Capa nueva en el mapa con escala de rojos:
< 100 vacants (claro)
100-500
500-1500
1500-5000
> 5000 vacants (oscuro, Palma)
Total Balears = 105.632 vacantes (proxy)
- Palma: 30.210
- Calvia: 5.912
- Manacor: 4.629
- Inca: 2.570
- Llucmajor: 3.776
- Eivissa: 3.878
i18n: nueva key 'variable_viviendas_vacantes' en ca.json y es.json
Origen: usuario pidió comparar demanda invierno vs verano. API REE rota para
geo_limit=baleares (devuelve 400 en todos los endpoints). Alternativa: analizar
los percentiles de consumo electrico del Censo 2021 (tabla 59532) como proxy
de heterogeneidad de uso.
Logica:
- p10 muy bajo en relacion a p50 (ratio <0.3) = hay casas con consumo muy bajo
(posibles vacantes, segundas residencias estacionales, personas mayores)
- p10/p50 alto (~0.6+) = distribucion mas homogenea = uso residencial estable
Limitaciones documentadas en data/output/vivienda_vacia_analysis.md:
- Es un snapshot del 2011, NO serie temporal
- Ratio NO distingue invierno de verano, solo colas de bajo consumo
- Para invierno vs verano real, hace falta REE funcionando o Govern Balear
Outputs:
- scripts/07_vivienda_vacia_analysis.py: nuevo script de analisis
- data/output/vivienda_vacia_por_distrito.csv: 116 distritos con ratios + Airbnb
- data/output/vivienda_vacia_analysis.md: reporte markdown con top-10, correlacion, etc
- web/public/vivienda_vacia_*: copies para acceso publico
- ratio_p10_p50_consumo: nueva variable en dataset y mapa (color naranja-rojo)
Invertido: naranja = mucha cola de bajo consumo (potencial vacio), verde = estable
- FASE-2-web-mvp.md: documentadas las 8 decisiones tomadas (idioma,
stack, choropleth mixto, granularidad Eivissa/Formentera, clusters,
SSR via prerender=false, fix dataset_web.json, bug secundario) y los
5 problemas encontrados (Node 22 vs 20, TS 7 incompatible, cookie
via Astro.cookies, output static pre-renderiza, GeoJSON pesado)
- PLAN.md: marcar Fase 2 como completada y anadir nota de iteracion
- HANDOFF-FASE-3.md: nuevo handoff para sesion de fase 3 con
estructura, paginas funcionales, decisiones tomadas, traps,
preguntas abiertas
- data/output/.gitkeep: confirmar sentinel
El script 02_build_dataset.py hacia SUM de hut_registros/hut_plazas por
seccion censal, multiplicando los valores de Eivissa (76 secciones) y
Formentera (6 secciones) por el numero de secciones del municipio.
Creado scripts/04_regenerate_web_json.py que:
- Lee el CSV raw de HUT Eivissa y agrega por municipio (total real: 2.364
registros / 18.184 plazas)
- Lee el JSON raw de IBESTAT Formentera (1.375 / 14.935)
- Para Mallorca/Menorca mantiene SUM por seccion del parquet (correcto,
granularidad seccion censal)
Bug secundario corregido: Mallorca y Menorca tenian los mismos totales
porque se agregaba el dict combinado. Ahora se agrega por isla individual.
Nuevo scripts/05_export_airbnb_geojson.py genera el GeoJSON de listings
individuales para los clusters del mapa (18.391 puntos, 2.97MB).
- HUT Eivissa 2026: 2.369 registros, 18.184 plazas (CSV limpio desde HTML-as-xls)
- IBESTAT Formentera 2019: 1.375 establecimientos, 14.935 plazas (JSON desde OLE .xls)
- Insight clave del usuario: legal != realidad, la diferencia ES la denuncia
- Cobertura 4/4 islas con calidad desigual documentada en VALIDACION.md
- PLAN.md y FASE-0-setup.md actualizados con el estado real