How much should a restaurant order? A worked example
11 min read
Take the last twelve months of units sold, average them, adjust the average for the direction demand is moving, adjust again for what that particular month of the year normally does, then add a buffer sized to how unpredictable the item is. Four steps. Below, all four are done by hand on a single ingredient — and the fourth turns out to be the one you cannot honestly do with only a year of data, which is worth knowing before you trust anybody who claims otherwise.
The ingredient is chicken breast, counted in portions, twelve months of history ending this August. Here is the whole dataset.
| Month | Portions |
|---|---|
| Sep 2025 | 210 |
| Oct 2025 | 198 |
| Nov 2025 | 205 |
| Dec 2025 | 240 |
| Jan 2026 | 176 |
| Feb 2026 | 182 |
| Mar 2026 | 199 |
| Apr 2026 | 214 |
| May 2026 | 236 |
| Jun 2026 | 258 |
| Jul 2026 | 271 |
| Aug 2026 | 264 |
The question is what to order for September.
Step 1: the average, and why it is wrong
Add the twelve months and divide by twelve. The total is 2,653 portions, so the average month is 221. That is the number most kitchens actually order to, whether or not anyone writes it down — it is what “about the usual” means.
Now check it against the year it came from. If you had ordered 221 portions every single month, here is how far off you would have been:
| Month | Actual | Ordered 221 | Miss |
|---|---|---|---|
| Sep 2025 | 210 | 221 | 11 over |
| Oct 2025 | 198 | 221 | 23 over |
| Nov 2025 | 205 | 221 | 16 over |
| Dec 2025 | 240 | 221 | 19 short |
| Jan 2026 | 176 | 221 | 45 over |
| Feb 2026 | 182 | 221 | 39 over |
| Mar 2026 | 199 | 221 | 22 over |
| Apr 2026 | 214 | 221 | 7 over |
| May 2026 | 236 | 221 | 15 short |
| Jun 2026 | 258 | 221 | 37 short |
| Jul 2026 | 271 | 221 | 50 short |
| Aug 2026 | 264 | 221 | 43 short |
Over the year that is 327 portions of total miss — an average of 27 portions wrong per month, or about 12% off, every month. The over-months total 163 and the short-months total 164, which is the trap: the average is very nearly perfect about the year and wrong about every month in it. Nothing in your books shows the error, because it cancels. The waste bin and the 86 board show it.
Step 2: which way is it moving?
Look again at the table and the shape is obvious: the last six months are busier than the first six. Quantify it by averaging each half.
- First six months (Sep–Feb): 1,211 portions, averaging 201.8 a month.
- Last six months (Mar–Aug): 1,442 portions, averaging 240.3 a month.
- Difference: 38.5 portions. The centre of the first block sits six months before the centre of the second, so the climb is 38.5 ÷ 6 = about 6.4 portions per month.
That gives a trend line rather than a flat number. The middle of the twelve months corresponds to 221 portions, and each month after that adds 6.4. September is the thirteenth month — six and a half months past the middle — so:
221.1 + (6.4 × 6.5) = 262.8, call it 263 portions.
Worth testing that this is genuinely better and not just different. Score the trend line against the same twelve months and the average miss falls from 27 portions to 19 — a 30% reduction, from one line of arithmetic. Trend is the highest-value thing you can add to a flat average, and it is the step most spreadsheets skip.
Step 3: what does September normally do?
A trend line is a straight climb, and demand is not a straight climb. January collapsed and December spiked, and neither is a change in the business — it is the calendar. So compare each month to where the trend line said it should have been. Divide the actual by the trend value and you get a ratio: above 1.00 means that month runs hot, below means it runs cold.
| Month | Actual | Trend said | Ratio |
|---|---|---|---|
| Sep 2025 | 210 | 185.8 | 1.13 |
| Oct 2025 | 198 | 192.2 | 1.03 |
| Nov 2025 | 205 | 198.6 | 1.03 |
| Dec 2025 | 240 | 205.0 | 1.17 |
| Jan 2026 | 176 | 211.5 | 0.83 |
| Feb 2026 | 182 | 217.9 | 0.84 |
| Mar 2026 | 199 | 224.3 | 0.89 |
| Apr 2026 | 214 | 230.7 | 0.93 |
| May 2026 | 236 | 237.1 | 1.00 |
| Jun 2026 | 258 | 243.5 | 1.06 |
| Jul 2026 | 271 | 250.0 | 1.08 |
| Aug 2026 | 264 | 256.4 | 1.03 |
The ratios average to 1.00, which is the arithmetic check that they are measuring shape rather than smuggling in extra growth. And the pattern reads like a restaurant year: a dead January and February at about 0.84, a December spike at 1.17, a strong summer.
September’s ratio is 1.13. Apply it to the trend value:
262.8 × 1.13 = 297 portions.
So the flat average said 221 and the full method says 297. That is a 76-portion gap on one ingredient — a third more chicken than “about the usual” would have bought, and the difference between a good September and running out on the second Friday.
Step 4: the buffer, and the honest problem with it
297 is the expected demand, which by definition you will exceed roughly half the time. Safety stock is the padding that decides how often “roughly half the time” turns into a customer being told no. The standard move is to add a flat percentage — 20% is the number people reach for — which would take the order to 356.
Here is the problem, and it is the most useful paragraph in this article. A buffer should cover what the forecast could not predict. To measure that, you need forecast errors: predictions made before the month happened, then compared against what actually happened. Count the rows in the ratio table above and you will notice there are exactly twelve, one per month, each derived from that same month’s own number.
So with one year, you cannot compute a defensible buffer. You have three options, in order of honesty:
- Wait for a second year. Once September 2026 has happened, September 2025’s ratio has predicted something, and the gap between the two is a real error you can size a buffer from.
- Hold out the last three months, forecast them from the first nine, and measure that. Weaker — nine months cannot see a season — but it is a genuine out-of-sample test rather than a self-graded one.
- Pick a percentage deliberately and write down that you picked it. A 20% buffer is a decision about how much you would rather waste than run out. It is a perfectly reasonable decision. It is not a measurement, and calling it one is where most inventory advice goes wrong.
The other thing a flat percentage gets wrong: it pads every item equally. Chicken breast here moves smoothly and is highly predictable. An item that swings between 40 and 90 portions with no pattern needs a much bigger buffer than 20%, and a rock-steady staple needs much less. A single number applied to both simultaneously over-orders the boring items and under-protects the volatile ones — which is exactly the combination that produces waste and stockouts in the same week.
Where software disagrees with the hand method
Run the same twelve months through StocksSense and the answer is close to 297 but not identical, for three reasons worth knowing about.
It smooths the December spike before it uses it
December at 240 and January at 176 are the two most extreme months in the series, and they sit next to each other. A hand calculation lets both pull the trend line at full strength. An outlier check compares each month against its neighbours and damps an unusual one before it feeds the model, so a single catering order in December does not quietly raise every forecast for the following year.
It refuses to claim seasonality it cannot see
With twelve months or more, StocksSense fits trend and season together (Holt-Winters). With less, it drops to a simpler trend-only model rather than inventing a seasonal pattern from a partial calendar. The hand method above has no such brake — you can run it on five months and it will happily hand you a ratio.
It sizes the buffer per item, from out-of-sample tests
Instead of one percentage across the menu, each product’s buffer comes from how well its own past forecasts predicted the months that followed. Items that have proven predictable get tighter buffers; items that have not get more protection and a shorter window before the forecast stops being trustworthy. And a product with only one cycle of history gets its confidence claim capped — for exactly the fits-itself-perfectly reason above.
The whole thing in five lines
| Step | September order | What changed |
|---|---|---|
| Flat average | 221 | The starting point. 12% off in a typical month. |
| + trend | 263 | Recognises demand is climbing 6.4 portions a month. Cuts the typical miss by 30%. |
| + seasonality | 297 | Recognises September runs 13% above the line. |
| + buffer | 297 or more | A deliberate decision, not a calculation — until a second year of data exists. |
Three of those four steps are arithmetic you can do in a spreadsheet in an afternoon, for one ingredient. The reason it does not get done is that a restaurant orders eighty ingredients, not one, and the whole chain has to be redone every time a month closes. That is the actual job software is for — not cleverness, repetition.
If you want the mechanics of the model that does steps two and three properly, rather than the block-average shortcut used here, the companion article explains Holt-Winters in the same plain terms.