Product
6-Stage PipelineInventory ManagementBill of MaterialsSupplier ManagementReports & AnalyticsAI CopilotShopify Integration
Industries
ApparelBeauty & Personal CareJewelleryFootwearHome & LifestyleFood & Beverage
Company
Pricing Blog About Log in Start free trial →
Shopify

Shopify Inventory Forecasting: A Practical Guide for Growing Brands

Open your Shopify admin and you'll find sales by day, sell-through rate, inventory on hand — pages of numbers about what already happened. What you won't find is the one number that actually runs your business: the date each product runs out. Shopify inventory forecasting is the discipline of turning that rear-view data into a forward view, and you can do the first version of it this afternoon with a CSV export and one honest correction most brands miss. This guide walks through the whole method, with the math shown.

Key takeaways

  • Shopify's reports describe the past. A forecast answers a different question: how many days of stock are left, per SKU?
  • The core formula is simple: on-hand units ÷ true daily velocity = days remaining.
  • "True" is the key word — include stockout days in your average and you'll underestimate demand by exactly the fraction of days you were dark.
  • Days remaining only becomes a decision when you subtract your supplier's lead time from it.
  • Spreadsheets handle this fine at 10 SKUs. At 50 SKUs with size variants, the spreadsheet is usually the cause of the next stockout.

Why Shopify inventory forecasting needs more than native reports

Shopify's analytics are genuinely good at what they do: units sold by day, by variant, by channel; inventory snapshots; average sell-through. But every one of those reports is a mirror, not a windshield. None of them will tell you that your bestselling 500 ml bottle has 11 days of stock left and your co-packer needs 30 days to make more — which means you're already 19 days late.

Three things are missing. First, projection: no report converts current stock into a run-out date. Second, lead-time awareness: Shopify has no idea your fabric supplier quotes three weeks and delivers in four. Third, demand correction: Shopify records a stockout day as a zero-sales day, quietly poisoning any average you compute from it. A forecast has to supply all three.

Step 1: Export your sales history

Everything starts with order-level data. From your Shopify admin, export Sales over time by product variant (Analytics → Reports) for the last 90 days, or pull the orders CSV and pivot it yourself. Ninety days is the sweet spot for most D2C brands — long enough to smooth out a weird week, short enough that last season's dead trend doesn't distort the picture.

Two rules for a usable export. Work per variant, not per product: "Black Kurta" is not a SKU you can produce — "Black Kurta / M" is, and its demand curve is different from XL's. And keep daily granularity: you'll need day-by-day rows for the stockout correction in the next step, and weekly rollups destroy that information.

Alongside sales, note each variant's current on-hand quantity and — from your own records, because Shopify doesn't hold it — each product's supplier lead time.

One more column to build before you calculate anything: which days each variant was out of stock. Shopify doesn't export this directly, but you can reconstruct it — any stretch of consecutive zero-sales days on a product that normally sells daily is almost always a stockout, and your inventory history confirms it. Mark those days now; they're the raw material for the correction that makes or breaks the whole forecast.

Step 2: Calculate true daily velocity (exclude stockout days)

Here's where most spreadsheet forecasts silently break. The obvious calculation is units sold in the window divided by days in the window. The obvious calculation is wrong whenever you've had a stockout — which, if you're reading a forecasting guide, you have.

Work the numbers. Your bestseller sells 6 units a day when it's available. Last month it was out of stock for 10 of 30 days, so it sold 120 units in the 20 days it was live:

Calendar average = 120 units / 30 days = 4.0 per day (wrong) True velocity = 120 units / 20 in-stock days = 6.0 per day Underestimate = 33% — on every number downstream Days remaining = on-hand / true velocity = 90 units / 6.0 per day = 15 days

That 10-day stockout dragged a 6-a-day product down to 4 a day on paper. Plan production off 4 a day and you'll order a third less than demand, stock out again, and drag the average even lower — a doom loop where each stockout manufactures the next one. The fix costs nothing: mark the days each variant had zero available inventory, and divide sold units by in-stock days only. This single correction is the highest-leverage improvement in all of Shopify inventory forecasting, and it's the first thing Honey Shelf's velocity engine does with your sales history. The same trap, and eight other stockout-prevention tactics, are covered in our guide to avoiding stockouts without overstocking.

Choosing the averaging window

How many days should the average cover? Ninety days of in-stock history gives stability; thirty gives responsiveness. A practical compromise is to compute both and let the shorter window win when they disagree sharply — a 30-day velocity running 50% above the 90-day figure means demand is accelerating, and the conservative move is to plan on the faster number. For products with fewer than 30 days of history, treat any forecast as a hypothesis and reorder in smaller, more frequent batches until the data settles.

Step 3: Convert velocity into days remaining

With true velocity in hand, the forecast itself is one division per SKU: on-hand units ÷ velocity. Now "300 units in the warehouse" becomes "19 days of cover," which is a sentence a founder can act on. Ranked by days remaining, your whole catalogue turns into a priority list:

VariantOn handTrue velocityDays remainingLead timeVerdict
Black Kurta / M906.0/day1530 daysAlready late — order now
Black Kurta / XL842.1/day4030 daysOrder within 10 days
Linen Shirt / M2103.5/day6021 daysHealthy — recheck weekly
Cotton Scarf4000.9/day44415 daysOverstocked — pause production

Notice what the table exposes. The M and the XL of the same kurta are in completely different situations — which is why per-variant forecasting matters. And the scarf, comfortably "in stock" by any Shopify report, is actually 14 months of cover: cash frozen in fabric form.

Step 4: Layer in lead times

Days remaining tells you when you'll run out. It doesn't tell you when to act — for that, subtract the time it takes to get more. If replenishment takes 30 days end-to-end (production plus shipping plus receiving), your real deadline is days remaining − 30. When that number hits zero, today is the last safe day to order. When it's negative, you're choosing the length of your stockout, not whether you'll have one.

Use honest lead times: the average of your last five actual deliveries, not the number the supplier quoted a year ago. If your manufacturer says 21 days but the last five POs landed in 22, 26, 24, 31, and 25 days, plan on 26 and buffer toward 31 — planning on the quote guarantees a late order two times out of five. Add a few days of cover for demand spikes — sized properly with a safety stock calculation rather than a guess — and you have a complete reorder trigger per SKU: velocity, days remaining, lead time, and buffer, all feeding one date on the calendar.

When the spreadsheet stops scaling

Everything above works in Google Sheets, and at 10-20 SKUs it genuinely is the right tool. The failure mode isn't the math — it's the maintenance. The forecast is only correct on the day someone re-exports the CSV, re-marks the stockout days, and re-checks the lead times. Miss a week because of a launch, and every countdown on the sheet is fiction.

The usual breaking points: around 30-50 active SKUs; size and colour variants that multiply every row; more than one person needing the numbers; and the first stockout caused not by bad math but by a stale sheet. If the weekly update takes over an hour, or the team quietly stopped trusting the file, you've hit the ceiling. We've written a fuller cost-benefit breakdown in spreadsheets vs. inventory software.

From forecast to production: closing the loop

A forecast that ends in a spreadsheet cell is a warning. A forecast that ends in a production order is a system. The complete workflow looks like this: sales sync in daily from your store, velocity recalculates with stockout days excluded, the days-remaining countdown crosses your lead-time threshold, and a draft production order appears — quantities recommended from real demand, materials computed from the product's bill of materials, purchase orders drafted for whatever is short.

That's the loop Honey Shelf automates: two-way Shopify sync pulls sales in and pushes finished goods back per variant, and the 6-stage pipeline carries each signal from "stock is low" to "goods are back on the shelf" without a single manual CSV export. Setup takes about ten minutes, and the first honest countdown usually reveals at least one SKU that's quieter — or closer to empty — than anyone thought.

Start with one number

Don't build the perfect model first. Export 90 days, correct for stockout days, and compute days remaining for your top ten variants. That single afternoon of work will change what you order next month — and once the number proves itself, automating it is the easy part.

Honey Shelf Team

We build manufacturing intelligence for modern product brands.

Frequently asked questions

No. Shopify reports what has already happened — units sold, current stock, sell-through — but it doesn't project when a SKU will run out, and it doesn't account for supplier lead times or stockout days. Forecasting requires combining that sales history with velocity math, either in a spreadsheet or in a dedicated tool.

Ninety days is a solid working window: long enough to smooth out random noise, short enough to reflect current demand. For fast-moving or recently launched products, weight the most recent 30 days more heavily. A full year of history helps once you want to model seasonality.

A day with zero stock records zero sales regardless of demand, so including it drags the average down. A product selling 6 units a day that was out of stock for 10 of the last 30 days shows a calendar average of just 4 a day — a 33% underestimate that leads directly to under-ordering and the next stockout.

The usual breaking points are around 30-50 active SKUs, multiple size or colour variants per product, or your first serious stockout caused by a stale spreadsheet. If updating the forecast takes more than an hour a week, or nobody trusts the numbers in it, you've crossed the line.

Know your run-out date for every SKU.

Honey Shelf syncs your Shopify sales, corrects for stockout days, and counts down the days remaining on every variant — automatically.

Start your free 30-day trial

No credit card required · Cancel anytime · Get set up in under 10 minutes