chivvy. Start a conversation
What we doWorkHow we workGuidesArticlesWho we areFree toolContactStart a conversation
Guide · Forecasting

Forecasting demand when you sell a physical product

You do not need a data scientist to stop running out of your bestseller. You need cover, cadence and a small amount of honesty about seasonality.

3 min readWritten by Chivvy

Businesses that make or stock things tend to have two failure modes running simultaneously: out of the thing that sells, and overloaded with the thing that doesn't. Both are forecasting failures, and both are usually fixable with arithmetic rather than machine learning.

Here's the sequence that gets most of the value.

Stop measuring stock in units

"We have 4,000 units" tells you nothing actionable. "At the current rate that's 2.1 weeks" tells you whether to act today. Cover — stock divided by the rate it leaves — is the only stock number worth putting in a weekly report.

Two decisions make cover useful. First, the rate: use a trailing average long enough to be stable but short enough to be current. Four weeks works for most businesses; eight if your ordering is lumpy. Second, the threshold: cover should be compared against your replenishment time, not against a round number. If a production run takes three weeks, anything under four weeks of cover is already a problem.

The one-line rule

Flag anything where cover is less than replenishment time plus a week. That single rule catches most stock-outs, needs no forecasting model, and can be calculated from data you already have.

Separate the three reasons demand changes

Forecasting gets treated as one problem when it's really three, and they need different responses.

Trend

The slow direction of travel. Compare the last twelve weeks with the twelve before. Trend affects how much you make in general, not what you do this week.

Seasonality

The repeating annual shape. The only reliable way to see it is year-on-year comparison of the same weeks — which is why keeping history matters more than any clever model. Two years is workable; three is comfortable.

Events

The things that aren't patterns: a festival, a listing win, a heatwave, a competitor's supply problem. These are not forecastable from your own data, and pretending otherwise is how models get discredited. They need a human to say "there's a thing happening" — so the useful design is a forecast that a person can override, with the override recorded.

Compare like weeks, not like periods

Month-on-month comparison is nearly useless for a product business, because months contain different numbers of weekends, bank holidays and trading days. Week-on-week against the same week last year is far more honest, and it's the comparison that makes seasonality visible instead of confusing.

Forecast the top lines properly, the rest roughly

In most product businesses a small number of lines account for most of the volume. Those deserve real attention: cover, trend, year-on-year, replenishment timing. The long tail does not — a simple reorder point is fine, and the effort spent forecasting a line that sells six a month is effort wasted.

This is the single biggest efficiency in the whole exercise, and it's the opposite of what a system tends to do by default, which is treat every line identically.

Watch the other direction too

Stock ageing faster than it sells is the quieter and often costlier problem, especially with a shelf life. The metric is the same one inverted: cover far above replenishment time means capital and space tied up in something that isn't moving, and — if it perishes — a write-off with a date on it.

A weekly report should show both ends: what's about to run out, and what's not going anywhere. The second list is where the discounting and promotion decisions come from, and it's almost never looked at until it's too late.

What good looks like in a weekly report

  • Cover in weeks for your top lines, flagged against replenishment time
  • This week versus the same week last year, per top line
  • Anything with cover far above normal, with its age
  • What's on order and when it lands
  • One sentence saying which decision needs making this week

That's five things, all computable from sales history and stock levels, and between them they prevent most stock-outs and most write-offs. No model required — just cover, honest comparisons, and enough history to know what normal looks like.

Working out your own numbers

Two inputs make the whole thing work, and both are calculable from data you already have.

Replenishment time, honestly measured

Not what the supplier's lead time says on paper. The real figure is from the moment you decide you need more to the moment it's available to sell — which includes your own internal delay in noticing and ordering, the supplier's actual performance rather than their quoted time, and anything that happens after delivery before it can be sold.

Look at your last ten replenishments and take the longest, not the average. Planning to the average means being short half the time.

Run rate, over the right window

Four weeks trailing works for most businesses. Use eight if your ordering is lumpy — a few large customers rather than many small ones — because a single big order in a four-week window will distort the rate badly in both directions.

One refinement worth making: exclude genuinely exceptional orders from the rate. A one-off bulk purchase isn't demand, and leaving it in tells you to hold stock for something that isn't coming back.

The reorder point, in one line

Reorder point = (worst-case replenishment weeks + 1) × weekly run rate.

When stock falls below that, order. It's arithmetic rather than forecasting, it needs no model, and it prevents the large majority of stock-outs on its own.

Reading year-on-year properly

Seasonality is where most home-grown forecasting goes wrong, and usually for one of three reasons.

Comparing months. Months contain different numbers of trading days, weekends and bank holidays. A March with five Mondays is not comparable to a March with four. Compare week numbers instead.

Comparing against one previous year. One year ago might itself have been unusual. Where you have the history, compare against the same weeks across two or three years and look at the shape rather than the single figure.

Forgetting what you did. Last year's spike might have been a promotion, a listing win, or being the only supplier with stock. If you don't know why the peak happened, you can't tell whether to plan for it. A one-line note against any unusual week costs nothing at the time and is invaluable a year later.

Tying it to production or purchasing

Cover tells you when to act. What to act on depends on the constraint, and it's worth being explicit about which one binds.

If the constraint is production capacity — a brewery with a fixed number of tanks, a workshop with limited bench space — then the question isn't just what's running low, it's what to make with the slot you've got. That means ranking candidates by cover, not just flagging the ones below threshold. The right answer is frequently to make the thing with 2.1 weeks rather than the thing with 1.4, because the 1.4 has a shorter production time and can wait.

If the constraint is cash — common with imported goods — then the order becomes a prioritisation exercise across lines, and margin per pound of stock matters as much as cover.

If the constraint is supplier minimums, cover has to be read against the minimum order quantity, or you'll be told to order six when the supplier only sells twenty-four.

None of that needs sophisticated software. It needs the cover figure per line, the constraint written down, and someone looking at both once a week.

When a model is worth it

Genuinely sometimes: long lead times, expensive raw materials, strong seasonality and enough history to learn from. But it belongs after the arithmetic is in place, not instead of it. A business that can't currently say how many weeks of cover it has will not be rescued by a forecasting algorithm — it'll just have a more sophisticated way of being surprised.

Keep reading

More guides.

Get started

Want this done for you rather than by you?

Everything in these guides is something we build. If you would rather it simply arrived in your inbox every Monday, that is the job.

Start a conversation