Restock PredictorBeta
Per-product velocity from the last 180 days, days-of-stock projections, and a suggested PO quantity for each item that needs reordering.
Order now
0
Within ~7d of stockout
Plan a PO
0
Within ~30d
Healthy
0
>30 days of cover
No data
0
Insufficient 180d sales
How this works
1. We pull 180 days of sales
Every order with status completed, processing, or on-hold from the last 180 days, line by line. Refunded and cancelled orders are ignored. Cached for 5 minutes per org — the Refresh button forces a fresh pull.
2. We compute velocity
Units sold per day at four windows — 7d, 30d, 90d, 180d. We project off the 30-day rate when ≥10 units sold in that window. Otherwise the 90-day rate, then the 180-day as a last fallback for slow-moving SKUs. The 7-day rate is shown for trend context but is too noisy for projection.
3. We project days of stock
current_stock ÷ velocity. That gives the days left column. Multiply forward and you get the stockout date.
4. We work backwards from lead time
stockout_date − lead_time. Default lead time is 7 days; suppliers with longer ones should be adjusted at PO time. That gives Reorder by.
5. We size the order
velocity × (lead_time + 14d cycle) × 1.2, rounded up. That covers you through the next supply cycle plus a 20% safety buffer.
6. We badge urgency
Order now ≤7d left · Plan a PO ≤30d · Healthy beyond · No data when 180-day sales are too thin to project from (those rows are hidden from the table).
Variable products — each variation is predicted independently using its own stock, SKU and order lines (matched by variation_id). Variations show a small "Variation" chip in the row.
Outlier capping — a single line's qty is capped at 3× the product's 180-day median order qty before being summed into velocity. Stops one wholesale order from inflating the rate; rows where this kicked in show a small "outliers capped" note.
Incoming pipeline — any qty already on order from suppliers (open POs with status draft / sent / partial that haven't been fully received) is subtracted from the suggested qty. Surfaces as "+N incoming" under the order quantity.
Confidence dots next to each SKU — high (≥30 units in 30d), medium (≥20 in 90d), low (≥10 in 180d) and below. Treat low-confidence rows as starting points, not gospel.