All posts

Forecasting that survives contact with the floor

Every production plan looks airtight in the spreadsheet and starts unraveling by Tuesday. The culprit is rarely the math — it's that the plan was built on numbers that stopped describing reality the moment they were typed. Forecasting that holds up on the floor starts from one principle and refuses to let go of it: tie your par levels to how product actually moves, and keep that tie current. What follows is how to do that in practice — the formulas, the segmentation, and the weekly routine — without a data-science team.

Velocity is the number everything hangs on

A SKU's base velocity — units sold per day, averaged over a window that reflects current demand — is the foundation under every other decision. Get it right and the rest is arithmetic; get it wrong and no amount of downstream sophistication saves you.

The judgment call is the window. Too long and it lags real change; too short and it's mostly noise. For most CPG SKUs a trailing 4–8 weeks is the sweet spot: long enough to smooth daily swings, short enough to track a genuine shift. If demand is clearly moving, weight recent weeks more heavily than old ones rather than letting a flat average drag the number backward. One caution: average shipped units can understate true demand if you were stocked out — you sold what you had, not what customers wanted. Where you can, forecast against demand signals, not just fulfilled orders.

Set the reorder point — a worked example

Numbers make this concrete. Take a mid-volume SKU selling 120 units/day, produced on a line with a 7-day lead time (queue, run, and cure before it's sellable). The bare minimum cover for that lead time is 120 × 7 = 840 units. But if you reorder at 840 you'll stock out roughly half the time — 840 only covers average demand, and half of all weeks run hotter than average. The buffer is what closes that gap.

The textbook reorder point is simple: average daily demand × lead time, plus safety stock. The first term keeps the lights on. The second term is the one you're actually deciding — so decide it deliberately.

Safety stock is a service-level decision in a statistics costume

Safety stock isn't a flat "keep two weeks on hand" rule. It should scale with how variable a SKU's demand is and with the service level you're choosing to promise. The common formulation ties it to the standard deviation of demand over the lead time and a service-level multiplier — a z-score:

  • 90% service level → z ≈ 1.28
  • 95% → z ≈ 1.65
  • 99% → z ≈ 2.33

Roughly, safety stock ≈ z × σ_demand × √(lead time). Back to our SKU: if daily demand swings with a standard deviation of about 30 units, a 95% target needs ≈ 1.65 × 30 × √7 ≈ 131 units of buffer — so you'd reorder near 970. Promise 99% instead and the buffer jumps to ≈ 185 units: the same SKU, roughly 40% more cash sitting on the shelf, for the last few points of service. That's a business trade-off wearing a statistics costume, and it's worth making on purpose, per SKU — not by a blanket rule that over-buffers your steady movers and under-buffers your volatile ones.

A steady mover that sells 50 ± 3 a day barely needs a buffer. A promotional SKU that swings between 10 and 200 needs a real one, sized to its actual variability. Same shelf, very different math.

Watch the coverage gap, not the stock level

A raw on-hand number tells you almost nothing on its own. Two SKUs sitting at 400 units each are in completely different shape if one sells 10 a day and the other sells 80 — one is six weeks of cover, the other is five days. What matters is the coverage gap: on-hand units measured against projected demand through the coverage window. When on-hand dips below what the window needs, that SKU isn't "a little low." It's a production run waiting to be scheduled, before it becomes a stockout waiting to happen.

This reframing changes the daily question from "what's low?" to "what won't make it through its lead time?" — which is the only version of the question that's actually actionable.

Segment the catalog so attention goes where it pays

You cannot forecast 800 SKUs with equal care, and you shouldn't try. A rough ABC split by volume-times-margin tells you where the attention belongs:

  • A items — the vital few that drive most of your volume and margin. Close, frequent forecasting; buffers tuned to each SKU's real variability; reviewed weekly.
  • B items — the middle. A monthly re-anchor and moderate, formula-driven buffers are usually enough.
  • C items — the long tail. Simple rules, looser buffers, a quarterly glance. The cost of carrying a little extra is smaller than the cost of your time.

Forecasting every SKU with equal ceremony is how teams burn a day a week and still get surprised. Segmenting is how you spend that day where it actually moves the number.

Pick a forecasting method you'll actually maintain

You don't need a neural network. For most CPG SKUs, a disciplined moving average or exponential smoothing — weighting recent sales more heavily than old ones — captures the trend you need without pretending to a precision you don't have. Reach for smoothing when demand has a steady drift you want to track; a simple moving average is fine for flat, stable movers. Layer in a seasonal adjustment only for SKUs that genuinely have a season. The sophistication that matters isn't the model; it's the segmentation above and the freshness below.

The part everyone skips: keeping velocity current

Here is where most forecasts quietly rot. Demand drifts. A promotion triples a SKU's velocity for three weeks and then it snaps back. A delisting takes another to zero. A new account doubles a third overnight. A forecast anchored to a 90-day-old average will keep planning — confidently and precisely — for a world that no longer exists, over-producing the SKU that's fading and starving the one that's climbing.

The fix is discipline, not cleverness: re-anchor velocity to recent, representative data on a cadence, and let your par levels move with it. Re-anchor immediately, off-cadence, when you know a SKU's world just changed — a promo ended, an account landed, a competitor delisted. This is also why data freshness is a forecasting input, not an IT chore: a beautifully tuned model running on last month's sales file is just a confident way to be wrong. Fresh inputs beat clever models on stale numbers every single time.

A weekly forecasting routine

Make it a standing half-day, same time each week, in this order:

  1. Refresh the inputs first. Pull current sales and on-hand before you touch a single forecast. Every number downstream inherits the staleness of this step.
  2. Re-anchor velocity for your A items. Update the trailing-window average; weight recent weeks; override anything you know has changed.
  3. Recompute coverage gaps across the catalog. On-hand against projected demand through each SKU's window — not against a flat threshold.
  4. Convert gaps into runs. Anything below its reorder point becomes a scheduled run now, timed so it lands before the shelf goes empty — not at zero.
  5. Spot-check the tail. A quick scan of B/C items for anything that's woken up or gone quiet, so a sleeper doesn't become next month's fire.

The whole point of the cadence is to move decisions earlier in time, while they're still cheap scheduling choices instead of expensive emergencies.

Where the software earns its keep

This is exactly the loop CPG Scheduler runs continuously. It projects coverage per SKU against live velocity and current on-hand, re-anchors to the data you upload, and surfaces the SKUs trending below par — before the floor finds out the hard way. You bring current numbers; it does the coverage math on every SKU, every day, and tells you which ones are turning into runs and when they need to start to land on time. The weekly routine above stops being a half-day of spreadsheet archaeology and becomes a review of a list that's already ranked.

A forecast that survives contact with the floor isn't the most elaborate one. It's the one wired to reality, segmented sensibly, and kept honest. Start there, and the Tuesday surprises mostly stop being surprises.

Next: the hidden cost of changeovers — why two plans that make the same units can cost very different amounts to run.

More from the journal