Simple maths you can check by hand — no black box.
This page documents exactly how Restock:ize computes every number you see in the Restock Radar. If a figure surprises you, this is where to check the working.
Restock:ize reads your order history from the past 180 days (or 60 days if your store is new, or if full history access is pending). It uses:
No customer names, emails, or addresses are ever read or stored. Only SKU, quantity, and date.
Velocity V is how fast a variant sells on average. We use a recency-weighted formula when enough history is available:
| History window W | Velocity formula |
|---|---|
| W ≥ 90 days | V = 0.6 × (U₃₀ / 30) + 0.4 × (U₉₀ / 90) |
| 30 ≤ W < 90 days | V = U(W) / W |
| W < 30 days | V = U(W) / W (flagged as "limited history") |
Where:
U₃₀ = units sold in the last 30 daysU₉₀ = units sold in the last 90 daysU(W) = units sold in the available history windowThe 60/40 recency weighting (0.6 × 30-day, 0.4 × 90-day) gives more weight to recent sales while smoothing out short-term spikes. This is the same approach used by many professional inventory planning tools, but shown in full here so you can verify it.
Example: A widget sold 120 units in the last 30 days and 280 units in the last 90 days.
Days of cover (DoC) tells you how long your current stock will last at the current velocity:
If V = 0 (no recent sales), DoC is shown as ∞ and the SKU is sorted to the "No recent sales" group at the bottom of the radar.
Each SKU is classified using your supplier lead time L and safety stock S:
| Colour | Condition | Meaning |
|---|---|---|
| 🔴 Red | DoC ≤ L |
You will run out before new stock arrives. Reorder now. |
| 🟡 Amber | L < DoC ≤ L + S |
Within your safety-stock buffer. Order soon. |
| 🟢 Green | DoC > L + S |
Adequately stocked. |
| — None | V = 0 | No recent sales. Possible dead stock. |
Default values: lead time L = 14 days, safety stock S = 7 days. Both are configurable in Suppliers & Settings.
The suggested quantity is how much to order to cover the lead time, safety stock, and your coverage target C (default 30 days), minus stock already on hand and inbound on open purchase orders:
This quantity is then:
Example: V = 3.64 units/day, L = 14, S = 7, C = 30, stock = 40, inbound = 0, MOQ = 0.
Any purchase order in Restock:ize with status "Ordered" contributes its line quantities as inbound stock for the relevant SKU. When you mark a PO as "Received", those quantities are removed from inbound (the stock is now in your live Shopify inventory).
When a specific location is selected in the radar, stock on hand is read from that location only. Velocity is computed from store-wide order history (Shopify orders are not tied to specific locations). On the Growth or Plus plan, you can filter to any of your active locations.
name, lead_time_days, moq, order_multiple, email. Download the sample from the Import page.Check whether the history window badge says "last 60 days" — if so, Restock:ize may not yet have access to your full order history (the access request is pending). Also verify that cancelled orders are excluded from your Shopify reports; Restock:ize always excludes them.
The formula targets enough stock to cover the lead time + safety stock + coverage target. If your coverage target is 30 days and your lead time is 45 days, the total coverage aimed for is 82 days. Reduce the coverage target in Settings if you prefer smaller, more frequent orders.
Red means DoC ≤ lead time. If you have 100 units selling at 10/day and your lead time is 14 days, DoC = 10 days < 14 days → Red. You should already have an order in flight.
No. The forecast is the formula above. No machine learning, no black box. You can check every number by hand using this page.