Caso de estudio  ·  IBP + Machine Learning

Supply Chain Analytics &
Transformación IBP

Pipeline completo de Integrated Business Planning: demand planning con XGBoost v3 + Croston, supply review, product review y reconciliación financiera — todo en Power BI con 7 páginas interactivas.

82.5%
FACC XGBoost v3
$266.8M
MXN impacto identificado
+10.5 pp
vs FC S&OP proceso
7
páginas IBP
El problema

Tres áreas. Tres versiones de la realidad. Una sola reunión.

Así comenzaba cada ciclo de S&OP. El equipo comercial traía su forecast. Supply chain traía el suyo. Finanzas llegaba con el número del presupuesto. Nadie mentía. Todos medían cosas distintas.

Comercial medía
Volumen
Supply medía
Cobertura
Finanzas medía
Presupuesto

El resultado era predecible: decisiones tomadas por consenso político, no por evidencia. Un gap de $123M MXN vs Budget que nadie sabía explicar. 65 SKUs críticos en riesgo de quiebre con $65M MXN en venta perdida proyectada. Y un proceso de S&OP que existía en el calendario pero no gobernaba las decisiones reales del negocio.

El diagnóstico fue claro desde el primer ciclo: el problema no era la gente ni el sistema. Era que no había un número único, confiable y compartido desde el cual tomar decisiones integradas.

El objetivo

No más reportes. Un proceso que convierte datos en decisiones.

Construir un proceso IBP end-to-end que conectara la señal del mercado con la decisión del negocio — desde el Demand Review hasta el Executive S&OP — con un dashboard en Power BI que hiciera visible ese proceso para cada área y para la dirección. No implementar una herramienta. No generar más reportes. Construir el proceso que convierte el dato en acción con responsable y fecha.

Cómo usar esta información en tu proceso

Cada reunión del ciclo IBP tiene un objetivo distinto.

El valor de un proceso IBP no está en el modelo de forecast. Está en lo que el proceso hace con ese modelo en cada reunión del ciclo.

Demand Review

Usa el FACC y el BIAS por canal para identificar dónde el proceso tiene sesgo sistemático. Un error aleatorio es manejable. Un sesgo consistente hacia arriba o abajo se acumula en el inventario. El objetivo no es aprobar el número — es cuestionarlo.

Supply Review

No esperes el quiebre para actuar. El semáforo de inventario por SKU está diseñado para que la acción llegue antes de que el problema sea visible en el fill rate. Cuando el semáforo llega en rojo al Supply Review, la ventana de acción ya se cerró.

Product Review

Conecta el pipeline comercial con el plan de abasto antes de que las oportunidades se cierren. $39.8M MXN en oportunidades activas sin abasto asegurado no es un problema de ventas — es un problema de integración entre áreas.

Financial Reconciliation

Convierte el volumen pronosticado en impacto sobre el P&L antes del Executive S&OP. Cuando el CFO y el director de supply chain hablan sobre el mismo número en pesos, la calidad de la decisión cambia completamente.

Executive S&OP

Reserva este foro para los trade-offs que ningún área puede resolver sola: cuándo sacrificar margen por nivel de servicio, cómo priorizar cuando la capacidad no alcanza, cuándo el plan operativo le dice al financiero que hay que ajustar. Si el Executive S&OP aprueba sin debate real, no es un foro ejecutivo — es una reunión de validación.

Dashboard en acción

Vistas del proyecto

Executive overview, reconciliación financiera y supply review — las páginas más relevantes para la toma de decisiones ejecutivas.

Diagnóstico

Hallazgos de Analytics

Brechas identificadas en el proceso de planeación — cada hallazgo tiene un impacto directo en la toma de decisiones del negocio.

Área Hallazgo Impacto en el negocio
Pronóstico Propiedad del forecast fragmentada entre comercial, supply y finanzas sin consenso formal Menor confiabilidad de la planeación — BIAS comercial de -19.4%
Inventario Visibilidad limitada del stock proyectado y días de cobertura por SKU Riesgo de exceso de inventario y quiebre simultáneos — $65M MXN en venta perdida
KPIs Métricas distintas por función — comercial mide volumen, supply mide cobertura, finanzas mide presupuesto Decisiones desalineadas entre áreas — gap de $123M MXN vs Budget
Supply Chain Planeación reactiva sin visibilidad de stock proyectado futuro ni alertas tempranas Riesgo de servicio — 65 SKUs críticos y 68K unidades en backorder
Producto / CRM Pipeline comercial no integrado al plan de demanda ni al abasto $39.8M MXN en oportunidades sin abasto asegurado para cerrarse
Modelo estadístico Forecast estadístico con FACC de 58.5% — peor desempeño de los 6 métodos evaluados 24 pp de brecha vs el modelo ML — subutilización de datos históricos disponibles
Estructura del dashboard

7 páginas IBP integradas

Cada página cubre un proceso del ciclo IBP — desde la revisión de demanda hasta las decisiones ejecutivas con impacto financiero.

01 — Executive

Executive IBP Dashboard

KPIs consolidados, semáforo de riesgo supply, tendencia de demanda y reconciliación financiera en una sola vista ejecutiva.

02 — Demand

Demand Review

FACC por representante con color condicional verde/ámbar/rojo, error absoluto por SKU y BIAS por canal.

03 — Supply

Supply Review

Semáforo de inventario por SKU, scatter stock proyectado vs días cobertura y top backorders por producto.

04 — Product

Product Review

Pipeline CRM con scoring de prioridad, funnel por estado y decisiones GO / HOLD / KILL / REACTIVAR automáticas.

05 — Decisiones

Decisiones IBP

Tabla P1/P2 con responsable sugerido, fecha objetivo, gap FC ML vs SOP y acción demand + supply integrada.

06 + 07 — Finance + ML

Financial + Model Benchmark

Impacto en MXN por vector con narrativa ejecutiva y comparativo de 6 métodos de forecast con valor económico del modelo.

Evidencia cuantitativa

XGBoost v3 supera todos los métodos del negocio

Benchmark sobre el mismo período histórico — validación real con backtesting, no simulación. Meta IBP: 75%.

FC Estadístico
58.5%
Budget
60.7%
FC Comercial
64.3%
FC S&OP proceso
72.0%
Naive S&OP
77.8%
XGBoost v3
82.5%
línea vertical = meta IBP 75%  ·  XGBoost supera meta en +7.5 pp  ·  BIAS +1.6% sin sesgo sistemático
Impacto financiero

$266.8M MXN identificados en 4 vectores

La reconciliación financiera cuantifica cada vector de riesgo y oportunidad con impacto directo en el P&L del negocio.

Oportunidad perdida por quiebre de inventario
$65.0M
Gap FC Comercial vs Budget
$123.3M
Pipeline CRM activo ponderado
$39.8M
Capital a inmovilizar — sobreforecast SOP
$37.4M
Ingreso comprometido — backorder activo
$1.3M
Costo financiero sobreinventario/mes
$22K
Impacto total identificado $266.8M MXN
Stack tecnológico

Pipeline end-to-end en Python y Power BI

Desde la extracción de datos hasta el dashboard ejecutivo — sin dependencias de software propietario adicional.

Capa 01 · Datos

Python + Pandas

Carga, limpieza y transformación desde Excel/SAP. Validaciones automáticas y pipeline reproducible con parquet.

Capa 02 · Modelo

XGBoost v3 + Croston

XGBoost para SKUs de demanda regular. Croston para categorías intermitentes. Backtesting real sobre 2021–2022.

Capa 03 · Supply

Semáforo de inventario

Clasificación automática: Quiebre / Bajo SS / Riesgo / Normal / Sobreinventario. Stock proyectado con arribbos y BO.

Capa 04 · Producto

CRM Scoring ML

Score de prioridad ponderado: valor esperado 40%, margen 25%, probabilidad 20%, volumen 15%. Decisión GO/HOLD/KILL automática.

Capa 05 · Finanzas

Financial Reconciliation

Cuantificación de 6 vectores de impacto en MXN con narrativa ejecutiva automática para el foro IBP.

Capa 06 · Visualización

Power BI — 7 páginas

Export directo desde Python a CSV/Excel. Medidas DAX, color condicional, semáforos y narrativa integrada.

Capacidades demostradas

Técnicas y análisis aplicados en este proyecto

Cada capacidad está implementada y validada con datos reales — no son ejercicios teóricos.

Mejora en precisión de pronóstico

Benchmark de 6 métodos (estadístico, comercial, S&OP, Budget, Naive, ML). XGBoost v3 alcanza FACC 82.5% — +10.5 pp sobre el proceso S&OP del negocio.

Segmentación de inventario

Clasificación ABC por valor de venta (A=80%, B=95%, C=resto) combinada con semáforo de cobertura: Quiebre / Bajo SS / Riesgo / Normal / Sobreinventario.

Optimización de stock de seguridad

Cálculo de SS por SKU considerando lead time, tipo de fuente (local vs importado) y demanda futura proyectada. Stock proyectado = stock + producción + arribos − demanda − BO.

Pronóstico de demanda con Python

Pipeline end-to-end con XGBoost v3 (demanda regular) y Croston (demanda intermitente). Feature engineering con lags, medias móviles e índice estacional por SKU.

Análisis ABC-XYZ

Segmentación de SKUs por valor (ABC) cruzada con variabilidad de demanda. Priorización automática P1/P2/P3 para el foro de decisiones IBP con responsable sugerido.

Dashboard de salud de inventario

Power BI con scatter Stock Proyectado vs Días Cobertura, donut de semáforo por SKU, backorders por producto y tabla ejecutiva con acción sugerida por SKU.

Monitoreo de riesgo en supply chain

Identificación automática de SKUs en quiebre, bajo SS y riesgo de abasto. Cuantificación de $65M MXN en venta perdida por quiebre + $1.3M en backorders activos. Acción sugerida por SKU con lead time y tipo de fuente (PT Local / PT Importado).

Plan de trabajo

Hoja de ruta de Analytics recomendada

Cuatro fases progresivas — de la visibilidad básica a la planeación habilitada por IA. Cada fase construye sobre la anterior.

Fase 01

Fundamentos y Gobierno

Gobierno de KPIs — definición única por área
Precisión de pronóstico (FACC / WAPE / BIAS)
Visibilidad de inventario por SKU y canal
Fase 02

Dashboards y Automatización

Dashboards ejecutivos IBP en Power BI
Reporteo automatizado desde Python
Gestión por excepción — semáforos y alertas
Fase 03

Analytics Avanzado

Analytics predictivo — XGBoost + Croston
Optimización de inventario y SS dinámico
Monitoreo de riesgo en supply chain
Fase 04

Planeación con IA

Planeación habilitada por IA
Modelado de escenarios y sensibilidades
Inteligencia de decisión en el foro IBP
Valor generado

Impacto en el negocio

"Una evaluación de Analytics de Supply Chain diseñada para identificar brechas en planeación, pronóstico, inventario y toma de decisiones — y crear una hoja de ruta hacia capacidades de planeación basadas en datos e impulsadas por IA."

Mejora en precisión de pronóstico

Oportunidad de reducción de inventario

Oportunidad de capital de trabajo

Mejora en nivel de servicio

Reducción en tiempo de decisión

Código fuente

Fragmento: XGBoost v3 — Feature Engineering

El modelo usa 15 features de series de tiempo construidos desde el histórico. Entrenado en 2021, validado en 2022 con backtesting real.

IBP_Project_v3_final.ipynb  ·  Módulo 5 Python
# ── FEATURE ENGINEERING — series de tiempo por SKU ───────────────────
def build_features_v3(df):
    df = df.sort_values(["SKU", "Anio", "Mes"]).copy()

    # Lags de corto plazo — lag_1m = 25.8% importancia (feature más relevante)
    df["lag_1m"] = df.groupby("SKU")["Venta_Real"].shift(1)
    df["lag_2m"] = df.groupby("SKU")["Venta_Real"].shift(2)
    df["lag_3m"] = df.groupby("SKU")["Venta_Real"].shift(3)

    # Medias móviles — capturan tendencia y estacionalidad
    for w in [3, 6, 12]:
        df[f"ma_{w}"] = (df.groupby("SKU")["Venta_Real"]
                         .transform(lambda x: x.shift(1).rolling(w, min_periods=1).mean()))

    # Índice estacional y features cíclicos de mes
    total_anual = df.groupby(["SKU", "Anio"])["Venta_Real"].transform("sum")
    df["indice_estacional"] = df["Venta_Real"] / (total_anual / 12).clip(lower=0.01)
    df["mes_sin"] = np.sin(2 * np.pi * df["Mes"] / 12)
    df["mes_cos"] = np.cos(2 * np.pi * df["Mes"] / 12)
    df["sku_enc"] = df["SKU"].astype("category").cat.codes
    return df

# ── ENTRENAMIENTO XGBOOST v3 ──────────────────────────────────────────
model_v3 = XGBRegressor(
    n_estimators=400,  learning_rate=0.04,  max_depth=4,
    subsample=0.8,    colsample_bytree=0.75, random_state=42
)
model_v3.fit(X_train, y_train, eval_set=[(X_test, y_test)], verbose=False)

# ── MÉTRICAS BACKTESTING 2022 ─────────────────────────────────────────
preds = np.maximum(model_v3.predict(X_test), 0)
wape  = np.abs(preds - y_test).sum() / y_test.sum() * 100
facc  = 100 - wape
# → FACC: 82.5%  |  WAPE: 17.5%  |  BIAS: +1.6%

¿Tienes un reto de Supply Chain o IBP?

Este caso representa mi forma de trabajar — análisis riguroso, código real y resultados medibles. Si buscas ese perfil para tu equipo o proyecto, conectemos.

15+ años en Supply Chain · IBP certificada Oliver Wight · APICS CSCP