El reto
Los responsables de categoría compraban stock como cabría esperar de un retailer de ritmo rápido: a ojo, anclados a las ventas del año anterior ajustadas en “más o menos” — normalmente más. El resultado era un problema de capital circulante a plena vista. Más de 30 M€ inmovilizados en inventario en cualquier momento, de los cuales aproximadamente un tercio no iba a vender a margen pleno.
El CFO quería forecasting. Los responsables de categoría se resistían — habían usado una herramienta de forecasting del ERP anterior que había fallado lo suficiente, suficientes veces, como para que el equipo dejara de confiar en cualquier modelo. La nueva iniciativa tenía que superar ese listón.
Lo que encontramos en la primera semana:
- Los datos existían (3 años de ventas diarias, inversión en marketing, devoluciones, clima, efectos de calendario), pero nadie los había unido limpiamente.
- La “precisión del forecast” no se medía. Nadie podía decir si la herramienta anterior era realmente tan mala como la gente recordaba, o si el listón a superar era alcanzable.
Nuestro enfoque
No prometimos un modelo. Prometimos una comparación honesta.
Semana 1 — Definir el listón. Con el CFO y dos responsables de categoría elegimos 20 SKUs representativos cubriendo la cola larga y los bestsellers. Acordamos la métrica (MAPE ponderado por margen) y la ventana de holdout (los últimos 12 meses). Las predicciones de la herramienta anterior eran recuperables — las usamos como benchmark. La respuesta honesta: era tan mala como la gente recordaba en la cola larga y sorprendentemente decente en bestsellers.
Semana 2–3 — Baseline. Dos modelos simples — media móvil y suavizado exponencial con features de calendario. Vencieron a la herramienta anterior por un 18% en la cola larga. Lo enseñamos a los responsables de categoría antes de mencionar machine learning. El punto era que la victoria venía de unir bien los datos, no de un modelo más sofisticado.
Semana 4–5 — Modelo real. Un forecaster con gradient boosting por categoría, con backtesting contra el holdout acordado. Mejoró los baselines simples otro ~12%. Lo desplegamos como recomendador, no autopilot — cada pedido pasaba por un responsable de categoría con la sugerencia del modelo, su nivel de confianza y la precisión histórica en SKUs similares.
Semana 6 — Ensayo de Black Friday. Re-ejecutamos el modelo contra una semana de Black Friday sintética y mostramos para qué SKUs el modelo se equivocaba y por cuánto. Los responsables de categoría los ajustaron manualmente antes del evento real.
El resultado
Ese primer Black Friday, el retailer fue el único de su cohort que no se quedó sin stock en tres de sus SKUs del decil top. Las rupturas de stock en top SKUs bajaron un 22% frente al año anterior. El margen bruto del decil top subió un 18%, en parte porque no tuvieron que liquidar stock residual en enero.
Los responsables de categoría — la gente escéptica en la semana uno — se convirtieron en los mayores defensores. La razón era simple: el sistema les decía dónde estaba inseguro. Un modelo que admite “tengo baja confianza en este SKU porque los datos son escasos” es un modelo que la gente usa. Un modelo que siempre suena seguro es uno que ignoran.
El objetivo de capital circulante del CFO para el año se cumplió un trimestre antes.