inmobiliaria-analytics/docs/01-fase-alcance-inicial/IAI-008-ml-analytics/requerimientos/RF-ML-002.md
rckrdmrd f570727617 feat: Documentation and orchestration updates
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 05:35:40 -06:00

192 lines
4.6 KiB
Markdown

---
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