How much should a restaurant order? A worked example

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.

Portions of chicken breast sold, by month (illustrative)
MonthPortions
Sep 2025210
Oct 2025198
Nov 2025205
Dec 2025240
Jan 2026176
Feb 2026182
Mar 2026199
Apr 2026214
May 2026236
Jun 2026258
Jul 2026271
Aug 2026264

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:

Ordering the flat average, month by month
MonthActualOrdered 221Miss
Sep 202521022111 over
Oct 202519822123 over
Nov 202520522116 over
Dec 202524022119 short
Jan 202617622145 over
Feb 202618222139 over
Mar 202619922122 over
Apr 20262142217 over
May 202623622115 short
Jun 202625822137 short
Jul 202627122150 short
Aug 202626422143 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.

Each month against its own trend value (illustrative)
MonthActualTrend saidRatio
Sep 2025210185.81.13
Oct 2025198192.21.03
Nov 2025205198.61.03
Dec 2025240205.01.17
Jan 2026176211.50.83
Feb 2026182217.90.84
Mar 2026199224.30.89
Apr 2026214230.70.93
May 2026236237.11.00
Jun 2026258243.51.06
Jul 2026271250.01.08
Aug 2026264256.41.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:

  1. 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.
  2. 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.
  3. 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

Each step and what it added (illustrative)
StepSeptember orderWhat changed
Flat average221The starting point. 12% off in a typical month.
+ trend263Recognises demand is climbing 6.4 portions a month. Cuts the typical miss by 30%.
+ seasonality297Recognises September runs 13% above the line.
+ buffer297 or moreA 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.