Dead stock in Shopify is inventory that has stopped selling — capital frozen on a shelf, collecting carrying costs. Studies estimate that 20–30% of a typical retailer’s inventory goes stale every year. Here’s how to spot it, what it’s costing you, and how to stop creating more.
A practical guide from the team behind Replenish · updated for 2026
Dead stock is a permanent cash-flow problem, not a temporary one. Every unit sitting on your shelf unsold is money that could have been working elsewhere — paying for faster-moving inventory, covering overheads, or simply sitting in a bank account earning interest. The Shopify dashboard shows you revenue and orders; it doesn’t automatically show you the hidden cost of inventory that is quietly failing to earn anything.
This guide walks through what qualifies as dead stock (versus slow-moving inventory), the three real costs it creates, two reliable signals to catch it early, and the one decision that creates most dead stock in the first place: the purchase order.
Dead stock is inventory with no realistic path to selling at full price in a normal timeframe — distinct from slow movers, which are simply behind pace.
| Category | Definition | Typical fix |
|---|---|---|
| Slow-moving inventory | Still selling, but below expected pace — velocity has dropped but hasn’t stopped. | Adjust reorder point; review pricing; promotional push. |
| Dead stock | Zero sales for 60+ days and/or stock so far above demand it can’t realistically clear before the next natural reorder cycle. | Markdown, bundle, liquidate, or write off — and understand why it happened before ordering again. |
The 60-day threshold is a widely used industry starting point for “no sales,” not a hard rule. A swimwear brand might use 90 days given seasonal demand; a high-velocity grocery category might flag at 30. The principle stays constant: if an item hasn’t moved and holding it costs more than clearing it, it’s dead stock.
Dead stock has three distinct cost layers. Most merchants only think about the last one.
Every unit of dead inventory represents cash you spent buying it. That cash is now illiquid — it can’t pay for new stock, marketing, or anything else until the unit sells or is written off.
Warehouse space, climate control, and handling all cost money per unit per month. A pallet of unsold goods that occupies shelf space for six months generates real overhead that doesn’t appear in any single line of your P&L.
The end of the dead-stock life cycle is almost always a painful choice: sell at 40–70% off, donate for a partial tax deduction, or write it off entirely. Each outcome erodes the margin you expected when you placed the purchase order.
Two signals together give you a reliable picture. Either one alone can mislead you.
Filter your product catalog for any SKU with zero orders in the past 60 days that still has a non-zero quantity on hand. This is the most direct indicator — the product has simply stopped moving.
A product can still technically be selling but have so much stock on hand that it would take years to clear at current velocity — that excess overhang is functionally dead stock.
The combination matters. Signal 1 alone misses the overstock case where sales are just barely trickling. Signal 2 alone might flag a product that’s selling fine but happens to have a large buffer. Together they give you a far more accurate view of what’s genuinely stuck.
Most dead stock is made at the purchase order stage — you ordered more than demand would support. Prevention is earlier than you think.
The reorder quantity formula accounts for what you already have on hand and what’s already in transit. Skipping this step — or “rounding up to a nice number” — is the most common source of overstock. Order what you need to cover lead time and a reasonable safety buffer, minus what you already have.
The first reorder on a new product is a guess; the second should be a data decision. Review new SKUs at 30 days: if velocity is well below your projection, reduce the second order before you compound the problem. Dead stock created on a new product’s second order is especially painful because it compounds the already-high first-order risk.
Define what “normal” inventory health looks like for each product: e.g., 30–45 days of cover at current velocity. When stock on hand creeps to 90+ days of cover, flag it before it becomes a write-off. Having an explicit target makes the problem visible early, rather than surprising you at year-end.
Supplier discounts are real. But a 10% discount on units you will never sell at full price is not a saving — it is a markdown you haven’t taken yet. Bulk pricing only benefits you when the velocity data supports selling through the larger quantity within a normal window.
They look like opposite problems. They have the same root cause: an order quantity that didn’t match actual demand.
A stockout means you ordered too little (or too late). Dead stock means you ordered too much. Both are the result of the same order decision — the purchase order — and correcting one without watching the other will just shift the problem. Over-correct for a stockout history and you create overstock. Slash inventory to eliminate dead stock and you expose yourself to stockouts on your fastest movers.
This is why the most useful view shows both risks at once: which products need a reorder, and which products already have too much on hand. Seeing them in the same place is what keeps the correction proportionate.
Replenish reads your Shopify sales history and stock levels daily and computes two lists: products approaching a stockout (reorder recommendations, ranked by urgency) and products flagged for overstock risk (no sales in 60+ days, or stock-on-hand far exceeding projected demand before the next cycle). Both lists live in the same dashboard — because you need to see the full picture to make the right call on any given order.
Replenish scans your Shopify store daily and surfaces overstock risk alongside reorder recommendations — both views, one dashboard. From $10/mo, 14-day free trial.
Install Replenish on ShopifyFrom $10/mo · 14-day free trial · no credit card required during trial