[ RETAIL & FMCG ]

Demand Forecasting and Inventory Optimiser

Procurement teams across thousands of SKUs cannot forecast each one by gut. Single-model approaches break on the long tail. We built a hierarchical forecasting system that picks the best model per SKU-store combination automatically, runs 12-month rolling forecasts on a scheduled pipeline, and surfaces exception alerts to buyers when reality diverges from the procurement plan.

Demand Forecasting and Inventory Optimiser

Client

A regional FMCG retail group

Timeline

Multi-month delivery

Role

Hierarchical demand forecasting

Team

Pod: ML + data engineering

Year

2024

Industry

Retail and FMCG

01

The Challenge

Demand patterns vary wildly across thousands of SKUs. Seasonal products, promotional spikes, new launches, and regional variation defeat a single forecasting approach.

Procurement decisions are made weeks in advance with limited visibility. The result is persistent stockouts on top movers and overstocking on slow sellers.

02

The Solution

Built a hierarchical forecasting system with a LightGBM and Prophet ensemble. Each SKU-store combination trains independently and the framework picks the better-performing model on rolling backtests.

Orchestrated 12-month rolling forecasts via Apache Airflow into Snowflake, with a Tableau exception dashboard that surfaces the SKUs where actual demand has diverged enough from the procurement plan to warrant attention.

[ Impact ]

Per-SKU

Model selection across the catalogue

12 months

Forward forecast horizon

Exception-driven

Buyers alerted only on divergence

Hierarchical

Roll-up by store, region, and category

[ Outcomes ]

01

A working monthly procurement cycle grounded in forecast outputs, not gut feel.

02

A defensible, auditable forecast for every SKU in the range, with model selection rationale traceable per item.

03

An exception-driven workflow that focuses buyer attention on the SKUs that need it.

[ Tech Stack ]

Python LightGBM Facebook Prophet Apache Airflow Snowflake Tableau

Ready for your story?

Let's build what's next.

Start a Project