Skip to content
Welzin
Case study · Demand forecasting

Forecasts that don't stop at a dashboard - they order the stock.

A national retailer was forecasting in spreadsheets and paying for it twice: stockouts on the fast movers, working capital buried in the slow ones. Welzin built a demand-forecasting system and wired it straight into replenishment, so the prediction becomes the purchase order.

RoleDiscovery → design → build → run
Timeline12 weeks to first stores live
StackHierarchical ML forecasting, feature store, MLOps
01 / The challenge

An empty shelf and an overstuffed warehouse are the same mistake.

Buying decisions for hundreds of stores ran on last month's sales, gut feel, and a spreadsheet that broke every promotion week. The fast movers sold out by Friday while slow movers sat on the balance sheet for months. Nobody could say, SKU by SKU and store by store, what next week actually looked like.

01

Chronic stockouts

Best sellers went dark for days at a time. Every empty facing was a sale handed to the store across the road.

lost sales
02

Capital on the shelf

Over-ordering the slow movers buried cash in inventory and ended in markdowns nobody had budgeted for.

frozen cash
03

Promotions broke everything

A festival week or a price cut made history useless. The spreadsheet had one answer for every week: last month, again.

04

One forecast for everyone

A metro flagship and a small-town store got the same buying logic, though their demand had nothing in common.

02 / What we built

A forecast for every SKU, every store, every day.

Six pieces work together: clean features in, calibrated probabilistic forecasts out, and a replenishment integration that turns the numbers into orders - with the monitoring to keep it honest month after month.

[ 01 ]

A feature store, not a spreadsheet

Sales history, promotions, price changes, holidays, weather, and store attributes land in one governed feature store - computed once, reused by every model.

[ 02 ]

Hierarchical forecasting

Gradient-boosted models forecast at SKU x store, then reconcile up through category, region, and network so the numbers agree at every level of the business.

[ 03 ]

Uncertainty you can order against

Every forecast ships as quantiles, not a single point - so safety stock reflects real demand risk instead of a blanket buffer.

[ 04 ]

Straight into replenishment

Forecasts flow into the ERP's replenishment run as suggested orders. No export, no re-keying - the prediction becomes the purchase order.

[ 05 ]

An exception workbench

Planners review only the forecasts that need judgment - new SKUs, big swings, low confidence - each with the drivers behind the number, not a black box.

[ 06 ]

Backtests, drift watch, retraining

Rolling backtests gate every model release, and drift monitoring triggers retraining before accuracy decays - the same rigor we apply to any system we run.

03 / How it runs

A nightly run and a weekly loop, both boringly reliable.

The system does its work while the stores sleep. By the time buyers sit down with their coffee, the orders are drafted, the exceptions are queued, and yesterday's accuracy is already on the scoreboard.

Every night

From yesterday's sales to today's suggested orders.

  1. IngestPull the day's sales, stock positions, and promo calendar from source systems.
  2. ScoreRefresh features and generate forecasts for every SKU-store pair in the network.
  3. ReconcileAlign the forecasts up the hierarchy so store, region, and network totals agree.
  4. Draft ordersConvert forecasts plus lead times and safety stock into suggested replenishment.
  5. Flag exceptionsRoute low-confidence and high-impact lines to the planner workbench.

Every week

Keeping the model honest as the business moves.

  1. MeasureScore last week's forecasts against actuals, by category and by store.
  2. Watch for driftCompare live accuracy and feature distributions against the backtest baseline.
  3. Retrain when it paysRefresh models when drift or new patterns justify it - not on a superstition schedule.
  4. Review togetherWalk the metric with the planning team: what moved, why, and what to tune next.
04 / Integrations

Built on the systems the retailer already runs.

No rip-and-replace. The forecasting system reads from the existing data estate and writes into the existing buying workflow, so adoption was a login, not a migration.

Data sources

POS sales ERP inventory Promo calendar Weather

Warehouse & pipelines

Snowflake dbt Airflow

Modeling

LightGBM Quantile forecasts Hierarchical reconciliation

Downstream

ERP replenishment Planner workbench

MLOps

Backtesting CI Drift monitoring Model registry
05 / The impact

Fuller shelves, lighter balance sheet.

The metric we signed up for was availability without inventory bloat - and both moved. Figures below reflect observed outcomes in production and are directional, not guarantees.

0%
fewer stockout days on the top-selling SKUs.
0%
less working capital tied up in inventory at the same service level.
0+
stores scored every night, each with its own forecast.
0hrs
from data close to drafted orders, down from a weekly planning cycle.
The buyers stopped arguing about whose number was right and started arguing about what to do with it. That's when we knew the forecast had become the system.
- Head of planning, national retailer (client confidential)

Want an outcome like this one?

Talk to the senior pod that shipped it - we answer within one business day.

Talk to us

Prefer email? Write to us directly.