Inventory8 min read

Stockouts: why Shopify brands run out of stock and how to prevent it

By Andrew Simpson, founder of Canopy Inventory. Last updated .

Illustration of a stock list showing current stock, a recommended order and an estimated arrival date

Quick answer

A stockout is when a product has no stock available to sell while customers still want it. Most stockouts happen because the reorder went in too late: the stock left would not last until the new delivery arrived. Best sellers run out first because they use up stock fastest, so a late order hurts them most. To prevent stockouts, work out each SKU's stockout date from its sales rate, then order before the reorder-by date: the stockout date minus your lead time and safety stock days.

What is a stockout?

A stockout (also written stock-out, or simply "out of stock") is the point where a product's sellable stock reaches zero while there is still demand for it. In Shopify terms, that is the available quantity: the units you can sell. Units already set aside for orders are "committed", and units on their way from a supplier are "incoming" and cannot be sold until they are received.

This guide covers why stockouts happen, how to predict the date one will happen, how to estimate what it costs, and how to prevent it. It uses weeks of cover, which is how long your stock lasts at your current sales rate.

Why best sellers run out of stock

  • Reordering on stock level, not sales rate. Twenty units is months of stock for a slow seller and a few days for a best seller. A single "low stock" number for every product hides that.
  • Underestimating lead time. Lead time is the time from placing the order to having stock you can sell, including production, shipping, customs and receiving, not just the shipping time. See how to calculate lead time.
  • Sales speeding up after the order was sized. A promotion, a good review or a seasonal peak raises the sales rate, and the order sized on last month's rate no longer lasts.
  • Ordering to a round number or the minimum order quantity. An order sized to the supplier's minimum, rather than to the weeks of cover you need, can run out before the next delivery.
  • Forgetting stock that is already committed or tied up in bundles. On-hand stock can look healthy while much of it is already promised to orders or sold inside bundles.
  • A late purchase order. If you planned to the day, any delay at the supplier or in transit becomes days out of stock. That is what safety stock is for.

The stockout formula: when will this SKU run out?

  • Daily sales rate = units sold in the window ÷ days in the window
  • Days of stock left = available stock ÷ daily sales rate
  • Stockout date = today + days of stock left
  • Reorder-by date = stockout date − (lead time days + safety stock days)
  • Weeks of cover = available stock ÷ (daily sales rate × 7)

If the reorder-by date is today or already past, order now. The reorder point formula gives the same answer expressed in units: reorder when stock falls to the units you sell during the lead time plus your safety stock.

Worked example: a best seller about to run out

Example (round made-up numbers). A SKU has 300 units available. It sold 600 units in the last 30 days, so it sells 20 a day. Lead time is 30 days and you keep 7 days of safety stock.

Days of stock left = 300 ÷ 20 = 15 days, so weeks of cover is about 2.1 weeks. The stockout date is 15 days from today. The reorder-by date is 15 − (30 + 7) = 22 days ago, so the order is overdue.

If you order today, the delivery lands in 30 days but stock runs out in 15. Unless you can speed up the delivery, expect about 15 days out of stock. Ordering 22 or more days ago would have avoided it.

What does a stockout cost? A simple stockout cost calculation

  • Units missed = daily sales rate × days out of stock
  • Sales missed = units missed × selling price
  • Gross profit missed = units missed × (selling price − product cost)

Example (continued). 20 units a day × 15 days out of stock = 300 units missed. At a selling price of £30 and a product cost of £12, that is £9,000 of sales and £5,400 of gross profit missed.

Treat this as an estimate, not a precise figure. Some customers wait for the restock or buy something else from you, so not every missed unit is a lost sale. Other costs are real but hard to measure: advertising still sending visitors to a sold-out page, customers who buy from a competitor and do not come back, and the time spent answering "when is it back?" emails. Use the gross profit figure to compare against the cost of holding more safety stock.

How to prevent stockouts

  • Work out weeks of cover for every SKU, at least weekly, and sort by the lowest first. The weeks of cover calculator does one product at a time.
  • Set a lead time for each supplier from your real order history, not the quote.
  • Hold safety stock in days for products where a stockout would cost the most.
  • Size each order to cover the lead time plus your target cover, minus stock you have and stock already on order.
  • Keep a list of open purchase orders with expected dates so you know what is coming.
  • Look at best sellers more often than slow sellers, because their stock moves fastest.
  • Before a promotion or a seasonal peak, check that stock will last at the higher rate. See Christmas stock planning.

How to spot stockout risk in Shopify

  • Open the Inventory remaining per product report. Shopify shows a chart of variants predicted to run out soon and a "Days of inventory remaining" figure for each variant, based on its sales over the last 28 days.
  • For a different period, the Inventory sold daily by product report shows the average units sold per day for each variant over the period you choose. Divide available stock by that figure to get days of stock left.
  • Remember that stock on a purchase order or transfer shows as incoming and cannot be sold until it is received, when it becomes available. Add your own expected dates to see whether it arrives before you run out.
  • Subtract your lead time and safety stock days from the date stock runs out to get the reorder-by date, in a spreadsheet or by hand. Our weeks of cover spreadsheet template has the formulas.

How Canopy Inventory does it

Canopy Inventory is a read-only Shopify app, coming soon to the Shopify App Store. For every SKU it takes Shopify's available stock across the active locations that fulfil online orders (or all active locations if none do) and a planning sales rate: units sold in the last 30 days, or all the history it has if that is shorter. Units sold inside bundles count towards each component, net of cancellations and refunds.

It then steps forward day by day at that rate to find the stockout date, adding open purchase order lines on their expected dates. The reorder-by date is the stockout date minus your lead time and safety stock days. When a buy is due and that date has passed, or the SKU is already out of stock, the table says Order now and shows the date it was due.

Two honest limits. Days when a SKU was out of stock are not removed from the sales rate, so a product that was sold out for part of the window shows a lower rate than its real demand. And incoming purchase orders are entered by hand, on the Growth and Pro plans; Canopy does not read Shopify's purchase orders. The Free plan covers your 50 most recently sold SKUs. The full rules are on how Canopy calculates.

See the stockout date and reorder-by date for every SKU

Canopy Inventory shows how many weeks of stock each SKU has left, when it runs out and what to reorder. Read-only. Free for your 50 most recently sold SKUs.

Email me the install link

Sources

  • Shopify Help Center, inventory reports (Inventory remaining per product, Inventory sold daily by product, Products by sell-through rate, Month-end inventory value): help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/default-reports/inventory-reports
  • Shopify Help Center, inventory states (available, committed, unavailable, on hand, incoming): help.shopify.com/en/manual/products/inventory/managing-inventory-quantities/inventory-states
  • How Canopy Inventory calculates each figure: How Canopy calculates

Last updated 6th November 2026: rewritten around stockouts, with the stockout and stockout cost formulas and a worked example. Merged with our former stockout cost calculator article.

Frequently Asked Questions

A stockout is when a product has no stock available to sell while customers still want to buy it. In Shopify, that means the available quantity for the variant has reached zero.

Work out how many days of stock each best seller has left at its current sales rate, and place the reorder before the reorder-by date: the stockout date minus your lead time and safety stock days. Check best sellers at least weekly, because they use up stock fastest.

Use the Inventory remaining per product report or your own sales rate to see days of stock left for each variant, keep a list of open purchase orders with expected dates, and size each order to cover your lead time plus the cover you want to hold.

Multiply the daily sales rate by the days out of stock to get units missed. Multiply units missed by the selling price minus the product cost to get the gross profit missed. It is an estimate, because some customers wait or buy something else.

Because they sell fastest. The same lead time and the same late order cost a fast seller far more days of stock than a slow one, so a reorder that is a week late can empty a best seller while a slow seller is unaffected.

No. A stockout is having no stock to sell. A backorder is an order you accept for stock you do not have yet, to be sent when it arrives. Taking backorders keeps the sale but means a longer wait for the customer.

Related pages

Related Articles

Get the Canopy Inventory install link

Canopy Inventory is coming soon to the Shopify App Store. One email the day it's live. Free for your 50 most recently sold SKUs.