Inventory forecast
How to use it
Plan reorders from real demand:
- Run a store-wide scan — the first run pulls your whole catalogue (a few minutes). (Products → Forecast → Scan)
- Set lead times so reorder dates are accurate. (Products → Planning settings)
- Search any product, or toggle to Collection to forecast a whole range. (Forecast → search / Collection)
- Act on the urgent rows — reorder, bundle, or discontinue dead stock.
⏱ First scan ~a few min · 💳 Starter+ · 🎯 A reorder list you can act on today
Why this matters for your business
Stockouts and overstock are both expensive — one loses the sale, the other ties up cash and warehouse space. Good forecasting needs real velocity (net of refunds), every SKU (including the dead stock you forgot about), and a reorder recommendation you can act on. The previous forecast only looked at the first 100 products and dropped anything without recent sales, so a store with many slow-moving or out-of-stock SKUs saw a handful of rows. This forecast scans the entire catalogue and includes a product when it's low/out-of-stock or has any sales velocity — so dead OOS products with zero recent orders finally show up where you can decide what to do with them.
What the forecast computes
For every product in scope:
| Metric | What it tells you |
|---|---|
| Sales velocity | Units/day, refund-aware, over a 90-day window |
| Days of cover | How long current stock lasts at that velocity |
| Safety stock | Buffer to hold against demand variability |
| Reorder point | The stock level at which to reorder, given lead time |
| Urgency | Out-of-stock / low / healthy, so you triage fastest |
Velocity is refund-aware — returned units are netted out, so a product that sells then gets returned isn't forecast as if it's flying off the shelf. Lead time and other planning inputs come from your planning settings.
The store-wide scan
Because Shopify's API paginates and rate-limits, a whole-catalogue forecast runs as two Bulk Operations rather than page-by-page fetching:
- The scan pulls every order in the window (no page cap), so velocity reflects the real catalogue, not a sample.
- The result is persisted as a snapshot and cached, so the next time you open the tab the whole-catalogue view rehydrates instantly instead of forcing you to re-run the (up-to-10-minute) scan.
The initial store-wide scan can take a few minutes on a large catalogue — it's two full bulk operations. After that, the cached snapshot means day-to-day use is fast; re-run the scan when you want fresh numbers (e.g. after a big sales week).
Searchable pickers & the collection toggle
The forecast tab has two upgrades that make it usable on a real catalogue:
- Searchable product picker — a search combobox that finds any product store-wide, not just what's on the current page. Re-running the forecast is gated on a real selection (with real velocity), so you never re-run against an empty pick.
- Product / Collection toggle — switch to Collection mode to filter by a collection and get an aggregate forecast for the whole range — reorder planning for a category at once, not SKU by SKU.
The per-product AI deep-dive
For any product, the AI deep-dive explains the recommendation in plain language — why it's flagged, how lead time changes the reorder date, and what to order — turning a row of numbers into an action ("reorder 240 units by the 18th to avoid a stockout, given a 21-day lead time").
Best practices
✅ Run a full scan weekly (or after any spike) so velocity stays current — the cached snapshot is fast but only as fresh as your last run.
✅ Set lead times in planning settings. The reorder point is only as good as the lead time you give it — a default guess understates urgency.
✅ Use Collection mode for category buys. Aggregating a range gives you one purchase-order-sized number instead of dozens of SKU decisions.
❌ Don't ignore the zero-velocity OOS rows. They're dead stock the old forecast hid — decide to discontinue, bundle, or clear them.