How Stockie's inventory forecasting works
Available on: Pro and above.
Stockie forecasts how fast each variant sells, then works out when you will run low and how much to order. It does that from your Shopify sales history - no forecast is guessed, and nothing is shared between stores.
Everything starts from one number: sales velocity.
Sales velocity
Sales velocity is average daily sales for a variant:
sales velocity = units sold in the lookback period ÷ days the variant was in stock
The second half is what makes it useful. Days when a variant was out of stock are removed from the divisor, because they are days you could not sell rather than days nobody wanted it. A product that sold 300 units in the 20 days it was in stock has a velocity of 15 a day, not the 3.33 you would get by counting all 90.
Three consequences worth knowing:
- If a variant sold while showing no stock for the whole lookback period, usually because it sold past zero at the till, the whole period counts instead. On a store with more than one location still forecasting from store-wide sales, a location in that position reads Velocity unavailable, because those sales may belong to another location.
- If the variant is set to Continue selling when out of stock in Shopify, no days are excluded. It was sellable throughout, so the whole period counts.
- If a variant sold nothing in the period there is nothing to measure, so its velocity is 0 and its reorder point, its reorder and stockout dates and its suggested quantity all read No sales. A store with no orders at all in the window still gets a finished forecast, with every row reading No sales.

A short history is spread over 14 days
Velocity never divides by fewer than 14 days, or by your whole lookback period when that is shorter. A variant in stock for 1 day of a 60-day lookback that sold 32 units has a velocity of 32 ÷ 14 = 2.29 a day, not 32.
Without the minimum, a day or two of sales would set the pace for every number built on the velocity, including the quantity Stockie suggests you order. Anything with 14 days or more behind it is unaffected.
These rows carry a Limited data badge. Hover over it for the reason: either the sales were spread over 14 days, or the variant is newer than your lookback period, so the forecast used the days since you created it.
What you control
Five settings shape every number on the page:
| Setting | What it does |
|---|---|
| Lookback period | How much sales history the velocity is measured over |
| Demand adjustment | Scales the velocity up or down by a percentage |
| Lead time | Days between ordering and stock arriving |
| Safety stock | Days of buffer held above forecast demand |
| Restock to | Days of cover you want after a delivery arrives |
The first two are covered in Configuring demand settings, the last three in Configuring reordering settings.
Where a variant has a min or max level at a location, those levels take the place of the forecast: the reorder point shows your min level and the suggested quantity is worked out from your levels. The row is marked Min/max.
What Stockie calculates
Reorder point - the stock level at which you should order:
reorder point = velocity × (lead time + safety stock)
At 5 units a day, a 14-day lead time and 30 days of safety stock, the reorder point is 220 units. Stockie flags the variant once your available and incoming stock together fall to it. There is no reorder point for a variant with no velocity, or where lead time or safety stock is unset.
Reorder in - how long until you hit that point, at the current velocity.
Stockout in - how long your stock will last, at the current velocity.
All of these count stock already on its way as well as what is on the shelf. A delivery you have ordered pushes the figures out as soon as Shopify shows it as incoming, before it arrives.
Suggested reorder quantity - how much to order:
suggested quantity = (restock to × velocity) + lead time demand - (available + incoming)
Lead time demand is what you expect to sell while waiting for the delivery. It is capped at the stock you hold or have on the way, so a variant with 40 units between them and 70 units of lead time demand contributes 40 - you cannot sell stock you do not have. The result is never negative and always a whole number.
What counts as a sale
Not everything in Shopify moves the forecast:
- Cancelled orders are excluded, even if they shipped or were paid for.
- Voided and expired orders are excluded, shipped or not.
- Unpaid orders count once any part of them has shipped, so a sale on account or against a later invoice reaches the forecast when the goods leave rather than when the money arrives. An order Shopify shows as pending that nothing ever ships on never counts.
- Returns and refunds reduce the quantity counted against the original order.
When the forecast runs
The numbers on the page are a snapshot from the last forecast run, not a live view. Forecasts run once a day, and you can rebuild on demand with Run forecast.
After you change a setting, the page shows a Your forecast is out of date banner until the forecast runs again.
This is the single most common source of confusion with forecasting - see The forecast is a snapshot.
Where accuracy comes from
Stockie's arithmetic is only as good as what it is given:
- Lead times that match your deliveries. Every reorder point on a supplier's products moves with its lead time, so a figure based on recent deliveries tends to serve better than an ideal one.
- Enough history. A variant with two weeks of sales has a velocity built on two weeks of sales. It is not wrong, but it will move a lot as more history accumulates.
- Time to judge a change. A new setting shows up in the numbers after the next forecast runs, either overnight or when you choose Start new forecast, and it can take a few runs to see whether a new lookback period suits a product.
If a specific number looks wrong, Why do my forecast numbers look wrong? walks through the usual causes in order.