Data Science Operations · Predictive models

Demand forecasting

How much will be sold, and with what margin of error

Forecast with range, not a single number Integrated in your planning cycle Documented so your team can maintain it Continuous monitoring
Fd forecast

The problem

The forecast usually lives in a spreadsheet that one person updates. They take the average of the last few months, apply an adjustment for what is known to be coming, and produce a number per SKU. It works because the person doing it knows the business.

The problems are three and all are structural.

01

Unrecorded knowledge

What the person making the forecast knows is not written down anywhere. When they go on holiday or change roles, the forecast loses half its value.

02

An average does not distinguish

It treats a seasonal drop and a real drop the same way. The average loses the information that separates one thing from the other.

03

A single number

With no indication of how wrong it might be. With that, it is impossible to decide how much safety stock is needed.

Then come the known consequences. Stockouts on what sells and excess on what does not, tied-up capital, and a monthly argument between sales and operations where each defends their number.

The solution

A forecast by SKU and by period, with a range in addition to the central value.

The range is the most underestimated element. A single number forces a blind decision about how much margin to leave. With an interval, the stock policy is set against the real risk of each SKU, and the stable ones stop carrying the same buffer as the volatile ones.

The model separates what an average mixes together: the underlying trend, the seasonal cycle, the effect of a promotion, the day of the week or a public holiday. And it does so by SKU, because the pattern of a daily-turnover product has nothing in common with one sold by campaigns.

Why a model and not a better average

It is worth being precise about what is replaced. The model replaces the base statistical calculation, not the judgement of the person who plans. That judgement is still needed, because there are things only a person knows, like a customer who announced a large order or a campaign not yet in any system.

What changes is the starting point for that conversation. Instead of debating a number that came out of an average, the discussion starts from a forecast that already incorporates seasonality and the promotional history, and the manual adjustment is recorded as such. Over time that allows something that does not exist today: knowing whether the manual adjustments were improving or worsening the result.

McKinsey estimates that machine learning-based forecasting reduces errors by between 20 and 50%, and lost sales due to stockouts by up to 65%. The real leap is not in average error but in stopping the treatment of all SKUs equally: when the model separates the stable from the volatile, safety stock adjusts to each case.

More on the blog: Why do production models degrade? →

How it integrates

The forecast is delivered in the format and cadence of the planning cycle that already exists, not the other way round. And it is delivered documented, with the written procedure of how it is run, what is reviewed, and what to do when something goes out of range. That is what allows the process to keep working without us — which is the only real proof that a model reached production.

The same model, other applications

A demand forecast estimates a future quantity from its own history and what happens around it. What is counted changes, not how.

01

Revenue forecasting.

The same mechanism applied to billing, for financial planning and budgeting.

02

Workload.

How many incidents, orders or calls will come in, to size shifts.

03

Resource consumption.

Energy, raw materials, server capacity. Everything bought in advance.

04

Occupancy and capacity.

Bookings, seats, attendance — where the cost of running short and the cost of excess are different.

Related cases
Customer lifetime value → Customer segmentation → Customer data enrichment →