ClearStock is live on the Shopify App Store.Install free →

← All blogs

Reorder Math14 min read

Inventory forecasting for Shopify — methods that survive contact with a real store

Shopify inventory forecasting from the method up: moving averages, seasonal adjustment, stockout-corrected velocity, and a process you'll actually run.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

Inventory forecasting for Shopify: methods that survive contact with a real store

Inventory forecasting decides three things for your store: when to place each purchase order, how much to order, and which products to stop reordering entirely. Everything else — the dashboards, the AI language, the 12-month plans vendors demo — is presentation layered on top of those three decisions. If a forecasting routine doesn't change what you order this week, it's a hobby.

This guide is methods-first, because that's where most coverage goes soft. You'll get the forecasting ladder from simplest to most sophisticated — moving average, weighted and seasonally adjusted, and in-stock-only velocity — each with a worked example and an honest "when it's good enough / when it breaks." Then the data preconditions, a monthly process sized for a store without a planning team, what the tools actually do (including the limits of Shopify's native reports), and the failure modes that merchants describe in public reviews far more honestly than vendors describe them in marketing.

One note on terms: "demand planning" and "demand forecasting" are the same activity at this store size. Enterprise software splits them into separate modules with separate budgets; at 500 SKUs they're one spreadsheet discipline, and this article treats them as one.

What forecasting actually decides

Three decisions, in the order you'll face them:

When to order. The forecast converts stock into time. If a SKU sells 8 units a day and your supplier needs 40 days to deliver, a forecast below 320 units on hand is already late, whatever the shelf looks like. Most "we ran out" stories are forecasting failures from three to six weeks earlier, not surprises on the day.

How much to order. Forecast demand over your coverage window, minus what's on hand, minus what's already on order. Get this number systematically low and you live in stockouts; systematically high and your cash migrates into a warehouse.

What to cut. The unglamorous third job. A forecast that says a SKU will sell 3 units a month for the foreseeable future is not really a forecast — it's a liquidation signal. Cutting losers is where forecasting pays for itself fastest, because the money saved is immediate and certain.

The preconditions: garbage in, confident garbage out

Before any method, three data conditions. All three are covered in depth in the complete Shopify inventory management guide (shopify inventory management guide); here's the forecasting-specific version:

  1. Clean product records. One SKU per sellable unit, SKUs that are actually unique, and no orphaned duplicates left from imports. A forecast computed across duplicate variants splits real demand into fake halves.
  2. Consistent variants. If "Medium / Blue" sometimes sells as one variant and sometimes as a restructured pair, your history is comparing unlike things. Variant structures don't need to be perfect — they need to be stable, and when they change, the change needs to be dated so you know where clean history starts.
  3. Enough history — of the right kind. For a moving average you want at least 60–90 days of sales. But the deeper condition is knowing when the history lies: any period where a product was out of stock produced sales data that understates demand. More on that below, because it's the most consequential problem in the whole discipline.

The forecasting ladder

Four rungs, from simplest to most sophisticated. Each rung is a real method you can run in a spreadsheet today. The right rung is the highest one your data supports — not the most impressive one.

Rung 1: the moving average

Sales over the recent past, divided by days, projected forward.

Worked example. Your candle SKU CNDL-12 sold 630 units over the last 90 days.

  • 630 ÷ 90 = 7.0 units/day
  • Supplier lead time: 45 days
  • Pipeline coverage needed: 7.0 × 45 = 315 units

When an order is placed, you want stock on hand to cover the 315-unit pipeline plus the buffer you keep. That's the whole method. One division and one multiplication, and for a stable product it's genuinely competitive with fancier approaches.

When it's good enough: steady sellers without promotions, without trend, and — critically — without stockouts in the window.

When it breaks: trend and seasonality smear the recent past into the future. And it has a failure mode specific to Shopify stores that deserves its own number:

Say CNDL-12 was out of stock for 12 of those 90 days. The method still computes 630 ÷ 90 = 7.0/day. But the store could only sell on 78 of those days. True demand is 630 ÷ 78 = 8.08 units/day — 15% higher. Every forecast, reorder point, and safety stock built on the 7.0 is now wrong in the same direction: low. This is the stockout-poisoned average, and it's vicious precisely because it hits your best-sellers hardest — they're the ones most likely to run dark. The full math, with a before/after example, is in why sales velocity numbers lie during out-of-stock days. Any method on any rung inherits this flaw unless you correct the denominator, so fix it before you climb the ladder.

Rung 2: weighted and seasonally adjusted averages

Same idea, with the weights moved toward reality.

Weighted example. Monthly sales for CNDL-12: three months ago 180, two months ago 210, last month 260. Demand is trending up, but a flat three-month average (650 ÷ 3 ≈ 217/month) underweights that.

Apply weights 0.2 / 0.3 / 0.5 (oldest to newest):

  • 180 × 0.2 = 36
  • 210 × 0.3 = 63
  • 260 × 0.5 = 130
  • Weighted forecast: 36 + 63 + 130 = 229 units/month — about 5% above the flat average, and closer to what the trend says.

Seasonal adjustment example. Last November you sold 510 units against a 2025 monthly average of 212. Seasonal factor: 510 ÷ 212 ≈ 2.4. This November, with a base month running ~240, the forecast is 240 × 2.4 ≈ 576 units. That's a crude estimate — one year of history, and last year's promo calendar wasn't identical — but it's vastly better than forecasting November from October.

When it's good enough: trending products, annual seasonality you've seen at least once, promo cycles that repeat roughly.

When it breaks: one year of seasonal history is an assumption, not a law. If last November's spike was driven by a one-off feature or a viral moment, you'll buy 2.4× stock into a 1.4× season. Where you can, sanity-check the factor against the category: did the whole store lift, or just this SKU?

Rung 3: in-stock-only velocity

Not a new formula — a corrected input. Every method above should consume demand computed over days the product could actually sell:

demand rate = units sold ÷ days in stock during the period

This requires knowing when each SKU was dark. Shopify's native reports give you sales, not availability, as of October 2026, so historically merchants tracked this with a daily inventory snapshot in a sheet or an app that keeps the ledger. It's the difference between Rung 1's 7.0/day and the truer 8.08/day — and at a $28.99 price point, that 1.08/day gap over a 45-day lead time is about 49 units, or roughly $1,420 of under-ordered stock. Per SKU. Per cycle.

Rung 4: beyond spreadsheets — and why the step is smaller than vendors claim

Above the ladder sit statistical models (exponential smoothing variants, machine-learning forecasts) — that's what dedicated planning apps run. They earn their keep in specific situations: thousands of SKUs with intermittent demand, multi-location allocation, or catalogs where no human can eyeball every series. They do not repeal the preconditions. A model fed stockout-poisoned data produces a confident, precise, wrong number — arguably a worse failure, because nobody audits what looks authoritative. Clean inputs and corrected velocity remain the work that pays the most at this store size, whichever rung you end up on.

A monthly process a small store will actually run

The graveyard of inventory advice is the dashboard nobody opens. What follows is sized for an owner-operator: roughly two hours a month of focused forecast work, plus ten minutes a week.

Monthly forecast review — first Monday, 60–90 minutes.

  1. Export the last 90 days of sales by variant. Compute or refresh each active SKU's daily demand rate — in-stock-only if you have availability data.
  2. Apply the ladder: flat moving average for stable SKUs, weighted for trending ones, seasonal factor on top for anything that peaked last year.
  3. Recompute coverage: on hand ÷ demand rate = days of cover. Compare against each SKU's lead time. Anything where cover is shorter than lead time goes on this month's buy list — the reorder point math that turns the forecast into an order quantity is in the reorder point formula guide.
  4. Flip the list over: SKUs with more than ~120 days of cover and declining velocity get flagged as candidates to stop reordering. That's the third job from the top of this article, and it's where the cash is.
  5. Write down each forecast you're acting on. Next month, compare forecast to actual. Sixty seconds per SKU, and it's the only way to learn whether your method is any good.

Weekly buying list — Monday, 10 minutes. The monthly review sets the plan; the week can move faster than the plan. Once a week, scan for SKUs whose cover has dropped below lead time since the review — a promo, a viral mention, or a supplier slipping can do that in days. Order what needs ordering; note it; move on. That's the entire ritual. It exists because a monthly cadence can't catch a 12-day stockout, and a fully daily cadence doesn't survive contact with running a business.

What the tools actually do

Shopify native — capable, but not a forecaster. As of October 2026, Shopify ships purchase orders, transfers, inventory counts, supplier records, and ABC analysis natively, plus profit reporting based on cost per item (Shopify Help Center, accessed Oct 2026). What it does not ship is a demand forecast: no native report projects future sales, and the Shopify changelog shows no stockout or lost-sales analytics shipping through October 2026. So the native stack records inventory state beautifully and leaves the "what happens next" half of the discipline to you. The gap analysis is covered properly in the native-reports article; for forecasting purposes, assume you're bringing the math.

Dedicated planning apps. Three price bands, all verified from their live App Store listings and pricing pages in October 2026:

  • Stockie — $4.99–59.99/month, 171 reviews at 4.9★ (Shopify App Store, apps.shopify.com/stockie). Forecasting and reorder suggestions start on the $29.99 Pro tier; below that it's alerts and thresholds.
  • Assisty — free plan up to $199/month, 359 reviews at 4.8★ (Shopify App Store, apps.shopify.com/assisty). AI demand forecasting, reorder suggestions, and POs on the paid tiers.
  • Prediko — $49–199/month, gated by GMV band, 265 reviews at 4.9★ as of late October 2026 (prediko.io/pricing; Shopify App Store). AI forecasting with a 12-month PO calendar.

The fuller comparison lives in the best Shopify inventory apps roundup (best shopify inventory apps). For forecasting specifically, the honest summary: at $5–60/month you're buying arithmetic done for you; at $49–199 you're buying models plus workflow. Neither band fixes bad product data, and neither band excuses you from checking the forecast against reality monthly.

Common mistakes (as documented by merchants, not vendors)

The App Store reviews are the most honest systems audit available in this category, because the reviewers already paid. Four failure modes show up repeatedly.

1. One-size-fits-all reorder logic. Assisty's founder, replying publicly to an App Store review in January 2025: "The current reorder suggestions use the same min and max inventory levels for all products…" — an unusually candid admission that the tool's suggestions weren't per-SKU. Whatever tool you use, ask the question directly: are min/max levels computed per SKU from that SKU's demand and lead time, or applied category-wide? A tool that does the latter is a threshold alerter wearing a forecaster's clothes.

2. Forecasts you can't audit. A public App Store review of Prediko from September 2026 calls the prediction method "a black box" and adds: "I actually built a more useful/customized tool just with spreadsheets and ChatGPT for effectively $0." The lesson isn't that AI forecasting is bad — it's that if you can't see why a tool says "order 340," you can't tell forecast from guess, and you'll never learn to trust or correct it. Explainability is a feature to shop for, not a nice-to-have.

3. Forecasting on stockout-poisoned history. The Rung 1 example again: 630 ÷ 90 versus 630 ÷ 78. Every method that divides by calendar days instead of in-stock days under-orders its best-sellers, and the review evidence says merchants discover this the hard way — community discussions describe sellers realizing "those zero-days weren't low demand — we had nothing to sell." This is the problem InventoryX is built around: it keeps a per-SKU ledger of out-of-stock days and computes velocity only over in-stock days, so reorder math and buying lists inherit real demand. It stops at detection and drafts — no multi-location optimization, no automated actions — because the forecasting judgment stays with you.

4. Bundles treated as single products. Bundle components share stock with standalone SKUs, and a forecast that doesn't decompose the bundle forecasts the wrong thing for both. This failure is common enough that even category leaders get called out for it — a five-month Prediko user wrote in a public May 2026 review that the software is "not capable of handling our bundle predictions." The planning-side fix patterns are in the bundle inventory guide (shopify bundle inventory); the short version is that bundle components need their own component-level velocity before any forecast is meaningful.

The one-paragraph version

Clean the data, correct for out-of-stock days, climb the ladder only as far as your history supports, review the forecast monthly against what actually happened, and keep a weekly ten-minute list rather than a daily dashboard ritual. A spreadsheet run this way outperforms an unaudited AI tool run carelessly — and it costs nothing to find out.

Common questions

Does Shopify have built-in inventory forecasting? No, not as of October 2026. Shopify ships purchase orders, transfers, counts, supplier records, and ABC analysis natively, plus profit reporting via cost per item, but no native report projects future sales — the changelog shows no forecasting or stockout analytics shipping through October 2026. Native records inventory state; the "what happens next" half of the discipline is yours or an app's.

What's the simplest forecasting method that actually works? The moving average: recent sales divided by days, projected forward. For a stable product with no promotions and no stockouts in the window, it's genuinely competitive with far fancier approaches. One candle SKU selling 630 units over 90 days runs at 7.0 units/day — multiply by your supplier's lead time and you have the pipeline coverage you need.

How do I forecast when my product was out of stock part of the period? Divide by in-stock days only, never calendar days. If that 90-day window included 12 dark days, true demand is 630 ÷ 78 = 8.08 units/day, not 7.0 — about 15% higher. Every forecast, reorder point, and safety stock built on the calendar-day average under-orders your bestsellers, because they're the ones most likely to run out.

Do I need an AI forecasting app? Not automatically. Apps earn their keep at thousands of SKUs with intermittent demand, multi-location allocation, or catalogs no human can eyeball. They don't repeal the preconditions: a model fed stockout-poisoned data produces a confident, precise, wrong number. At a few hundred SKUs, a corrected moving average reviewed monthly usually beats an unaudited AI tool run carelessly.

How far back should my forecasting history go? At least 60–90 days of sales for a moving average, and a full year if you want a seasonal factor. The deeper condition is knowing when the history lies: any period a product was out of stock understates its demand. Date your variant restructures too, so you know where clean history starts.

Next step: take your five best-selling SKUs and compute both velocities — calendar-day and in-stock-only — for the last 90 days. If the gap is under 5%, your catalog is well-managed. If it's 10% or more, start with the velocity correction, because every other number downstream is built on it. Then close the loop in both directions: the out-of-stock cost guide shows what being dark already cost you (the number a forecast exists to prevent), and the dead stock guide shows the cost of forecasting too generously.