El dataset
Los datos de entrada son los históricos de ventas de un catálogo de retail farma: 847 SKUs activos, frecuencia semanal, desde enero 2022 hasta marzo 2026 — aproximadamente 220 semanas de historia por SKU en promedio.
El formato mínimo que M8 necesita: tres columnas. Nada más.
# Estructura de entrada — ejemplo sku_id fecha unidades SKU-00142 2024-01-07 48 SKU-00142 2024-01-14 52 SKU-00142 2024-01-21 0 SKU-00891 2024-01-07 312 ... # 847 SKUs × ~220 semanas = ~186,340 filas
La configuración del pipeline usa los defaults del ForecastConfig:
ventana de backtesting de 12 semanas, horizonte de forecast de 13 semanas,
métrica de selección MAPE. Sin tocar nada más.
Paso 1: Segmentación
El SegmentationEngine aplica el árbol de decisión M8 sobre cada SKU.
En datos de frecuencia semanal, el umbral de "historia suficiente" es 24 semanas.
El umbral de "descontinuado" es 3 semanas consecutivas en cero.
Segmentación completada — 847 SKUs procesados en 4.2s Segmento SKUs % ───────────────────────────────── [A] Mature-Season 218 25.7% ← el modelo equivocado cuesta más aquí [B] Mature-Trend 134 15.8% [C] Mature-T+S 97 11.5% [D] Mature-Stable 189 22.3% [E] Intermittent 142 16.8% ← 1 de cada 6 SKUs — ¿tu sistema los trata distinto? [F] New Launch 31 3.7% [G] Discontinued 22 2.6% [H] No Match 14 1.7% ───────────────────────────────── Total 847 100.0%
Paso 2: Backtesting y selección de modelo
El BacktestEngine entrena los modelos candidatos de cada segmento
sobre 5 ventanas de historia de 12 semanas cada una, evalúa sobre las 12 semanas
siguientes, y promedia el MAPE. El ganador por SKU es el modelo con menor MAPE promedio.
BacktestEngine — 847 SKUs × candidatos × 5 ventanas Tiempo total: 54.3s ─── Segmento A (Mature-Seasonal) ─────────────────── TBATS : 89 SKUs (40.8%) MAPE promedio: 11.2% TES : 74 SKUs (33.9%) MAPE promedio: 12.1% sARIMA : 41 SKUs (18.8%) MAPE promedio: 13.7% SeasonalNaive : 14 SKUs ( 6.4%) MAPE promedio: 15.3% ─── Segmento E (Intermittent) ─────────────────────── Croston : 118 SKUs (83.1%) MAPE promedio: 31.4% ← alto por diseño SES : 24 SKUs (16.9%) MAPE promedio: 38.9% ─── Segmento D (Mature-Stable) ────────────────────── Theta : 82 SKUs (43.4%) MAPE promedio: 8.7% SES : 64 SKUs (33.9%) MAPE promedio: 9.3% MovingAverage : 43 SKUs (22.8%) MAPE promedio: 10.1% ─── [22 Discontinued y 14 No Match excluidos] ───────
Nota sobre los intermitentes: el MAPE del 31% parece alto en términos absolutos. Pero ese es el mínimo alcanzable para ese tipo de serie — Croston es el modelo diseñado para minimizar el error en demanda errática. Cualquier otro modelo daría un MAPE significativamente mayor y un sesgo sistemático al alza.
Paso 3: Forecast
Con los modelos ganadores asignados, el ForecastPipeline genera
el forecast de las próximas 13 semanas para cada SKU activo (811 SKUs,
excluyendo los 36 descontinuados o No Match).
Métricas de accuracy detalladas por segmento:
| Segmento | SKUs | MAPE | Forecast Accuracy | Modelo dominante |
|---|---|---|---|---|
| [A] Mature-Season | 218 | 11.2% | 88.8% | TBATS (40.8%) |
| [B] Mature-Trend | 134 | 9.8% | 90.2% | AutoARIMA (52%) |
| [C] Mature-T+S | 97 | 10.7% | 89.3% | ETS (44%) |
| [D] Mature-Stable | 189 | 8.7% | 91.3% | Theta (43.4%) |
| [E] Intermittent | 142 | 31.4% | 68.6% | Croston (83.1%) |
| [F] New Launch | 31 | — | — | Reglas de negocio |
Lo que cambia con M8
Antes de segmentar, el catálogo de este cliente usaba un modelo estacional configurado globalmente. Con ese modelo:
- Los 142 SKUs intermitentes tenían MAPE ~65% con sesgo positivo
- El equipo sobreescribía manualmente más del 55% del catálogo
- Los 22 SKUs descontinuados seguían generando órdenes de compra
Después de implementar M8, los overrides manuales bajaron al 18% — mayormente concentrados en los New Launch y algunos No Match donde la intervención humana tiene sentido real.
El número de SKUs sobre-forecasteados de forma sistemática pasó de ~600 a ~142 (solo los intermitentes, que por definición de la demanda tienen varianza alta).
El resultado en inventario: reducción del 12% en el stock promedio de los SKUs intermitentes en los dos primeros meses post-implementación.
Cómo corremos M8 sobre tus datos. Gratis.
Mandas el CSV de ventas. En 48 horas tienes el mismo reporte que ves aquí — con tu catálogo, tus segmentos, tus modelos ganadores.
Quiero ver mi catálogo →