Odoo con cerebro de datos. Literalmente.
Tu Odoo es el corazón — bombea operaciones. Le falta el cerebro — un data warehouse separado que responde lo que los reportes nativos no responden: margen real por canal, churn proyectado, food cost por SKU, demand forecasting a 8 semanas. Eso lo construyo yo.
El servicio, en cuatro frases.
Para los que llegaron desde LinkedIn y solo tienen 30 segundos. Si quieres profundidad, sigue scrolleando.
Tu Odoo no responde preguntas analíticas.
Es un ERP — pensado para operar, no para decidir. ¿Cuál fue mi margen real por canal en los últimos 90 días, deduciendo descuentos y mermas? ¿Qué clientes están a 30 días de churn? Estos números no salen de los reportes nativos.
Construyo un data warehouse separado.
Bronze → Silver → Gold encima de tu Postgres Odoo (replicación CDC) + integraciones externas (Shopify · ML · pasarelas de pago · Meta · Google Ads). Stack: Airflow + ClickHouse / BigQuery según volumen.
10–25 dashboards iterados con tu equipo.
Metabase free para PYME · Looker / Power BI / Superset según preferencia. Itero 4–6 dashboards por sprint según uso real. Si nadie abre el dashboard, lo mato y construyo otro.
Diccionario de métricas obligatorio.
Cada KPI tiene una definición SQL inequívoca. «Margen» significa una cosa, no cinco. Tu CFO y tu COO miran el mismo número — no algo que cambia según quien preguntó.
Por qué llegaste aquí.
- 01
5 definiciones de «margen».
Cada departamento calcula diferente. Ventas suma sin restar promociones. Finanzas resta IVA. Operación incluye fletes. CEO no sabe cuál creer.
5 verdades - 02
Reportes nativos lentos.
Los report.xml con joins de 6 tablas tardan 8+ segundos. Tu equipo deja de consultarlos. Y empieza a operar a ciegas.
8 s - 03
Excel paralelo crece sin control.
14 archivos con la palabra «final» en el nombre. Cada uno con fórmulas distintas. Bus factor 1 persona que recuerda cómo se calcula cada cosa.
14 «final» - 04
CFO baja CSV los lunes.
4 horas semanales descargando exports manuales y pegándolos en otro Excel. Cuando se acaba el mes, son 16 horas + posible error humano.
4 h/sem - 05
Decisiones con datos de hace 7-10 días.
El comité directivo decide promociones, asignaciones de inventario, contrataciones — con cifras de la semana pasada. En e-commerce eso son 7–10 días de oportunidad perdida.
7–10 d - 06
Forecasting = «el dueño tiene un feeling».
Demanda, churn, fraude — todo decidido por intuición. Tienes 12-24 meses de datos en Odoo y no los estás explotando.
0 ML
Lo que construimos contigo.
No vendemos plantillas — construimos capas finas que comunican lo que ya existe.
Dashboard ejecutivo · una pantalla, 8 KPIs, cero ambigüedad
Mismo número, mismo momento, mismo significado para CEO/CFO/COO. Revenue 7d, Margin 7d, Churn 30d, AOV, Stock-out, Forecast 8w, Top/Bottom SKU.
Diccionario de métricas · 1 definición SQL por KPI
«Margen» significa una cosa, no cinco. Definición SQL inequívoca, owner asignado, validado en CI/CD. Tu equipo deja de pelear por las cifras.
Anomaly alerts en Slack · te avisa antes que tu equipo
Reglas + ML. Si churn salta 30% en una cohorte, llega un mensaje a quien tiene que actuar — antes que el problema llegue a tu CEO por reclamo.
Forecast 8 semanas · demanda, churn, lead scoring
ML básico cuando tiene ROI claro. No vendo «IA» — vendo modelos que pagan factura en < 6 meses. LightGBM · MAPE 6.2%.
Recorrido Bronze → Silver → Gold · un pedido, 9 capas, 2.3 segundos
Sigue un solo sale.order.line desde que se crea en Odoo hasta que aparece como KPI en el dashboard del CEO. 9 pasos. Stack visible. Latencias reales.
- 01
01 · ORIGEN — Cliente crea pedido en Odoo
sale.order.create() en producción. Fila nueva en sale_order + N filas en sale_order_line. Latencia: 0 ms.
- 02
02 · CDC — Debezium captura el INSERT
Postgres logical replication detecta el cambio. Debezium emite evento JSON al Kafka topic odoo.sale_order. Latencia: ~50 ms.
- 03
03 · BRONZE — Aterriza en ClickHouse raw
Tabla bronze.sale_order_raw. Sin tocar nada — solo _ingested_at. Una fila exacta como salió de Odoo. Latencia: ~200 ms.
- 04
04 · BRONZE — Eventos paralelos · payments
En paralelo: Stripe webhook, Kushki webhook, Mercado Libre webhook llegan al mismo topic. Bronze guarda los 4. Latencia: ~250 ms.
- 05
05 · SILVER — Airflow corre el DAG silver
DAG cada 5 min. Lee bronze, hace clean + join + dedup + null-handling. Crea fila en silver.sale_order_clean. Latencia: +5 min.
- 06
06 · SILVER — Cross-join con catálogo + cliente
Join con dimensiones dim_product, dim_customer, dim_location. Ahora la fila tiene 47 columnas — incluido cohort, channel, region, discount_pct. Latencia: +5 s.
- 07
07 · GOLD — Pre-aggregation a fact
DAG gold cada 15 min. Pre-agrega a fact_sales_daily. KPIs como margen_bruto_7d, aov_7d, cohort_retention ya pre-calculados. Latencia: +15 min.
- 08
08 · METRIC — Diccionario de métricas valida
Cada KPI tiene una definición en YAML. CI/CD valida que la query SQL coincida con la definición. Si CFO y CEO miran el mismo número — es el mismo SQL.
- 09
09 · DASHBOARD — Render en Metabase · CEO ve KPI
Dashboard cargado en 2.3 s (cache Redis · TTL 5 min). CEO ve «Margen 7d: 31.8% ▼0.4pp». Mismo número que CFO. Mismo número que COO. Cero ambigüedad.
Cómo está armado.
Ingestion
Cómo entra el dato al warehouseStorage
Dónde vive el datoTransform & orchestration
Cómo se modelaSurfaces
Cómo se veLos números reales.
Métricas observadas en proyectos concretos. Baseline antes vs estado después de la intervención.
«Pasamos de discutir cifras en reuniones a discutir decisiones. Las cifras ya no se discutían — todos veían el mismo número, definido en SQL, validado en CI. Esto no es BI bonito — es infraestructura de decisión.»
Tres preguntas reales — y mis respuestas honestas.
¿Por qué no usar los reportes nativos de Odoo?
Funcionan para 5 KPIs simples. Para 50, son lentos y limitados — y no atraviesan integraciones externas (Shopify · Meta Ads · Stripe). Un warehouse separado escala 100×.
¿ClickHouse o BigQuery?
ClickHouse si self-hosted y ≥ 100M filas/mes (más barato a escala). BigQuery si serverless y < 100M filas/mes (menos ops). Te recomiendo según volumen real, no según moda.
¿El ML realmente vale la pena en una PYME?
Para forecasting de demanda y lead scoring: sí — ROI claro en < 6 meses. Para todo lo demás: depende del caso. Te lo digo honesto antes de cobrarte. No vendo IA.
Qué entregamos, sin sorpresas.
- Diseño de arquitectura medallion (Bronze / Silver / Gold) sobre tu fuente
- ETL pipelines Airflow desde Odoo Postgres a tu warehouse
- Modelo dimensional (star schema) optimizado para tus preguntas reales
- 10–25 dashboards en Metabase / Looker / Superset / Power BI
- Diccionario de métricas (DEFINE de cada KPI, sin ambigüedad)
- Anomaly alerts vía Slack / email
- ML forecasting básico (demanda, churn, fraude) si aplica
- Capacitación a 2–3 power users de tu equipo
El proceso en 5 pasos.
- 01
Discovery de preguntas
Qué decisiones tomas semanalmente. Qué datos te faltan ahora.
- 02
Arquitectura técnica
ClickHouse / BigQuery / Postgres réplica — según tu volumen y presupuesto.
- 03
ETL + modelo de datos
Airflow pipeline desde Odoo a warehouse. Star schema.
- 04
Dashboards iterativos
Sprint de 1 semana = 4–6 dashboards. Iteramos según uso real.
- 05
ML opcional
Si aplica: forecasting, churn, lead scoring.
Tu Odoo tiene corazón. Le falta cerebro.
Odoo es un ERP excelente. Pero como toda fuente operacional, no está diseñado para responder preguntas analíticas.
- ¿Cuál fue mi margen real por canal en los últimos 90 días, deduciendo descuentos y mermas?
- ¿Qué clientes están a 30 días de churn?
- ¿Cuánto inventario me sobra en SKUs muertos?
Estas preguntas necesitan un data warehouse separado, un modelo dimensional bien hecho, y dashboards que tu equipo realmente abra.
Qué construyo
Odoo (Postgres) → Airflow ETL → ClickHouse/BigQuery → Metabase/Looker
↓
ML forecasting
- Bronze layer — réplica raw de tablas Odoo + integraciones externas.
- Silver layer — limpieza, joins, deduplicación, conformación.
- Gold layer — métricas precalculadas, fact tables y dimensiones.
- Dashboards — 10–25 paneles iterados con tu equipo según uso real.
- Diccionario de métricas — qué significa CADA número que ves.
El cerebro que tu Odoo merece
Mi diferenciador no es solo Odoo. Mis 9 años de carrera son data engineering — Estée Lauder, Aeroflot, Dodo Pizza, Qatar Insurance. He construido warehouses con +$8.5B en transacciones bajo gestión.
Tu Odoo + un data warehouse hecho bien = un sistema que decide mejor que tus competidores.
Preguntas que recibo cada semana.
¿Por qué no usar los reportes nativos de Odoo?
Funcionan para 5 KPIs. Para 50, son lentos y limitados. Un warehouse separado escala 100x.
¿ClickHouse o BigQuery?
ClickHouse si self-hosted y >100M filas/mes. BigQuery si serverless y <100M filas/mes. Te recomiendo según volumen real.
¿Y Looker / Power BI?
Metabase es excelente y gratis para empezar. Looker $$$. Power BI si ya usas Microsoft 365. Superset gratis pero learning curve.
¿El ML realmente vale la pena en una PYME?
Para forecasting de demanda y lead scoring: sí, ROI claro en <6 meses. Para todo lo demás: depende del caso. Te lo digo honesto.
¿Tocas mi base de producción Odoo?
No. Replicación CDC + warehouse separado. Tu Odoo en producción no ve mi pipeline. Si mi warehouse cae, tu operación sigue.
¿Multi-empresa / multi-país?
Sí. Patrón normalizado a UTC + locale-aware. Tu CEO ve el LATAM completo en una sola pantalla, con cada país en hora local.
¿Te suena familiar? Hablemos.
Empezamos siempre con una llamada de 30 minutos. Sin formularios largos — agenda directa.