--- id: "US-ML-008" title: "Mapa de zonas emergentes" type: "User Story" epic: "IAI-008" status: "Draft" story_points: 8 priority: "Media" project: "inmobiliaria-analytics" created_date: "2026-01-04" updated_date: "2026-01-04" --- # US-ML-008: Mapa de zonas emergentes --- ## User Story **Como** inversor inmobiliario **Quiero** visualizar zonas con potencial de apreciacion en un mapa interactivo **Para** identificar donde invertir antes de que suban los precios --- ## Descripcion Implementar mapa interactivo que muestre zonas clasificadas por potencial de apreciacion, con colores indicando oportunidad (verde=alta, amarillo=media, rojo=baja), incluyendo metricas clave y tendencias historicas por zona. --- ## Criterios de Aceptacion - [ ] Mapa interactivo con polygonos de zonas - [ ] Color-coding por potencial de apreciacion - [ ] Click en zona muestra metricas detalladas - [ ] Filtros por tipo de propiedad y rango de precio - [ ] Historico de 12 meses en graficas - [ ] Carga rapida (< 2 segundos) --- ## Mockup del Mapa ``` +----------------------------------------------------------+ | MAPA DE OPORTUNIDADES DE INVERSION | +----------------------------------------------------------+ | Filtros: [Casas ▼] [< $5M ▼] [Ultimos 12 meses ▼] | +----------------------------------------------------------+ | | | ┌─────────────────────────────────────────────┐ | | │ ZAPOPAN │ | | │ ┌────────┐ │ | | │ │ Country│ ▓▓▓ │ | | │ │ Club │ │ | | │ └────────┘ ┌──────────┐ │ | | │ │Providencia│ ███ │ | | │ ┌──────┐ │ (+18%) │ │ | | │ │Chapal│ └──────────┘ │ | | │ │ita │ ▓▓▓ │ | | │ └──────┘ │ | | │ GUADALAJARA │ | | │ ┌─────────┐ │ | | │ │Lafayette│ ███ │ | | │ │ (+22%) │ │ | | │ └─────────┘ ┌────────┐ │ | | │ │Americana│ ▓▓▓ │ | | │ │ (+15%) │ │ | | │ └────────┘ │ | | │ │ | | │ ███ Alta (>15%) ▓▓▓ Media (8-15%) │ | | │ ░░░ Baja (<8%) ─── Sin datos │ | | └─────────────────────────────────────────────┘ | | | +----------------------------------------------------------+ ``` --- ## Panel de Detalle de Zona ``` +------------------------------------------+ | LAFAYETTE - Zapopan | +------------------------------------------+ | | | Score de Inversion: 87/100 ████ | | Riesgo: Bajo | | | | METRICAS | | ┌─────────────────────────────────────┐ | | │ Apreciacion 12m │ +22.3% │ | | │ Precio promedio/m2 │ $35,400 │ | | │ vs. promedio ciudad │ +18% │ | | │ Tendencia │ Acelerando │ | | │ Inventario activo │ 45 props │ | | │ Dias en mercado │ 38 dias │ | | └─────────────────────────────────────┘ | | | | TENDENCIA DE PRECIOS | | $40K │ ╭────── | | $35K │ ╭───╯ | | $30K │╭───╯ | | $25K │ | | └──────────────────── | | E F M A M J J A S O N D | | | | DRIVERS DE CRECIMIENTO | | - Nuevo desarrollo comercial | | - Derrame de zona Andares | | - Alta demanda, bajo inventario | | | | PROPIEDADES EN ZONA | | [Ver 45 propiedades activas] | | | +------------------------------------------+ ``` --- ## Tareas Tecnicas | # | Tarea | Estimacion | |---|-------|------------| | 1 | Obtener/crear GeoJSON de colonias | 4h | | 2 | Implementar mapa con Mapbox/Leaflet | 6h | | 3 | Calcular scores por zona (backend) | 4h | | 4 | Panel de detalle interactivo | 4h | | 5 | Graficas de tendencia por zona | 4h | | 6 | Filtros y busqueda | 3h | | 7 | Optimizacion de carga | 2h | | 8 | Tests | 2h | **Total estimado:** 29h (~3.5 dias) --- ## Datos por Zona ```yaml zone_data: lafayette: polygon: "geojson..." municipality: "Zapopan" metrics: appreciation_12m: 22.3 avg_price_m2: 35400 vs_city_avg: 1.18 trend: "accelerating" inventory: 45 avg_dom: 38 investment_score: 87 risk_level: "low" drivers: - "Nuevo desarrollo comercial cercano" - "Derrame de zona Andares" - "Alta demanda vs inventario bajo" forecast: next_12m: 15.5 # % estimado confidence: 0.78 ``` --- ## API Endpoints ```yaml endpoints: GET /api/zones/emerging: description: "Lista de zonas emergentes" response: - zone_id - name - polygon_geojson - score - appreciation_12m - color_code GET /api/zones/{zone_id}/details: description: "Detalle de una zona" response: - full_metrics - price_history_monthly - drivers - forecast - sample_properties GET /api/zones/heatmap: description: "Datos para heatmap de precios" response: - grid_cells_with_values ``` --- ## Definition of Done - [ ] Mapa renderiza correctamente - [ ] Polygonos de zonas cargados - [ ] Colores reflejan scoring correcto - [ ] Panel de detalle funcional - [ ] Performance < 2s carga inicial - [ ] Mobile responsive --- **Asignado a:** - **Sprint:** -