Skip to content

Case 3 · Inventory & demand

Data used on this page

Online Retail II - real public data · Stock, replenishment and delivery simulation - synthetic. Details on the data sources page. With synthetic data the findings illustrate the method; they are not claims about a real organisation.

Context

An online gift retailer sells mostly to small shops; demand peaks before Christmas. The planning team forecasts each SKU with an 8-week moving average, reviews stock every Monday and orders up to 5 weeks of forecast from suppliers with a 10-17 day lead time. The case follows the 40 best-selling SKUs plus 8 SKUs whose demand faded.

Question

Is our stock serving customers without tying up capital - and what breaks the balance?

KPIs · Dec 2010 - Dec 2011

Service (fill rate, OTIF, stockouts) and capital (cover, turnover, obsolescence) pull in opposite directions; forecast accuracy and bias sit upstream of both.

Finding

Show the data behind this chart
outcome share of orders
On time, in full 74%
Short only 11%
Late only 10%
Short and late 4%

Fill rate counts units; OTIF counts orders. With 2.8 lines per order, one short line fails the whole order - that is why the two KPIs can tell such different stories.

Show the data behind this chart
size rows mape units row_share unit_share
1-9 units 62 49.916 238.0 0.034 0.000
10-49 units 118 11.229 3300.0 0.064 0.004
50-199 units 515 1.655 65401.0 0.279 0.077
200+ units 1152 0.481 779740.0 0.624 0.919

MAPE gives every SKU-week the same vote, so small weeks - where missing by 5 units is a 100% error - dominate it. WAPE weights errors by units, which is what stock and service feel.

A single fleet-level days-of-cover number nets these two tails against each other - that is why the catalog defines it with a band and why the distribution is the recommended chart.

Decision

  1. Forecast the season, not the last 8 weeks. For seasonal SKUs use last year's same weeks × trend (or a seasonal model) from September; keep the moving average only for flat SKUs. Track bias monthly - it is the error you can fix.
  2. Pre-build stock before the peak for A-class seasonal SKUs, sized with the seasonal forecast and the 10-17 day lead time, instead of reacting to stockouts in November.
  3. Clear the 9 SKUs without sales for 180+ days (markdown, bundle or return) and add a stop-ordering rule when a SKU's demand drops for 8 weeks.
  4. Split OTIF failures by owner - short lines belong to planning (stock), late deliveries to logistics and the carrier. Today the largest group is 'short only', so the first conversation is with planning.
  5. Report WAPE and bias as the headline accuracy KPIs, MAPE only for the long tail.

How we keep measuring

KPI Owner Cadence Target Trigger for action
Forecast bias Demand Planner Monthly, per SKU class (leading) -5.0% to 5.0% Outside ±10% for a class
Days of cover Supply Planner Weekly, per SKU 14.0 days to 35.0 days Below 7 days on an A SKU - expedite
On time in full (OTIF) Logistics Manager Weekly, split into short / late ≥ 90.0% Below 80% for 2 weeks
Stockout rate (SKU-days) Supply Planner Weekly ≤ 3.0% Above 6% in season
Obsolete stock share Inventory Controller Monthly ≤ 5.0% Above 10% of stock value
Forecast error (WAPE) Demand Planner Monthly ≤ 30.0% Above 45%