Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Forecasting Demand Around Promotions and Price Changes
AI & Machine Learning

Forecasting Demand Around Promotions and Price Changes

Promotions break demand forecasts because history contains the uplift but not the reason. How to feed the promotion calendar in and what to expect back.

Updated 2 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

A forecast trained on promoted history without knowing which weeks were promoted will treat the uplift as random noise, then under-forecast promotions and over-forecast quiet weeks. The fix is usually data collection, not modelling: record what was promoted, how deep, and where it was displayed.

The missing column that breaks everything

Sales history from most businesses records what sold. It rarely records why. If a third of the weeks in your history contained a promotion and nothing marks which ones, the model sees a series that jumps unpredictably and learns to average across it.

The result is a forecast that is confidently wrong in both directions: too low whenever you promote, too high in the weeks after, when demand dips because customers already stocked up.

What the model needs to know about a promotion

Feeding in a simple yes/no flag helps, but rarely enough. Promotions differ in ways that change the uplift by a large multiple.

  • Discount depth - 10% off and half price are not the same event
  • Mechanic - straight discount, multibuy, bundle, loyalty-only
  • Visibility - end cap, homepage banner, email, or nothing but a shelf label
  • Duration, and whether it spanned a payday or a bank holiday
  • Whether competitors were promoting the same category at the same time

Most businesses hold some of this somewhere - in a trade plan, a marketing calendar, a spreadsheet on somebody's desktop. Getting it into one table with dates and product codes is often the single highest-value task in the whole project.

Cannibalisation and pull-forward

Two effects make promotional forecasting harder than a simple uplift. Cannibalisation is when promoting one product takes sales from a similar one rather than growing the category. Pull-forward is when a promotion brings forward purchases that would have happened later anyway.

Both mean the honest measure of a promotion is not the uplift during the promotion. It is the change in category sales across a window that includes the weeks afterwards. Judging promotions on in-period uplift alone systematically overstates how well they worked.

This matters for forecasting because a model that learns only the uplift will over-forecast the following weeks. Including the post-promotion period in how you frame the problem tends to produce a more useful forecast even when it looks less impressive.

A realistic expectation

Promotional forecasting is genuinely hard, and accuracy on promoted weeks is usually worse than on normal ones even with good data. That is not a failure of the model; promotions are high-variance events.

The practical win is usually narrowing the range rather than hitting the number. Knowing that a promotion will most likely sell between 700 and 1,100 units rather than 'somewhere between 200 and 2,000' is enough to change the buy, and that is what the forecast is for.

If nobody records what was promoted, the model is guessing - and so is everyone else.

Where to start if the data does not exist

If you have no promotion history in usable form, do not start with modelling. Start recording. A simple table of date range, product, mechanic and depth, maintained from now on, becomes valuable within a couple of trading cycles.

In the meantime, a planner's judgement plus a documented uplift assumption per mechanic is a perfectly respectable baseline, and it gives you something to beat later. Our piece on collecting data for future machine learning covers how to set this up without a large project.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Why does my forecast miss every promotion?

Almost always because the promotion calendar is not in the data. The model cannot use information it has never seen, however sophisticated it is.

How far back does promotion history need to go?

Enough to include several examples of each mechanic you use. A mechanic that has run twice cannot be modelled reliably; treat it with a documented assumption instead.

Can a model tell me the best discount depth?

That is a different question - price and promotion optimisation rather than forecasting - and it needs enough variation in past depths to learn from. If you have only ever run 20% off, there is nothing to compare.

Should promoted weeks be removed from training data?

No. Remove them and the model never learns what a promotion looks like. Label them instead, so the model can tell the difference.

Keep reading

More on AI & Machine Learning

Start here

Want machine learning project details from us?

Tell us what you are trying to predict and roughly what data you hold. We will come back with an honest view on whether machine learning is the right tool, what the work would involve and a realistic cost range. If a spreadsheet would do the job, we will say so.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →