Blog

Your Sales History Isn’t Your Demand History

Sep 28
decor image

By Matt Wampler, CEO of ClearCOGS

Quick Answer: No, they are not the same thing. Your point of sale records what you sold, and what you sold was capped by what you had. On any day you ran out of an item, the number in your system understates what guests actually wanted. A forecast trained on that record learns to prepare less, which makes running out more likely the following week. Operations researchers call the underlying problem censored demand, and the self-reinforcing version of it is known as a spiral-down effect.

Why this is easy to miss

Most forecasting conversations start from a reasonable assumption: the point of sale is the truth. It records every transaction, it is tied to payment, and it is the cleanest data most restaurants have.

All of that is correct, and it is still incomplete in one specific way.

A transaction record is a record of a completed sale. The guest who wanted the item at seven o’clock, found out it was gone, and ordered something else appears in your data as a sale of the something else. The guest who left does not appear at all. Neither of them is an error in the data. They are simply not in it.

So the number that looks like demand is really demand with a ceiling on it, and the ceiling is how much you made.

What is censored demand?

Censored demand is the term for a measurement that gets cut off at a limit rather than recorded at its true value. In a restaurant, the limit is the quantity you prepared.

The forecasting literature is unambiguous about what this does. When stock is sufficient, sales are an unbiased estimate of demand. But when stockouts occur, sales underestimate demand, and forecasts built on sales are therefore biased downward compared with forecasts built on the demand you never got to observe (Trapero, Holgado de Frutos, and Pedregal, International Journal of Forecasting, 2024).

Note the word biased. This is not random noise that averages out across a few months. It is a systematic error pointing in one direction, and it is concentrated in exactly the items you run out of most, which are usually the items you most want to get right.

Why the problem compounds

Here is the part that makes this worth acting on rather than merely knowing.

The same work notes that this underestimation leads to lower inventory levels and a lower service level, which can produce what is called a spiral-down effect. The loop runs like this:

  1. You run out of an item on a busy Saturday.
  2. Saturday’s sales record for that item is lower than real demand.
  3. That record becomes part of the history your forecast learns from.
  4. Next Saturday’s suggested quantity comes in slightly lower.
  5. You run out slightly earlier.
  6. The record understates demand by slightly more.

Each turn of the loop is small enough to be invisible in a period report. Over a year, a genuinely popular item can drift into being chronically under-prepared, and the operational story that gets told about it is usually something else entirely: the item has cooled off, or that location does not execute well, or the supplier keeps short-shipping.

I have had a version of this conversation many times with operators whose best item keeps disappearing early. Their demand patterns are not wrong because the model is bad. They are wrong because the history was recorded during a series of stockouts.

Which items are most exposed

Not every item is equally affected. The exposure concentrates in a recognizable profile.

Item characteristicWhy it raises exposure
Sells out regularlyMore censored observations in the history
Popular and hard to substituteGuests leave rather than switch, so the demand vanishes entirely
Short shelf lifePrepared conservatively, which makes running out more likely
Concentrated in a peak windowA stockout at the peak censors the largest share of demand
Recently promotedThin history, and the stockout lands on the days that mattered

The profile of an item whose sales history is likely to be censored.

If you want a fast version of this diagnosis, list the five items your locations 86 most often. That list is also, almost always, the list of items your forecast is quietly under-predicting.

How do you know if it is happening to you?

Three checks, none of which require new software.

Look at the last sale timestamp. For each item, find the time of its final transaction each day. An item that reliably stops selling at 7:40 on Fridays is not an item that guests stop wanting at 7:40. It is an item you ran out of.

Look for flat tops. Plot daily units for a suspect item over a few months. Genuine demand varies. If the busiest days keep landing on roughly the same ceiling, that ceiling is your production quantity, not your demand.

Compare across locations. If one location’s numbers for an item are consistently lower than comparable locations, check whether it is selling less or simply running out sooner. Those look identical in a sales report and mean opposite things.

What to do about it

The fix is not complicated, but it does require recording something you probably are not recording.

Capture the stockout, not just the sale. When an item runs out, you need the event and the time. Many modern point of sale systems can emit this, and some brands already pipe 86 events into a data warehouse for supply chain purposes. If that exists in your business, it is far more valuable than it is usually treated as, because it is the key that unlocks the rest of the history.

Treat those days as incomplete, not as low. A day that ended in a stockout should not be averaged in as though it were a normal day of weak demand. At minimum, exclude it from the baseline. Done properly, the quantity is estimated rather than discarded, using the shape of the day up to the moment you ran out.

Separate a store problem from a supply problem. Some 86s are forecasting misses and some are deliveries that never arrived. They call for different fixes, and lumping them together hides both.

Accept that some running out is intentional. Plenty of operators deliberately aim to finish the day close to empty on certain items, and that is a legitimate strategy. It just means those items’ histories are censored by design, and a forecast that does not know this will keep pulling their numbers down.

Frequently Asked Questions

Is censored demand the same as lost sales?

They are related but not identical. Lost sales are the revenue you missed. Censored demand is the data problem the stockout leaves behind, which affects every future forecast built on that history. You can recover from a lost sale in one shift. The data effect persists.

Does this matter if we only run out occasionally?

Occasional stockouts on a few items have a limited effect. The problem becomes significant when the same items run out repeatedly, because the bias accumulates in one direction on those specific items rather than spreading across the menu.

Can I just add a percentage to fix it?

Not reliably. A flat uplift over-corrects the items that rarely run out and under-corrects the ones that run out constantly. The size of the correction depends on how often and how early each item was censored, which is why the timing data matters.

What if we do not track 86s at all?

Start with last-sale timestamps, which you already have in your transaction data. They are a strong proxy for when an item ran out and require nothing new from your teams.

Will machine learning solve this automatically?

Not on its own. A model learns the patterns in the data it is given. If the data says demand stopped at 7:40, a more sophisticated model will simply learn that pattern more confidently. The correction has to happen in how the stockout periods are handled, not in the choice of algorithm.

Your point of sale is an excellent record of what you sold and an incomplete record of what guests wanted. The gap between those two things is not evenly distributed. It sits almost entirely on your most popular items, and it compounds quietly in the direction of preparing less.

Fixing it starts with recording when you ran out, not just how much you sold. That one addition turns a distorted history into a usable one, and it is usually sitting in your transaction data already.

If your best-selling item keeps disappearing before close and nobody can explain why the numbers say demand is flat, that is usually where we start.

Let’s Talk

Sources

  • Trapero, Juan R., Holgado de Frutos, Enrique, and Pedregal, Diego J. Demand Forecasting Under Lost Sales Stock Policies. International Journal of Forecasting, 40(3), 1055–1068. July 2024. sciencedirect.com