Stocky leaves Shopify in 5 weeksSee how Stockful compares ›
← All posts
Shopify

How Stockful's Demand Forecasting Works — and What Just Got Better

Stockful fits a self-tuning model to every SKU, learns each product's seasonality, and now reads your promotions so a discount week doesn't inflate your reorder points. Here's how the forecasting works.

18 Jul 2026 · 4 min read

A forecast is only as good as how well it reads each individual product. A steady everyday seller, a line that only moves at Christmas, and a slow product that sells a handful of units a month all need to be forecast differently. Treat them the same and you get reorder points that are too high on some and too low on others.

Stockful’s demand forecasting is built around that idea: instead of one formula applied to everything, it fits a self-tuning model to every SKU, at every location, from your own sales history. Here’s how it works, and what we just improved.

A model chosen per product, not one formula for all

For each SKU at each location, Stockful considers five candidate models: a flat baseline, a trend, a day-of-week pattern, annual seasonality, and an intermittent-demand model for slow or sporadic sellers. It trains them on up to two years of your Shopify sales history and picks the one that actually fits that product.

The important part is how it picks. A richer model is adopted only when it beats the simple baseline on a backtest of that SKU’s own past — the model has to prove itself on history it wasn’t shown before it’s allowed to forecast. If nothing beats the baseline, the baseline stays. That means a forecast can never get worse by trying to be clever; the extra sophistication is only ever used where it earns its place.

Seasonality, learned per product

Seasonal demand is where simple velocity forecasting falls apart. A Christmas line’s average over the year tells you almost nothing about December, and a summer product looks dead for nine months of the year.

Stockful learns each product’s seasonal shape from its own history — Christmas lines, summer lines, BFCM spikes — with no manual “same period last year” comparisons to set up. The pattern comes out of the data, per product, which is exactly what up to two years of history is there to make possible.

Slow movers get their own model

Slow, sporadic sellers are where naive forecasting is worst. A product that sells a few units a month, in no particular rhythm, will swing a simple average wildly every time one sale lands. Averaging noise just produces more noise.

Those SKUs get a dedicated intermittent-demand model instead — one built for exactly this pattern — so their reorder points stop lurching around on the back of one or two orders.

Reading around stockouts

Days you couldn’t sell shouldn’t count against a product’s demand. If something was out of stock for two weeks, its sales for that period were zero because of supply, not demand. Stockful’s velocity is out-of-stock aware: it doesn’t let those empty days drag the rate down, and it quantifies the sales you lost to the stockout rather than pretending demand was low.

Safety stock is then computed statistically from your chosen service level and your product’s actual demand variability — and it accounts for supplier lead-time variability too, so a less reliable supplier earns a bigger buffer without you maintaining the numbers by hand.

New: forecasting that reads your promotions

Here’s the piece we just shipped, built on top of that deeper history.

Run a discount week and a velocity-based forecast gets fooled. The promoted product looks like it suddenly sells far more than usual, its reorder point climbs with the spike, and your next order over-buys against demand that only existed because the item was on sale. The promotion ends, demand drops back, and you’re left holding stock you bought against a number that was never real.

Stockful now recognises discounted days and treats that jump as a temporary lift rather than your everyday demand, so reorder points stay steady through and after a sale. It also tells the difference between a one-off promotion and a product you simply always sell at a lower price — so a regular-discount line is read as the steady seller it is, not mistaken for a spike to correct for. The result is reorder points that reflect real underlying demand, even around your busiest sale periods.

Every forecast proves itself

Because each model has to beat a baseline on held-out history before it’s adopted, every forecast starts life having earned its place. Stockful then keeps measuring accuracy against what actually sells, continuously, so a model that stops fitting gets caught rather than quietly drifting. Confidence bands and reorder points are shown right on the charts, and suggested reorder quantities are tethered to real observed sales — including the same season last year — never to model speculation.

That’s the whole idea: forecasting that tunes itself to each product, proves itself on your own history, and reads the messy real-world stuff — seasonality, slow movers, stockouts, and now promotions — instead of being thrown by it.

Get started free at stockful.app with a 14-day free trial. Stockful forecasts demand per SKU, learns each product’s pattern, and times your reorders around real underlying demand.

More from Stockful:

Try Stockful on your Shopify storeDaily inventory history, forecasting, reports and an AI assistant. Free 14-day trial.
Start free trial