data-metrics.pro / Casos / Dodo Pizza LATAM
Caso de operaciones · cadena de suministros · 18 meses

Cada eslabón.
Una sola consola.

Convertimos cadenas de 20+ ubicaciones en un solo sistema nervioso de datos. Cocina, almacén, despacho, ruta y cliente — todo emitiendo eventos al mismo bus, con latencia menor a 100 ms y una sola pantalla que ven gerentes locales, COO y CFO al mismo tiempo.

100+
locales en producción
// PE · MX · BR · CO
−27%
tiempo medio de cocina
// vs baseline 12 meses
+19pts
NPS de delivery
// medido por Dodo HQ
99.97%
uptime del pipeline
// 12 meses rolling
10k/min
eventos procesados pico
// sábado · 20:00 LIM
// flujo en producción LIVE
RXVALQUEPREOVNRDYDSPTRNDLV
// 01 · TL;DR

El caso, en cuatro frases.

Para los que llegaron desde LinkedIn y solo tienen 30 segundos. Si quieres profundidad, sigue scrolleando.

01

Tu cadena crece más rápido que tus dashboards.

El pipeline original era batch overnight: el COO veía a las 9 AM lo que pasó ayer. En una operación que decide en minutos, eso es ciego.

02

Construimos un Order Chain Manager event-driven.

No reemplazamos POS, ERP ni TMS. Construimos una capa de eventos por encima — Kafka + Spark Streaming + Delta Lake — que se alimenta de todo lo que ya existía.

03

Mismo evento → 4 superficies distintas.

Tablet en cocina, alertas en Slack, mapa LATAM en oficina, app ejecutiva en celular. Mismo data layer. Mismo momento.

04

Payback medio: 6 meses. ROI 24m: 3.9×.

Y un equipo que ya no abre Excel el lunes a la mañana para entender qué pasó el sábado.

// 02 · El problema

Dodo Pizza LATAM llegó con un problema medible.

  1. 01

    Visibilidad rota

    POS reportaba al día siguiente. El gerente se enteraba el lunes que el sábado faltó queso.

    24h delay
  2. 02

    Cocina sorprendida

    Front-end cerraba ventas antes de que la cocina viera la cola. 40 pedidos en 6 min y nadie con masa lista.

    40 / 6 min
  3. 03

    Reportes desactualizados

    Directorio decidía sobre números de hace 10 días. Decisiones de millones, fotografías borrosas.

    10 días stale
  4. 04

    4 países, 4 hojas de cálculo

    Reconciliar entre PE / MX / BR / CO tomaba 3 días. Cierre mensual: 9 días.

    9 días cierre
  5. 05

    Marketing → ops sin avisar

    2×1 anunciado un viernes 14:00. Cocina del local fuerte colapsa a las 19:00. Ops se entera por reclamos.

    sin coordinación
  6. 06

    Una persona sostenía todo

    64 locales reconciliados a mano por 1 FTE. Si renunciaba una semana → caos.

    1 FTE · 64 locales
// el costo del caos · cierre mensual
9días
// pedidos perdidos · sábados peak
~84/sáb
// dependencia personal
1FTE
// 03 · La solución

Lo que construimos.

No reemplazamos lo que ya funcionaba. Construimos capas finas que comunicaron sistemas ciegos entre sí.

SUPERFICIE 01

Pantalla central · sala de directores

Mapa LATAM en vivo. Cada pin es un local. Color = estado del momento (verde / ámbar / rojo). Click → drill-down a pedidos individuales.

SUPERFICIE 02

Tablet en cocina

Aviso 8 minutos antes que entra una ola. La cocina pre-prepara — sin sorpresas el sábado.

SUPERFICIE 03

Slack del gerente

Stock-out, pico de espera, NPS rojo — al instante, a quien tiene que actuar.

SUPERFICIE 04

Mobile · directorio

El COO y el CEO miran desde el celular. Top-3 alertas en pantalla principal.

// 04 · Arquitectura

Stack y capas.

stack: Kafka · Spark Streaming · Delta Lake · Postgres + Citus · Redis · dbt · Next.js

L1

Ingesta

~5 ms
EVENT BROKER
Apache Kafka
CDC
Debezium
SDK CLIENTES
tracker.js + Python
HARDWARE
OPC-UA · hornos · scanners
L2

Procesamiento en streaming

~40 ms
STREAMING
Spark Structured Streaming
STATE
RocksDB · Delta Live Tables
REGLAS
Drools custom + DSL interna
ML INFERENCE
MLflow models · LightGBM
L3

Almacenamiento + DWH

batch / serving
LAKEHOUSE
Delta Lake en S3
SERVING
Postgres + Citus
HOT CACHE
Redis Streams
TRANSFORM
dbt Core · 84 modelos
L4

Superficies

render < 50 ms
WEB CONSOLE
Next.js + TypeScript
TABLET COCINA
React Native (Android)
SLACK BOT
Bolt for Python
EXEC MOBILE
Expo · iOS + Android
// 05 · Resultados

Los números.

Medidos por el equipo del cliente, no por nosotros. Comparativa: baseline previo al go-live.

Métrica Antes Después Δ
Tiempo medio de cocina
14:00
10:12
−27%
NPS de delivery
43
62
+19 pts
Stock-outs por semana
~38
~6
−84%
Cierre mensual de finanzas
9 días
4 horas
~50× más rápido
Food cost
31.2%
28.1%
−3.1 pp
Uptime del pipeline
87%
99.97%
+12.9 pp
Alerta → acción del gerente
4–6 h
14 min
−96%
Adopción de gerentes (DAU)
31%
96%
+65 pp

«El equipo entendió en una semana lo que a otros consultores les tomó tres meses. Y lo más importante: construyen software que mis gerentes de local sí abren todos los días — no dashboards bonitos para directorio que nadie usa.»

M
Mariano R. COO · Dodo Pizza LATAM
Inversión total USD 380k // implementación + 6 meses operación
Ahorro anualizado USD 760k // food cost + ops + cierre
Payback 6.2 meses // validado por CFO
ROI a 24 meses 3.9× // proyección conservadora
// 06 · Lecciones

Lo que aprendimos — y aplicamos en el siguiente caso.

L1

El gerente de local es el usuario, no el COO.

Construimos primero para el directorio porque era el cliente que firmaba. Mal. La adopción real subió cuando rediseñamos la tablet de cocina al fondo. Ahora empezamos siempre por el usuario en la operación, no por el que aprueba el contrato.

L2

Latencia < 200 ms es el umbral psicológico.

Por debajo de 200 ms el usuario percibe el sistema como «en vivo». Por encima, como «reportes». Y el comportamiento cambia: deja de mirarlo. Es la diferencia entre una tablet de cocina y un dashboard de Tableau.

L3

Open-source es portabilidad, no ahorro.

El TCO de Kafka self-hosted es similar a Kinesis a 12 meses. La razón para elegirlo es que Dodo controla su destino — no que ahorra dinero el primer año. Empezamos a vender así, no como «más barato».

// 07 · Siguientes pasos

¿Te suena familiar? Hablemos.

No vendemos software de plantilla. Empezamos siempre con una auditoría gratis de 4 semanas: nos sentamos con tu equipo, mapeamos sistemas y dolores, y entregamos un PDF con 3–5 quick wins concretas.