Supply Chain Control Tower

Supply Chain Control Tower

July 2026
supply chain optimization docker python

Overview

A reproducible end-to-end 'forecast-to-fulfillment' inventory decision system built using public historical sales data from the Walmart M5 dataset. The system replaces static heuristics with probabilistic demand forecasting and mathematical optimization (Mixed-Integer Linear Programming), evaluated under stochastic lead times through discrete-event Monte Carlo simulation.

Key Features

  • Probabilistic Demand Forecasting: Quantile regression with LightGBM generating demand distributions (p10, p50, p90, p95) rather than single-point estimates.
  • Optimization Engine: Mathematical formulation comparing heuristic (s,S) baselines against a multi-echelon Mixed-Integer Linear Program (MILP) solved using PuLP and the CBC solver.
  • Discrete-Event Simulation (SimPy): Validated across 200 replications over 150 SKU-store combinations with stochastic supplier lead times, stockout penalties, and holding costs.
  • Production MLOps Pipeline: Complete reproducible pipeline with MLflow experiment tracking, Evidently data drift monitoring, automated unit tests, and GitHub Actions CI/CD.

Architecture & Implementation

Historical transactions undergo feature engineering (lags, rolling statistics, calendar events). LightGBM predicts quantiles per SKU-store. The optimization layer consumes these quantiles along with cost matrices to generate daily purchase and transfer orders. The SimPy simulation runs parallel stochastic execution paths to measure service levels, stockouts, and total cost.

Results & Performance

The MILP policy achieved a 98.10% fill rate (fulfilling ~98 of every 100 requested customer units) and reduced simulated expected costs by 36.66% compared to baseline (s, S) policies. The quantile forecasting model achieved a 28.13% relative error reduction in p95 Pinball Loss (from 1.173 down to 0.843).

Tech Stack

Python 3.11 LightGBM PuLP / CBC SimPy FastAPI Streamlit MLflow Evidently Docker GitHub Actions