Blog / Forecasting
Forecasting July 15, 2026 · 6 min read

Your reorder math can't see the promotion you already scheduled

Reorder points run on trailing averages, and a trailing average knows nothing about next month. Every promotion or gift-guide feature breaks the math twice: a stockout on the way in, inflated ordering on the way out. Here's the failure in numbers, and the fix.

Two Septembers ago we stocked out of our best-selling whiskey decanter set on day six of a ten-day Father's Day promotion. (Father's Day is early September in Australia. Same panic as June in the US, different weather.) The email had gone to 60,000 subscribers. The ads were paid for. From day six, every click landed on an out-of-stock page.

The frustrating part wasn't the miss. Nothing surprising had happened. We planned the promotion. We knew the date. We'd run a similar one the year before and knew roughly what it would do to sales. Every piece of information needed to prevent that stockout was sitting in the building, and none of it was in the reorder math.

A trailing average is a rear-view mirror

Almost every reorder point comes from the same place: average daily demand times lead time, plus safety stock. And average daily demand is almost always a trailing number. Last 90 days, last 12 months, whatever your system uses.

That works when the future looks like the recent past. A promotion is you deciding, on purpose, that it won't.

Numbers. Take a SKU selling 6 units/day. Supplier lead time is 18 calendar days, safety stock one full lead-time period. Reorder point: 6 × 18 × 2 = 216 units. Fine at baseline.

Now you schedule a two-week promotion and expect it to run at about 2.5× baseline, so 15 units/day. That's not a wild guess. It's what last year's version of the same promotion did.

The trigger doesn't move. Stock drifts down to 216 units, the flag goes up, you order. At 15 units/day, 216 units is 14 days of cover. The replenishment takes 18 days. You hit zero about four days before the new stock lands — mid-promotion, with paid traffic still arriving.

The reorder point wasn't wrong. It was answering yesterday's question.

Then the event poisons the average

The second half of the failure gets less attention. Say you got the stock right and the promotion runs clean: 14 days at 15 units/day is 210 units, against 84 units at baseline pace.

That spike is in your sales history now. A 90-day trailing average reads it as (76 × 6 + 14 × 15) ÷ 90 ≈ 7.4 units/day. Your demand estimate is 23 percent high, and it stays high until the promo window rolls out of the average. That's three months of reorder points sized for a demand level that existed for two weeks because you sent an email.

Run a promotion every quarter and the average never fully recovers. You're permanently ordering against a demand rate your baseline business doesn't have.

One planned spike, two bills: a stockout going in, surplus stock coming out.

What operators do instead (I did all of these)

The standard workaround is manual. Ahead of the event you either place a gut-feel PO or hand-edit the reorder point upward.

I've done both. In 2023 I set a decanter SKU's reorder point to 600 units ahead of a promotion, and the following March I found it still sitting at 600, quietly holding about $4,000 of extra stock. The edit took ten seconds. Remembering to reverse it competed with everything else in the building, and lost.

The gut-feel PO fails differently. Nothing records what you expected, so nothing tells you afterward whether you were right. Next year you make the same guess from scratch.

A note on the easy case: a firm wholesale commitment, like a client ordering 500 engraved sets for an October conference, isn't a forecasting problem. You know the quantity and the date; buy for it directly. The hard case is a rate change. A promotion, a feature in a holiday gift guide — you know something is coming and roughly how big, but it arrives as a faster daily sell rate, not a line on a PO.

The fix: a bounded, dated multiplier

What actually solves this is embarrassingly small. A demand boost is three fields on a SKU: a start date, an end date, and a multiplier.

From the start date to the end date, the reorder math runs on base demand × multiplier. On the end date it reverts on its own. No note on your phone, no reorder point to remember to reset in March.

Sizing the multiplier is one division:

Multiplier = last event's units per day ÷ baseline units per day

Our Father's Day promotion history says 2.3–2.7× depending on discount depth, so I set 2.5 and stop agonizing. No prior event to measure? Take the marketing plan's revenue target and back it into units. You'll be wrong. Being 30 percent wrong beats not adjusting at all, because the do-nothing option was 150 percent wrong.

Then score it. After the window closes, compare actual units sold to what the multiplier predicted, and write the result down next to the event. Two or three cycles of this and your multipliers get sharp, because they're built on your own scored history instead of an annual guess.

This is one of the features I lean on hardest running Personalised Favours on Stocura. Boosts are dated, the reorder math accounts for them during the window, and accuracy is tracked after expiry, so next year's number is better than this year's. But the mechanic works in a spreadsheet too. The tool matters less than the discipline of putting dates and sizes on spikes you already know about.

Isn't this what seasonality is for?

No, and the distinction is worth keeping. A seasonal curve captures the shape your demand repeats every year. Christmas climbs in October whether or not you lift a finger. A boost covers what no curve can know in advance: the promotion you chose to run this year, or the newsletter feature you got lucky with last Tuesday. Seasonality is the weather. A boost is you deciding to make it rain.

If a "one-off" event repeats every year on schedule, that's not a boost anymore. Fold it into the seasonal profile and stop re-entering it.

What to do this week

Open your marketing calendar and list every demand event in the next 90 days: promotions, email features, marketplace deals, any wholesale conversations likely to close. Map each one to the SKUs it touches. For each SKU, write down a multiplier and a date range, and get it into whatever runs your reorder math — a proper demand boost if your system has one, a temporary column in the reorder spreadsheet if it doesn't.

Then check the calendar the other way. Any event in the past 90 days is still sitting inside your trailing averages, inflating them. Know which SKUs those are before you approve this week's POs.

The information is already in the building. Put it where the math can see it.

Know a spike is coming?

Stocura's reorder math prices in dated demand boosts, learns your real lead times from PO history, and hands you a ranked Reorder Queue on top of Cin7 Core. Free until September 1, 2026 during soft launch.

Start free trial

Matthew Mosse-Robinson is the CEO of Personalised Favours, a Sydney-based Cin7 Core manufacturer and Stocura's founding customer. PF runs on Stocura in production every day — reorder, forecasting, and a full end-of-year stocktake counted and pushed live into Cin7 Core. Written from the operator's seat, not the vendor's.