--- id: "RF-ML-003" title: "Deteccion de Oportunidades de Inversion" 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-003: Deteccion de Oportunidades de Inversion --- ## Descripcion El sistema debe identificar automaticamente propiedades subvaluadas, zonas emergentes con potencial de apreciacion, y oportunidades de inversion basandose en analisis de mercado y modelos predictivos. --- ## Justificacion Los inversores buscan oportunidades que el mercado aun no ha identificado. Un sistema automatizado puede analizar miles de propiedades y detectar anomalias de precio o tendencias emergentes que serian imposibles de identificar manualmente. --- ## Requisitos Funcionales ### RF-003.1: Propiedades Subvaluadas | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-003.1.1 | El sistema debe comparar precio lista vs valor AVM | Alta | | RF-003.1.2 | El sistema debe clasificar nivel de oportunidad | Alta | | RF-003.1.3 | El sistema debe filtrar falsos positivos (distressed, defectos) | Alta | | RF-003.1.4 | El sistema debe validar con comparables recientes | Alta | ### RF-003.2: Zonas Emergentes | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-003.2.1 | El sistema debe detectar zonas con incremento de demanda | Alta | | RF-003.2.2 | El sistema debe identificar senales de desarrollo | Alta | | RF-003.2.3 | El sistema debe proyectar apreciacion potencial | Media | | RF-003.2.4 | El sistema debe clasificar etapa de emergencia | Media | ### RF-003.3: Alertas | ID | Requisito | Prioridad | |----|-----------|-----------| | RF-003.3.1 | El sistema debe notificar nuevas oportunidades | Alta | | RF-003.3.2 | El sistema debe permitir configurar criterios de alerta | Alta | | RF-003.3.3 | El sistema debe priorizar oportunidades por score | Media | --- ## Deteccion de Subvaluadas ### Metodologia ```yaml pasos: 1_valuacion: accion: "Calcular valor mercado con AVM" output: valor_mercado, confianza 2_comparacion: accion: "Calcular descuento = (valor_mercado - precio_lista) / valor_mercado" output: descuento_pct 3_validacion: accion: "Verificar con comparables recientes" filtros: - confianza_avm > 0.75 - antiguedad_listing < 30 dias - no_es_foreclosure - no_tiene_defectos_obvios 4_clasificacion: umbrales: oportunidad_moderada: ">= 10%" oportunidad_alta: ">= 15%" oportunidad_excepcional: ">= 20%" ``` ### Filtros Anti-Falso Positivo ```yaml filtros: excluir: - precio_muy_bajo: "< percentil_5 de zona" - descripcion_contiene: ["rematar", "urgente", "embargo"] - sin_fotos: true - antiguedad_extrema: "> 50 anos sin remodelacion" flags_revisar: - precio_baja_reciente: "> 20% en 30 dias" - tiempo_en_mercado_largo: "> 180 dias" ``` --- ## Deteccion de Zonas Emergentes ### Senales ```yaml senales: infraestructura: peso: 0.25 indicadores: - nuevas_lineas_transporte - nuevos_centros_comerciales - mejoras_viales fuente: "noticias, permisos municipales" desarrollo: peso: 0.20 indicadores: - permisos_construccion_nuevos - proyectos_anunciados - inversion_inmobiliaria fuente: "registros publicos, noticias" demanda: peso: 0.30 indicadores: - incremento_busquedas_yoy: "> 20%" - reduccion_dias_mercado_yoy: "> 15%" - incremento_precio_m2_yoy: "> 10%" fuente: "datos propios" demograficos: peso: 0.15 indicadores: - crecimiento_poblacional - mejora_nivel_socioeconomico - reduccion_criminalidad fuente: "INEGI, estadisticas publicas" sociales: peso: 0.10 indicadores: - nuevos_restaurantes_cafes - apertura_coworkings - eventos_culturales fuente: "Google Places, Yelp" ``` ### Clasificacion ```yaml clasificacion: early_stage: score: "60-70" caracteristicas: "Senales iniciales, pocos inversionistas" riesgo: "Alto" potencial: "Muy alto" growing: score: "70-80" caracteristicas: "Tendencia confirmada, precios subiendo" riesgo: "Medio" potencial: "Alto" maturing: score: "80-90" caracteristicas: "Establecida, desacelerando" riesgo: "Bajo" potencial: "Medio" saturated: score: "> 90" caracteristicas: "Precios altos, poco upside" riesgo: "Bajo" potencial: "Bajo" ``` --- ## API Endpoints ```yaml GET /api/v1/ml/opportunities/undervalued: description: Listar propiedades subvaluadas query: min_discount: number # default 10 max_price: number property_type: string zone_id: string limit: integer response: opportunities: - property_id: string price: number estimated_value: number discount_pct: number opportunity_level: string confidence: number comparables: array GET /api/v1/ml/opportunities/emerging-zones: description: Listar zonas emergentes query: min_score: number stage: string response: zones: - zone_id: string name: string score: number stage: string appreciation_12m: number signals: array heatmap: geojson POST /api/v1/ml/opportunities/alerts: description: Configurar alertas de oportunidad request: criteria: min_discount: number property_types: array zones: array max_price: number channels: array # email, push, webhook response: 201 Created ``` --- ## Criterios de Aceptacion - [ ] Propiedades subvaluadas detectadas con precision > 80% - [ ] Falsos positivos < 20% - [ ] Zonas emergentes correlacionan con apreciacion real - [ ] Alertas se envian en < 1 hora de nueva oportunidad - [ ] Dashboard muestra mapa de calor de oportunidades - [ ] Usuarios pueden configurar criterios de alerta --- ## Dependencias - IA-008-001 (AVM): Valuacion de propiedades - IA-007 (Webscraper): Datos de listings - Fuentes externas (INEGI, noticias) --- ## Historias de Usuario Relacionadas - US-ML-005: Alertas de oportunidades - US-ML-008: Zonas emergentes --- **Autor:** ML Lead **Fecha:** 2026-01-04