← Back to DunwellSample study built from a public grocery dataset. Not a Dunwell client.
Insights
Dunwell Insights · Stock & Demand Planner · Sample

Recorded sales against estimated demand, all 50,000 store-product pairs, by day
Recorded salesEstimated demand lost to empty shelves
1 · Empty shelves

Share of products out of stock, by hour of the day
History, 28 March to 25 June 2024. Darker means emptier. Categories are numbered by the publisher; their names are not given.
Shelves empty as the day goes on
Share of products out of stockShare of the day's sales in that hour
Why a product sold nothing
Days with zero recorded sales, history
2 · Hidden demand

How well each method rebuilt hours we hid
Error as a share of the hidden sales. Scored on stores the model never saw. Lower is better.
Real stockout patternsEnd-of-day runs
Demand lost to empty shelves, by category
Estimated lost demand as a share of estimated demand, history

3 · Forecasting the next seven days

Forecast error each week
Total absolute error as a share of recorded sales, every pair and day. Four back-test weeks, then the test week, which was opened once after every choice was frozen. Lower is better.
Every forecast on the test week
Error by how far ahead
Test week, days 1 to 7 after the cutoff
What the model leans on
Share of the model's total gain from each input, test-week model trained on recorded sales
Where the model helps most
Test-week error by sales level and by how often the pair ran out in the four weeks before

4 · How much to stock

Cost per 100 units of demand, in relative units. Shortage costs twice what waste costs, stock keeps two days. A week of daily deliveries, every pair.
ShortageWaste
Every scenario on the test week
Cost per 100 units of demand: tuned model plan against the tuned simple rule. The change is the model plan's cost minus the rule's.

5 · Next steps

Plan from the range, fix the evening gaps, and measure real costs

    6 · How we did this

    The plan was written down before any forecast was scored

    The methods
    Checks we ran

      Data dictionary

      Decisions log

      What this data can't tell us

      • Sales are normalised by an unpublished factor. They are not units, kilos or money, so no figure here is in pounds.
      • Demand during an empty hour is never seen. Our estimates were tested by hiding hours on in-stock days, which are quieter than the days shelves really ran out. The real loss could be higher or lower.
      • The out-of-stock flag shows when a product was unavailable. It is not a stock count, so we can't see how much was on the shelf or delivered.
      • The stock scenarios use assumed costs, a daily delivery, an empty shelf at the start of the week and a fixed shelf life. Real lead times, minimum orders and pack sizes would change the numbers.
      • The demand in the scenarios includes our estimates for empty hours. We checked the result on pairs that never ran out in the test week, but those are not typical pairs.
      • The data covers 14 weeks of fresh grocery in China in spring and summer 2024. It says nothing about yearly patterns, and anything about fashion or long-life products needs its own evidence.

      This analysis is based on the data described here and the methods shown. It supports decisions. It is not a promise of any result, and it is not financial, legal or tax advice.

      Every job. Done well.