--- id: "RF-ML-002" title: "Prediccion de Tiempo de Venta" type: "Functional Requirement" epic: "IAI-008" priority: "Alta" status: "Draft" project: "inmobiliaria-analytics" created_date: "2026-01-04" updated_date: "2026-01-04" --- # RF-IA-008-002: Prediccion de Tiempo de Venta --- ## Descripcion El sistema debe predecir cuantos dias tardara una propiedad en venderse (Days on Market - DOM) basandose en caracteristicas de la propiedad, precio de lista y condiciones de mercado. --- ## Justificacion Conocer el tiempo estimado de venta permite a agentes establecer expectativas realistas con clientes, ajustar estrategias de pricing, y a inversores evaluar liquidez de inversiones. --- ## Requisitos Funcionales ### RF-002.1: Prediccion DOM | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-002.1.1 | El sistema debe predecir dias estimados en mercado | Alta | | RF-002.1.2 | El sistema debe proporcionar intervalo de confianza | Alta | | RF-002.1.3 | El sistema debe calcular probabilidades de venta a 30/60/90 dias | Alta | | RF-002.1.4 | El sistema debe considerar estacionalidad | Media | ### RF-002.2: Features Criticas | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-002.2.1 | El modelo debe usar ratio precio/mercado como feature principal | Alta | | RF-002.2.2 | El modelo debe considerar inventario activo en zona | Alta | | RF-002.2.3 | El modelo debe considerar absorcion historica | Alta | | RF-002.2.4 | El modelo debe evaluar calidad del listing (fotos, descripcion) | Media | ### RF-002.3: Actualizacion | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-002.3.1 | El sistema debe recalcular prediccion si cambia precio | Alta | | RF-002.3.2 | El sistema debe ajustar prediccion con dias transcurridos | Media | | RF-002.3.3 | El sistema debe aprender de ventas reales | Alta | --- ## Features del Modelo ### Propiedad | Feature | Tipo | Importancia | |---------|------|-------------| | precio_lista | float | Alta | | precio_vs_mercado_ratio | float | Critica | | tipo_propiedad | categorical | Alta | | superficie_m2 | float | Media | | antiguedad_anos | int | Media | | calidad_fotos_score | float | Alta | | descripcion_quality_score | float | Media | | tiene_tour_virtual | boolean | Media | ### Mercado | Feature | Tipo | Importancia | |---------|------|-------------| | inventario_activo_zona | int | Alta | | absorcion_mensual_zona | float | Alta | | tendencia_demanda_zona | float | Alta | | competencia_precio_similar | int | Alta | | estacionalidad_mes | int | Media | --- ## Arquitectura del Modelo ```yaml modelo: tipo: Survival Analysis componentes: - modelo: CoxProportionalHazards uso: "Baseline, interpretable" - modelo: RandomSurvivalForest uso: "Captura no-linealidades" hiperparametros: n_estimators: 200 max_depth: 10 target: dias_en_mercado censoring: propiedades_aun_activas output: dias_estimados: median_survival_time probabilidades: - p_venta_30d: survival_function(30) - p_venta_60d: survival_function(60) - p_venta_90d: survival_function(90) ``` --- ## API Endpoints ```yaml POST /api/v1/ml/predictions/time-to-sell: description: Prediccion de tiempo de venta request: property: type: string price: number construction_m2: number latitude: number longitude: number listing_quality: photos_count: integer has_virtual_tour: boolean response: estimated_days: integer confidence_interval: min: integer max: integer probabilities: sell_30_days: number sell_60_days: number sell_90_days: number factors: - factor: string impact: string # "accelerates" | "delays" magnitude: number recommendations: - recommendation: string potential_improvement_days: integer ``` --- ## Metricas de Calidad ```yaml metricas: objetivo: C_index: ">= 0.75" MAPE: "< 25%" segmentacion: - accuracy_por_rango_precio - accuracy_por_tipo_propiedad - accuracy_por_zona ``` --- ## Criterios de Aceptacion - [ ] C-index >= 0.75 en test set - [ ] MAPE < 25% en propiedades vendidas - [ ] Probabilidades calibradas correctamente - [ ] Latencia < 100ms por prediccion - [ ] Recomendaciones generadas automaticamente - [ ] Modelo se actualiza con ventas reales --- ## Dependencias - IA-008-001 (AVM): Para ratio precio/mercado - IA-007 (Webscraper): Datos de listings - lifelines o scikit-survival --- ## Historias de Usuario Relacionadas - US-ML-003: Prediccion dias en mercado --- **Autor:** ML Lead **Fecha:** 2026-01-04