Your Shopify orders CSV contains everything you need to predict stockouts weeks in advance. This guide walks through the exact process — from export to forecast — including the formulas, the common mistakes, and how to read the results.
You don't need a Shopify app, an API integration, or a data analyst to forecast your inventory. Your Shopify admin already exports everything you need as a CSV file — and with the right process, you can go from raw export to a ranked list of at-risk SKUs in under 30 minutes the first time, and under 5 minutes every week after that.
This guide covers the complete process: what to export, which columns matter, the forecasting formulas, and how to interpret the results.
Shopify's order export is a complete record of your sales history — every SKU, every quantity, every date. That's the core input for any demand forecast. The CSV approach works because it uses your actual data, not samples or estimates, and it doesn't require any third-party access to your store.
Note
The accuracy ceiling for any forecast is set by the quality and length of your sales history. 60–90 days of consistent data produces reliable stockout dates. Less than 30 days produces rough estimates only.
- 1Log in to Shopify Admin (yourstore.myshopify.com/admin)
- 2Click Orders in the left sidebar
- 3Click the Export button in the top right
- 4Select date range: Last 90 days for best results (minimum: Last 30 days)
- 5Select All orders and export format CSV for Excel
- 6Click Export orders — the file downloads to your computer
Shopify's order export has dozens of columns. For inventory forecasting, only five of them matter. Everything else can be ignored.
| Column Name | What It Is | Used For |
|---|---|---|
| Created at | Order timestamp | Calculating daily sales velocity per product |
| Lineitem name | Product + variant name | Identifying which product was sold |
| Lineitem sku | Your SKU code | Matching products across systems |
| Lineitem quantity | Units sold in this line | Total units sold per product per day |
| Lineitem price | Price per unit | Revenue at risk if the product stocks out |
Warning
Before you run any calculations, filter out cancelled and refunded orders. Including them inflates your apparent sales velocity and produces optimistic (wrong) forecasts.
The orders CSV doesn't include current stock — you need to add that. Go to Shopify Admin → Products → Inventory and export that file too. Or add a column manually with today's stock levels per SKU. This is the most important input in the whole forecast — an error here affects every calculation downstream.
- Use units physically available to sell — not including in-transit stock, reserved orders, or damaged units
- If you have multiple warehouse locations, use the combined available quantity
- Update this number on the day you run the forecast — yesterday's stock count produces yesterday's forecast
With sales history and current stock, the stockout forecast is a three-step calculation:
Example: you have 180 units of a product. It sold 450 units in the last 90 days. ADS = 450/90 = 5 units/day. Days of stock = 180/5 = 36 days. Stockout date = today + 36 days.
Days of stock tells you when you'll run out. The reorder point tells you when to order. These are different numbers — and the gap between them is where merchants lose revenue.
Using the example above: ADS = 5, lead time = 10 days, safety stock = 5 × 7 = 35 units. Reorder point = (5 × 10) + 35 = 85 units. When your stock drops to 85 units, place the order immediately.
Tip
If your Days of Stock Remaining is already less than your lead time, you are late. Order today and expect a brief stockout window unless you have expediting options.
Doing this manually for 3–5 products is feasible. For 20+ SKUs, it becomes a spreadsheet maintenance job that will be out of date before you finish. Forestock automates all the steps above from your CSV upload:
- 1Go to getforestock.com/forecast
- 2Upload your Shopify orders CSV (the file you exported in Step 1)
- 3Enter your supplier lead time in days — this applies globally; you can adjust per-product after
- 4Click Run Forecast
- 5Review the ranked product list: Critical (stock out in <7 days), High (<21 days), Safe
- 6For any Critical or High product, click Generate PO to create a purchase order ready to send
| Column | What It Shows | What to Do |
|---|---|---|
| Stockout Date | Calendar date the product runs out at current velocity | If within 3× your lead time, order now |
| Days Remaining | Days until stockout at current ADS | Anything below lead time is already critical |
| Reorder Qty | Units to order to cover demand + safety buffer | Use this as your PO quantity starting point |
| Revenue at Risk | Sales you'll lose if the stockout happens | Prioritise the highest-revenue at-risk SKUs first |
| Urgency | Critical / High / Safe classification | Critical = order today, High = order this week |
- Including cancelled/refunded orders — this inflates ADS and makes stockout dates look further away than they are
- Using too short a date range — 14-day data captures one bad week and treats it as normal velocity
- Stale stock counts — if your stock figure is from last week, your Days Remaining is wrong by exactly the units sold since then
- Using supplier's quoted lead time instead of actual lead time — a systematic optimism bias that causes consistent late reorders
- Treating variants as one product — a shoe that comes in 6 sizes has 6 different stock levels and 6 different forecast outputs
- Running the forecast once a month — velocity changes weekly; a monthly forecast misses trend shifts
Tip
Set a weekly recurring reminder to export and upload a fresh CSV. Monday morning works well — it captures the previous week's sales and gives you time to place orders before the weekend.
For most Shopify merchants, a weekly forecast cadence is sufficient. Run it every Monday, review Critical and High items, place any necessary orders, and move on. The whole process takes under 10 minutes once you have a clean CSV template.
Increase frequency during peak seasons, after a significant ad campaign launch, or any time you get unexpected press or social traffic that might spike demand on a specific product. Those are the moments when a stockout from undetected velocity change costs the most.
Try it free
Upload your CSV and see which products are at risk in 30 seconds.