Inventory health, explained

Shopify Dead Stock: How to Identify and Reduce It

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.

The definition

What counts as dead stock?

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.

The real cost

What dead inventory actually costs you

Dead stock has three distinct cost layers. Most merchants only think about the last one.

💴

Capital tied up

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.

🗓

Storage and carrying costs

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.

📉

Markdowns and write-offs

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.

Finding it

How to identify dead stock in Shopify

Two signals together give you a reliable picture. Either one alone can mislead you.

Signal 1

No sales in 60+ days

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.

How to pull it from Shopify: Run the Sales by Product report for the past 60 days. Sort by units sold ascending. Any product at zero with stock > 0 is a candidate.
Signal 2

Stock on hand far exceeds expected demand

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.

Example: 200 units on hand — selling 1 per day = 200 days of inventory. Your reorder cycle is 30 days. You have 170 units more than you can naturally cycle through.

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.

Prevention

How to avoid creating dead stock

Most dead stock is made at the purchase order stage — you ordered more than demand would support. Prevention is earlier than you think.

1

Calculate before you order, every time

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.

2

Track new SKU performance at 30 days

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.

3

Set a sell-through target per SKU

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.

4

Resist “buy more to get a bulk discount”

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.

The bigger picture

Dead stock and stockouts are the same decision

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.

How Replenish surfaces both

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.

FAQ

Common questions

What is dead stock in Shopify?
Dead stock in Shopify is inventory that has had zero sales for an extended period — typically 60 or more days — and has no realistic prospect of selling at full price. It is distinct from slow-moving inventory, which is still selling but below expected pace. Dead stock ties up capital, occupies storage, and usually ends in deep markdowns or a write-off.
How do I find dead stock in Shopify?
The most practical method is filtering your product catalog for items with zero sales in the past 60+ days and a non-zero stock-on-hand quantity. Export the Sales by Product report from Shopify, sort by units sold ascending, and flag anything at zero with stock remaining. Then cross-check against your sell-through pace: stock on hand divided by daily velocity tells you how many days of cover you're holding. If it's 90+ days on a 30-day cycle, that excess is functionally dead stock even if the product is technically still selling.
What’s the difference between dead stock and slow-moving inventory?
Slow-moving inventory is still selling, just below its expected pace — it may need a promotional nudge or a reorder-point adjustment, but it will cycle through. Dead stock has effectively stopped: zero sales in 60+ days, or stock so far above demand that it cannot realistically sell before the next natural reorder cycle. The fix is different: slow movers need better forecasting; dead stock needs active intervention — markdown, bundle, or liquidate.
How do I avoid creating dead stock?
Dead stock is almost always created at the purchase order stage. Prevention starts with accurate velocity data before ordering, a realistic lead-time assumption, and a reorder quantity formula that accounts for what you already have on hand and in transit. Review new SKU performance at 30 days (before placing the second order) to catch misses while they’re still small. And be cautious with bulk-discount orders: a 10% saving on units you can’t sell is a markdown you haven’t taken yet.
Can Replenish detect dead stock automatically?
Yes. Replenish flags two signals automatically: (1) any product with no sales in 60 or more days and stock still on hand, and (2) any product where stock on hand far exceeds what it will sell through before the next natural reorder cycle. Both flags appear alongside your reorder recommendations so you see overstock risk and stockout risk at the same time — in the same view. You can install Replenish free for 14 days to see your store’s dead-stock flags immediately after onboarding.

See your dead stock flags in minutes.

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 Shopify

From $10/mo · 14-day free trial · no credit card required during trial