Let’s talk
← All case files

Case / 2025.04 · Retail

Aisle 19

Hierarchical demand forecasting, long-tail SKUs

A forecast that respects the shape of the catalog — fast-movers learn from themselves, the long tail borrows strength from its category and region.

/Retail-Group/ · Shipped

−18% inventory holding · forecast variance halved on long-tail SKUs.

Retail worker carrying stacked boxes past a clothing rail

/ 01 · Stakes

What was on the line.

A 1,200-store multi-format retailer was carrying about 25% more stock than it needed because the legacy forecast couldn’t tell pasta from imported truffle salt. Top sellers were predicted well; everything in the long tail got rounded up to safety stock.

The CFO saw the inventory line; merchandising saw stockouts on the same SKUs the warehouse was overstocked on. Category managers had stopped trusting the system and were overriding orders by gut feel.

/ 02 · Approach

How we built it, in five moves.

  1. 01

    Hierarchical fit at SKU × store × season

    The forecast learns at three grains at once. Sparse long-tail SKUs shrink toward their category × region group, with shrinkage strength learned per group.

  2. 02

    Causal signal layer with lag alignment

    Weather, macro, promo calendar and regional events feed in with lags searched per category — a hot weekend lifts beer the same day and ice cream three days later.

  3. 03

    Reconciliation for coherence

    A MinT-style reconciliation step makes store totals add up to chain totals, so one number rolls up cleanly from a single jar of olives to the Q3 plan.

  4. 04

    Per-SKU drift, targeted retraining

    A per-SKU drift score flags only the SKUs that changed; they retrain in hours without touching hierarchy weights.

  5. 05

    Constraints at the recommendation seam

    Order cutoffs, MOQs, case packs and shelf life live in a separate recommendation layer, so a new supplier rule never poisons the model fit.

/ 03 · Challenges

What got in the way, and how we resolved it.

Challenge · 01

Long-tail SKUs had so little signal the legacy model defaulted to safety stock for years.

Resolution

Hierarchical shrinkage — the long tail borrows strength from its category × region group instead of being rounded up.

Challenge · 02

Category managers didn’t trust the model and routinely overrode it.

Resolution

A what-if dashboard exposing each signal’s contribution per SKU. Trust came from visibility; adoption hit 90% inside six months.

Challenge · 03

Drift was constant, and full retrains lagged it by weeks.

Resolution

Online per-SKU drift detection triggers targeted retraining; full-hierarchy refits stay on a quiet monthly cadence.

/ 04 · Outcomes

What changed, in numbers.

−18%
Inventory holding
50%
Long-tail variance cut
90%
Category-manager adoption
1,200
Stores live

/ 05 · Evidence

Live across 1,200 stores on one banner with two more in pilot. Per-SKU drift retraining runs continuously; full-hierarchy refit monthly.
Next case file · Platform · DevOpsNeed to Know — ABAC-gated RAG for an internal knowledge fabricOpen file