1. Your sales
Needs a date, a SKU (or product name) and a quantity: Shopify's Orders export (Created at, Lineitem sku, Lineitem quantity, Lineitem price) works as it is. Cancelled and refunded orders are dropped and negative quantities net against the SKU. Two to three months of orders give steadier numbers.
2. Your stock (needed for reorder points)
A SKU and an On hand (or Available) column. Used when present: Incoming / On order and Cost per item. Shopify's inventory export works as it is.
3. Your supply chain
Choose the files or paste the text, then click Plan my reorders.
Result
By SKU (most urgent first)
| SKU | Status | Class | Sold / day | On hand | Days of cover | Reorder point | Order qty | Order cost | Sales at risk | Excess cash |
|---|
The model, and what it leaves out
- Velocity is units sold per day. With eight or more weeks of orders it is 60% the last 28 days and 40% the whole file, so a SKU that has taken off is not planned at its old pace; with less it is the whole-file average.
- Reorder point = velocity × lead time + safety stock. Safety stock = the z-score for your service level × the SKU's weekly standard deviation converted to days × the square root of the lead time. A SKU is flagged when on hand plus incoming is at or below it.
- Order quantity brings on hand plus incoming up to velocity × (lead time + cover days) + safety stock. Reconciles. The order quantities add up to the total shown and the order list CSV contains exactly the SKUs with a quantity.
- Sales at risk is velocity × average price × the days a SKU would be out before a new order could arrive (a full lead time if it is already at zero). It is an upper bound, not a forecast.
- Overstock is more than your chosen days of cover; only the units beyond that many days count as excess. Dead means stock on hand and no sales in the last 90 days of the file. Cash is at cost, and needs a cost column.
- Not modelled: seasonality and promotions, sales lost while a SKU was already out of stock, supplier minimums and case packs, variants sold under a different SKU, bundles, warehouse transfers, shelf life, and anything not in the files. Prices are the average on the order lines, before discounts.
Common questions
How do I know when to reorder a Shopify product?
Compare the units you have on hand plus anything on order with a reorder point: daily sales velocity times your supplier lead time, plus a safety buffer. When stock falls to that point, the reorder is already late by the time the goods land. Drop your orders export and a stock export here and the tool computes that point for every SKU. Nothing is uploaded.
What is a reorder point and how is it calculated here?
Reorder point = daily velocity × lead time in days + safety stock. Velocity blends the last 28 days (60%) with the whole file (40%) once there are eight weeks of orders, and uses the whole-file average before that. Safety stock is the z-score for your chosen service level × the SKU's own week-to-week variation, scaled to the lead time.
Which files does it need?
A sales file with a date, a SKU (or product name) and a quantity, such as Shopify's Orders export, whose line-item rows are read and whose cancelled or refunded orders are dropped. A stock file is optional but needed for reorder points and order quantities: a SKU and an on-hand or available column, plus incoming and cost per item if you have them. Column names are matched by alias.
Can I use this if I don't use Shopify?
Yes. Any sheet with a date, a SKU and a quantity for sales, and a SKU and units on hand for stock, works. Column names are matched by alias, and rows that cannot be read are listed with a line number and reason.
What is dead stock and overstock here?
Dead stock is a SKU with units on hand and no sales in the last 90 days of your file. Overstock is a selling SKU with more than 120 days of cover. Both are shown as cash at cost when you supply a cost column, and only the units beyond 120 days of cover count as excess for an overstocked SKU. Both thresholds are settings you can change.
Is this a demand forecast or inventory advice?
No. It is arithmetic on the files you supply and the lead time and service level you type. Seasonality, promotions, stock-outs that suppressed past sales, supplier minimums and case packs are not modelled, and it is independent of Shopify and every other product named here. You decide what to order.