Dalil - Guia Completa

Documentacion tecnica de como funciona el sistema de inteligencia inmobiliaria de Dubai. Todo lo que necesitas saber para entender las metricas y decisiones.

Indice

🎯 1. Vision General

Dalil es una plataforma de inteligencia inmobiliaria para el mercado de Dubai. Combina datos de listings activos con transacciones reales del Dubai Land Department (DLD) para calcular el valor justo de propiedades y generar senales de inversion.

Que Problema Resuelve

En Dubai, los precios de venta/alquiler publicados son "asking prices" - lo que el vendedor quiere. Pero las transacciones reales (registradas en DLD) muestran lo que realmente se paga. Dalil cruza ambos datos para identificar:

  • Propiedades sobrevaloradas - Asking price muy por encima de transacciones reales
  • Oportunidades de inversion - Propiedades bajo precio de mercado
  • Tendencias de mercado - Zonas subiendo o bajando de precio

Flujo de Datos

PropertyFinder Scraper PropertyListing Intelligence Service Signals + Scores
DLD API PropertyTransaction Fair Value Calculation

📊 2. Fuentes de Datos

PropertyListing (Listings Activos)

Propiedades actualmente en venta o alquiler. Se obtienen de PropertyFinder via scraping.

CampoDescripcion
pricePrecio pedido (asking price) en AED
purposefor-sale o for-rent
bedroomsNumero de habitaciones (0 = Studio)
area_sqftArea en pies cuadrados
locationReferencia a Location (zona)
completion_statusready u off-plan
furnishedfurnished, unfurnished, partly
listed_dateFecha de publicacion
signalSenal calculada (STRONG_BUY, BUY, etc.)
investment_scorePuntuacion 0-100

PropertyTransaction (Transacciones Reales)

Transacciones registradas en Dubai Land Department. Estos son precios reales pagados, no asking prices. Es nuestra fuente de verdad para calcular fair value.

CampoDescripcion
pricePrecio real de la transaccion en AED
transaction_dateFecha de la transaccion
purposefor-sale o for-rent
locationZona donde ocurrio
building_nameNombre del edificio
bedroomsNumero de habitaciones
area_sqftArea de la propiedad
Ejemplo Real
En Marina Gate Tower 1, un apartamento de 2 habitaciones se listo a AED 180,000/ano. Pero revisando transacciones de DLD, vemos que los ultimos 5 contratos de 2BR en ese edificio fueron: 155K, 160K, 158K, 162K, 155K. Mediana = AED 158,000.

Conclusion: El listing esta un 14% por encima del mercado real.

Location (Jerarquia de Zonas)

Dubai se organiza jerarquicamente. Cada location tiene un parent.

CITY: Dubai COMMUNITY: Dubai Marina SUBCOMMUNITY: Marina Gate BUILDING: Marina Gate Tower 1

💰 3. Fair Value (Valor Justo)

El Fair Value es nuestra estimacion del precio real de mercado basado en transacciones. No es el asking price, sino lo que realmente se paga por propiedades similares.

Como se Calcula

1. Buscar transacciones en la misma LOCATION 2. Filtrar por mismo PURPOSE (rent/sale) 3. Filtrar por mismo BEDROOMS 4. Filtrar ultimos 180 dias 5. Calcular MEDIANA de precios Fair Value Range: - LOW: mediana * 0.90 (10% menos) - MEDIAN: mediana - HIGH: mediana * 1.10 (10% mas)

Por que mediana y no promedio? La mediana es mas robusta ante outliers. Si hay una transaccion atipica de 500K entre varias de 150K, el promedio se distorsiona pero la mediana no.

Fuentes de Fair Value (en orden de prioridad)

PrioridadFuenteConfianza
1Transacciones en mismo edificio + mismo BRAlta
2Transacciones en misma subcommunity + mismo BRMedia-Alta
3Transacciones en community padre + mismo BRMedia
4Listings activos similares (fallback)Baja

Ejemplo Completo

Caso: Apartamento en JBR
Listing: 2BR en Sadaf 4, JBR. Asking: AED 140,000/ano

Paso 1: Buscar transacciones de alquiler en Sadaf 4, 2BR, ultimos 6 meses
Resultado: 3 transacciones - 125K, 130K, 128K

Paso 2: Calcular mediana = 128,000 AED

Paso 3: Generar rango
- Low: 115,200 (128K * 0.90)
- Median: 128,000
- High: 140,800 (128K * 1.10)

Conclusion: El asking price de 140K esta justo en el limite alto. Es negociable hacia 128-130K.

🚦 4. Signals (Senales de Inversion)

Los Signals son recomendaciones de inversion basadas en multiples factores. Van mas alla del precio - consideran yield, momentum, riesgo, etc.

Tipos de Signal

SignalBadgeSignificadoAccion
STRONG_BUY Comprar Oportunidad excepcional. Precio muy bajo, buenos fundamentales. Actuar rapido, hacer oferta
BUY Buena Opcion Buen deal. Precio bajo mercado con riesgo aceptable. Considerar seriamente
NEGOTIATE Negociar Precio justo pero hay margen. Mercado equilibrado. Negociar 5-10% descuento
WAIT Esperar Precio alto o condiciones desfavorables. Puede bajar. Monitorear, no urgente
AVOID Evitar Sobreprecio significativo o alto riesgo. Buscar alternativas

Factores que Afectan el Signal

1. Precio vs Fair Value (40%)
Cuanto esta el asking price por encima o debajo del valor justo calculado.
2. Rental Yield (20%)
Para compra: que retorno anual genera el alquiler vs precio de compra.
3. Momentum de Zona (15%)
La zona esta subiendo o bajando de precio en ultimos 30-90 dias.
4. Liquidez/Volumen (15%)
Cuantas transacciones hay en la zona. Mas volumen = mas facil vender/alquilar.
5. Dias en Mercado (10%)
Listings viejos (90+ dias) pueden indicar sobreprecio o problemas.

Ejemplo de Generacion de Signal

Analisis de Propiedad
Propiedad: 1BR en Marina Gate, asking 95K/ano
Fair Value: 88K (mediana de transacciones)
Diferencia: +8% sobre mercado

Factores adicionales:
- Zona con momentum positivo (+5% ultimos 30 dias)
- Alto volumen de transacciones (12/mes)
- Listing lleva 45 dias (moderado)

Signal: NEGOTIATE
Razon: Precio ligeramente alto pero zona en tendencia positiva. Negociar hacia 88-90K seria fair.

🎯 5. Deal Score (Puntuacion)

El Deal Score es una puntuacion de 0-100 que indica que tan buena es la oportunidad. Es un resumen numerico de multiples factores.

Rangos de Score

RangoVisualInterpretacion
70-100 85 Excelente. Oportunidad clara, precio bajo mercado.
40-69 55 Moderado. Precio justo, considerar negociacion.
0-39 25 Bajo. Sobreprecio o riesgo alto. Precaucion.

Formula de Calculo

Score base = 50 (neutral) 1. PRECIO vs FAIR VALUE (hasta +/- 40 puntos) - Mas de 20% bajo mercado: +40 - 10-20% bajo mercado: +30 - 0-10% bajo mercado: +20 - 0-10% sobre mercado: 0 - 10-20% sobre mercado: -15 - Mas de 20% sobre mercado: -30 2. SIGNAL SCORE boost (hasta +/- 10 puntos) - Ajuste basado en signal_score del modelo 3. CONFIDENCE adjustment - High confidence: sin cambio - Medium confidence: score * 0.95 - Low confidence: score * 0.85 4. DIAS EN MERCADO bonus - Menos de 7 dias: +5 (listing fresco) - Mas de 90 dias: +3 (potencial negociacion) FINAL = clamp(score, 0, 100)

📈 6. Confidence Level (Nivel de Confianza)

El Confidence Level indica que tan fiables son nuestros calculos. Depende principalmente de cuantas transacciones comparables tenemos.

Niveles

NivelTransaccionesSignificado
HIGH 5+ transacciones Datos solidos. Fair value muy confiable.
MEDIUM 3-4 transacciones Datos razonables. Fair value aproximado.
LOW 1-2 transacciones Pocos datos. Usar con precaucion.

Importante: Cuando confidence es LOW, el deal score se penaliza automaticamente (multiplicado por 0.85). Esto refleja la incertidumbre en nuestras estimaciones.

🏘️ 7. Comparables (Comps)

Los Comparables son transacciones similares que usamos como referencia. Son la base de todo el analisis de fair value.

Tipos de Comps

Building Comps (Mejor calidad)
Transacciones en el mismo edificio. Ideal porque comparten exactamente las mismas amenities, management, ubicacion.
Area Comps
Transacciones en la misma subcommunity/community. Util cuando no hay suficientes building comps.
Closest Comp
La transaccion mas reciente y similar. Sirve como punto de referencia inmediato.

Criterios de Comparabilidad

CriterioImportanciaTolerancia
Misma locationCriticoExacto o parent
Mismo purpose (rent/sale)CriticoExacto
Mismo bedroomsAltoExacto
Fecha recienteAltoUltimos 180 dias
Property typeMedioSimilar
Area sqftMedio+/- 20%

📉 8. Metricas de Mercado

Days on Market (DOM)

Dias desde que se publico el listing. Indica demanda y pricing correcto.

DOMInterpretacion
0-14 diasListing fresco. Posible alta demanda o buen precio.
15-45 diasNormal. Tiempo tipico de mercado.
46-90 diasProlongado. Posible sobreprecio.
90+ diasStale. Probablemente sobrevalorado. Buen poder de negociacion.

Market Momentum

Compara ultimos 30 dias vs 30 dias anteriores para detectar tendencias.

Volume Momentum = (txns_ultimos_30d - txns_previos_30d) / txns_previos_30d * 100 Price Momentum = (avg_price_ultimos_30d - avg_price_previos_30d) / avg_price_previos_30d * 100 Ejemplo: - Ultimos 30 dias: 15 transacciones, avg 150K - Previos 30 dias: 12 transacciones, avg 145K - Volume Momentum: +25% - Price Momentum: +3.4% - Interpretacion: Zona en tendencia alcista

Inventory Pressure

Meses de inventario disponible. Indica si es mercado de compradores o vendedores.

Meses de Inventario = Listings Activos / (Transacciones ultimos 90 dias / 3) Interpretacion: - < 3 meses: LOW inventory = Mercado de vendedores (precios suben) - 3-6 meses: BALANCED = Mercado equilibrado - > 6 meses: HIGH inventory = Mercado de compradores (precios bajan)

Rental Yield (Para compra)

Retorno anual del alquiler vs precio de compra. Metrica clave para inversores.

Rental Yield = (Alquiler Anual Esperado / Precio de Compra) * 100 Ejemplo: - Apartamento en venta: AED 1,500,000 - Alquiler esperado: AED 90,000/ano - Yield = 90,000 / 1,500,000 * 100 = 6.0% Benchmarks Dubai: - < 5%: Bajo (zonas premium, menor retorno) - 5-7%: Normal - 7-9%: Bueno - > 9%: Excelente (verificar por que tan alto)

🔍 9. Filtros y Busqueda

Filtros Disponibles

FiltroValoresDescripcion
Purposefor-rent, for-saleAlquiler o compra
Bedrooms0 (Studio), 1, 2, 3, 4, 5+Numero de habitaciones
Price RangeMin - Max AEDRango de precio
Property TypeApartment, Villa, Townhouse, etc.Tipo de propiedad
Furnishedfurnished, unfurnished, partlyEstado de amueblado
Completionready, off-planListo o en construccion
OccupancyVAC (Vacant), TEN (Tenant)Ocupado o vacio
AmenitiesBA, GY, SP, SV, etc.Caracteristicas especificas

Codigos de Amenities

CodigoAmenity
BABalcon
MRMaid Room
PGPrivate Garden
PPPrivate Pool
GYGimnasio
SPShared Pool
SVSea View
MVMarina View
BKVBurj Khalifa View
HFLHigh Floor
PAPets Allowed
CPCovered Parking
SCSecurity 24h
VACVacant (disponible)
TENTenanted (alquilado)

⚙️ 10. Arquitectura Tecnica

Stack Tecnologico

ComponenteTecnologia
BackendDjango 5.x + Python 3.12
DatabasePostgreSQL
ServerGunicorn + Nginx
FrontendDjango Templates + Vanilla JS
ScrapingManagement Commands

Modelos Principales

core/models.py: - Location # Jerarquia de zonas - PropertyListing # Listings activos (scrapeados) - PropertyTransaction # Transacciones DLD - Amenity # Caracteristicas (M2M con Listing) - ListingSignal # Senales calculadas por listing - MarketBenchmark # Benchmarks por zona - MicroMarket # Analisis de micro-mercados

Servicios Clave

ListingIntelligence
core/services/listing_intelligence.py
Calcula fair value, deal score, comps, confidence para cada listing.
Scraper PropertyFinder
core/management/commands/scrape_propertyfinder.py
Obtiene listings activos de PropertyFinder y los guarda en DB.

APIs

EndpointDescripcion
GET /api/search/Busqueda de propiedades con filtros
GET /api/properties/Lista de propiedades (legacy)
GET /api/properties/{id}/Detalle de propiedad
GET /api/locations/search/Autocomplete de zonas
GET /api/stats/Estadisticas generales

URLs Principales

URLVistaDescripcion
/Lab DashboardDashboard principal con metricas
/search/Property SearchBuscador estilo marketplace
/properties/{id}/Property DetailDetalle con analisis completo
/trading/Trading ViewVista para traders/inversores
/market/Market ExplorerExplorador de mercado
/glossary/GlossaryEsta pagina