Dead stock sits on your balance sheet at cost while it quietly costs you 20–30% of its value a year to hold. Here's how to spot it early, value it properly and clear it through the route that brings back the most cash, including when ads are worth it.
On this page
Dead stock is inventory that has stopped selling and isn't going to start again on its own: last year's gift set, the colourway nobody wanted, the 2,400 extra units you took to hit a supplier's minimum order. It sits on your balance sheet at what you paid for it, which is exactly why it's easy to ignore, and it costs you money every month it stays there.
Most guides stop at "forecast better". This one covers the other half: which clearance route brings back the most cash, how much you can spend on ads to move it, and when to stop hoping a line will come back.
What is dead stock?
Dead stock is product you've bought or made but can't sell. Shopify defines it as inventory that hasn't sold for a long period and is unlikely to sell at full price. In practice, a SKU becomes dead stock when it hasn't sold for a set number of days and there's no realistic reason to expect demand to come back.
There's no official number of days. Set a threshold per category: 90 days for fast-moving fashion, 180 for most DTC catalogues, 12 months for slow sellers like furniture. Then check one thing first: did it sell in the same window last year? Christmas stock in September is out of season, not dead.
Dead stock vs slow-moving, overstock and obsolete inventory
These terms get used interchangeably, but they're different problems, and they tend to happen in order.
| Term | What it means | Typical test | What to do |
|---|---|---|---|
| Slow-moving inventory | Still sells, but slower than planned | Sell-through below target for its age | Stop reordering deep and watch it weekly |
| Overstock (excess inventory) | More units than you can sell in the time you have | Days of cover above your limit, e.g. 120 days | Push it while it still sells: ads, bundles, email |
| Dead stock | Has stopped selling | No sale within your threshold, e.g. 180 days | Clear it through the route that recovers the most margin |
| Obsolete inventory | Can never sell at full price again | Expired, discontinued or replaced by a new version | Write it down to net realisable value, then clear or dispose of it |

Every step costs you margin. The cheapest dead stock to fix is the overstock you spotted three months earlier.
What dead stock really costs
Your balance sheet shows what you paid. The real cost has five parts, and only one of them is on that line.
- Cash tied up. $12,000 of dead stock at cost is $12,000 you can't put behind the products and ads that are working.
- Carrying costs. Storage, insurance, handling, shrinkage and the cost of capital. Shopify's guide to inventory carrying costs works an example out at 26% of inventory value a year. Yours: total annual carrying costs ÷ average inventory value.
- Storage and 3PL fees. Dead stock pays rent every month, and some 3PLs charge more as stock ages.
- Write-downs. Under IAS 2 and US GAAP (ASU 2015-11), stock is valued at the lower of cost and net realisable value. Once a line will only sell at clearance prices, the loss belongs in this year's numbers. Your accountant decides when to book it.
- Opportunity cost. The space, attention and cash that could be backing your best seller. Often the biggest cost, and it's on no report.
A worked example
Illustrative numbers: 600 units of a gift set, $20 landed cost, $48 full price. That's $12,000 at cost, and nothing has sold for 180 days.
Option A: wait a year. At a 25% carrying cost that's $3,000 a year. Then a liquidator pays $5 a unit, so $3,000 comes back. You've lost the lot.

Option B: act now. Send a private 20% offer to buyers of the related hero product and bundle the rest with it. If 360 units go that way at about $28.50 each after fulfilment, and the last 240 go to a liquidator at $5, you get about $10,700 back after three months of carrying cost. Same stock, roughly $10,700 better off.
How to find dead stock
You need numbers per SKU, valued at cost. Five formulas do the job:
- Days since last sale = today − date of the last order with the SKU.
- Days of cover = units on hand ÷ average units sold per day. Shopify's "Days of inventory remaining" report shows N/A for variants with no sales in 28 days. Start there.
- Sell-through rate = units sold ÷ (units sold + units on hand), as in Shopify's inventory reports.
- Dead stock % = the value at cost of SKUs past your threshold ÷ total inventory value at cost.
- Annual carrying cost = inventory value at cost × your carrying cost rate.

A simple dead stock report
- Export units on hand and cost per item for every variant, plus each variant's last sale date and units sold in the last 30 days.
- Grade each SKU: dead if days since last sale is past your threshold, overstocked if days of cover is above your limit, slow if sell-through is below target.
- Sort by value at cost, not units, and check last year's same window so seasonal stock isn't called dead.
Here's what the output looks like, with illustrative SKUs:
| SKU | On hand | Unit cost | Value at cost | Days since last sale | 30-day sell-through | Days of cover | Status |
|---|---|---|---|---|---|---|---|
| Gift set, Cedar | 600 | $20 | $12,000 | 184 | 0% | N/A | Dead stock |
| Linen shirt, XXL | 420 | $14 | $5,880 | 9 | 3% | 970 | Overstocked |
| Wool throw, Sage | 310 | $31 | $9,610 | 2 | 12% | 220 | Overstocked |
| Hero serum, 50ml | 1,900 | $6 | $11,400 | 0 | 38% | 49 | Healthy |
The linen shirt is the one to watch. It still sells, so it never trips a "no sale in 180 days" alert, but 970 days of cover is dead stock in all but name.
StoreHero builds this view automatically from your Shopify data: every product graded from stockout to dead stock, valued at cost, with seasonal stock separated out. Because it sits next to your margin and ad spend, it also shows which overstocked, high-margin lines to push with ads and which ads to pull. See how the inventory checks work, or run the free Daily inventory actions prompt in Claude or ChatGPT.
How to get rid of dead stock, ranked by margin recovered
The money you paid is gone whatever you do. Judge every option on the cash it brings back after its own costs, not on what you paid. A sitewide sale is usually the most expensive route, because it discounts customers who'd have paid full price (when and how to discount). Ranked using the same example, with $8 of fulfilment per order:

| Option | Margin recovered (example) | Speed | Brand risk |
|---|---|---|---|
| Email or SMS to the right segment | Highest: about $29 per $20 unit | Days | Low: a private offer |
| Bundle with a hero product | High: about $28, rides on demand you already have | Weeks | Low |
| Retargeting ads to past viewers | Medium: about $18 after ad cost | Days to weeks | Low to medium |
| Marketplace or outlet | Medium to low: about $16 after fees | Weeks | Medium: the discount becomes public |
| Off-price or wholesale buyer | Low: about $13 | One deal | Medium: you lose control of where it's sold |
| Liquidator | Very low: about $5 | Fast | Medium to high |
| Gift with purchase | No cash, but can replace a discount | Weeks | Low |
| Donation | No cash, tax relief depends on where you are | Fast | Positive |
| Write-off | None, booked as an expense | Immediate | None |
The cost is sunk. Pick the clearance route that brings back the most cash after its own costs, and decide within weeks, not at year-end.
1. Email and SMS to the right segment
Don't blast your whole list. In Klaviyo, segment people who bought the related hero product or viewed this one, and send them a private offer. It moves stock without resetting the price everyone else sees.
2. Bundle it with a hero product
Pair the dead SKU with your best seller so it rides on demand you already have, and it ships in the same box. On Shopify, product bundles need a bundles app. Don't attach it to a hero that's about to sell out.
3. Retargeting ads to people who've already shown interest
On Meta, put only clearance SKUs in a product set and run Advantage+ catalog ads to people who viewed or carted them. On Google, tag them with a Merchant Center custom label so you can bid on them separately.
Use a clearance break-even, not your usual one. A $36 sale at 25% off, less $8 fulfilment, leaves $28. Against the $20 book cost that's a break-even ROAS of 4.5, but the $20 is sunk and the alternative is $5 from a liquidator, so you can spend up to $23 a sale: a break-even ROAS of about 1.6 (break-even ROAS calculator). Keep it to retargeting, cap the budget and set an end date.
4. Marketplace or outlet
Amazon or an outlet page keeps clearance prices off your main site. Fees eat margin, so give it an end date.
5. Off-price or wholesale buyers
One deal clears the lot. Fast, but you lose control of where your product turns up and at what price.
6. Liquidation
Pallet buyers pay a small fraction of retail. Use it once the better routes have had a time-boxed go.
7. Gift with purchase
Swap a discount you'd run anyway for a free dead-stock item. 10% off a $60 order costs $6; a product with a $48 price tag costs you about the $5 a liquidator would pay, and feels like more. Shopify's buy X get Y discount won't add the gift to the cart automatically without an app.
8. Donate it
It clears space and does some good, and the tax treatment depends on where you are: see HMRC's guidance in the UK and section 170(e)(3) in the US. Check with your accountant.
9. Write it off
Write it down to zero (or disposal value) and dispose of it. At least the carrying cost stops.
How to stop dead stock coming back
- Buy smaller first runs. A higher unit price on a test run is cheaper than writing off the extra units.
- Set reorder points from real lead times. Average daily sales × lead time in days + safety stock.
- Plan stock alongside your ad spend. Units needed depend on spend behind them. Use our ad spend forecast guide and free forecast template.
- Track inventory turnover monthly. It shows whether the catalogue is speeding up or slowing down (how to calculate inventory turnover).
- Review stock weekly, at cost, and push high-margin overstock with ads before it goes stale.
- Check seasonal lines before Q4 against last year's sell-through (see our Black Friday profit plan).
- Judge SKUs on contribution margin, not revenue. A line that loses money after fulfilment and ads is dead stock waiting to happen (contribution margin per product).
Grade every product from stockout to dead stock, value it at cost, and see which ads to pull and which overstocked, high-margin lines to push. Free prompt for Claude, ChatGPT or any MCP-compatible AI tool.
Key takeaways
- Dead stock is inventory that has stopped selling. There's no official day count, so set a threshold per category (for example 90, 180 or 365 days) and check last year's season first.
- Its real cost is more than the number on the balance sheet: cash tied up, carrying costs of roughly 20–30% a year, storage fees, write-downs and opportunity cost.
- Find it per SKU, valued at cost: days since last sale, days of cover, sell-through rate and dead stock %.
- The cost is sunk. Clear it through the route that recovers the most cash after its own costs: owned channels and bundles first, liquidation last.
- Clearance ads need their own break-even, measured against the next best option (such as a liquidator), not the original cost.
- Stop it recurring with smaller first runs, reorder points from real lead times, and a demand forecast built alongside your ad plan.
Frequently asked questions
What is a dead stock?
Dead stock is inventory a business has bought or made but can't sell. A product usually counts as dead stock once it hasn't sold for a set number of days (often 90 to 365, depending on the category) and there's no realistic reason to expect demand to return.
How to identify dead stock?
Check every SKU for days since its last sale, days of cover (units on hand divided by average daily sales) and sell-through rate, then value the results at cost. Anything past your no-sale threshold is dead stock. Before you act, compare with the same window last year so seasonal stock isn't mistaken for dead stock.
What are some examples of dead stock?
Common examples are last season's colourways and odd sizes, gift sets and limited editions after their date, products replaced by a new version, old packaging after a rebrand, leftovers from supplier minimum orders, returns that can't be resold as new, and stock that is close to its expiry date.
Is it deadstock or dead stock?
Both spellings are used. In inventory and accounting, dead stock (usually two words) means stock you can't sell. In fashion and sneaker resale, deadstock (one word) means new, never-worn items in original condition, which buyers see as a plus.
What is another word for dead stock?
Dead inventory, unsold inventory and obsolete inventory are common alternatives. Obsolete inventory is the stricter term: stock that can never be sold at full price again because it has expired, been discontinued or been replaced.
What is the problem with overstock?
Overstock ties up cash, adds storage and carrying costs, and usually ends in discounting. Left alone, overstock turns into dead stock, so the cheapest time to act is while it still sells, through ads, bundles or email to the right customers.
What do stores do with unsold inventory?
Stores typically email or text a targeted offer, bundle it with best sellers, run retargeting ads, list it on marketplaces or outlet pages, sell it to off-price buyers or liquidators, give it away as a gift with purchase, donate it, or write it off. The best order is by how much cash each route brings back after its own costs.
Sources
- Shopify: What is dead stock
- Shopify: Inventory carrying costs
- IFRS Foundation: IAS 2 Inventories
- FASB ASU 2015-11, Simplifying the Measurement of Inventory (PwC Viewpoint)
- Shopify Help Center: inventory reports
- Shopify Help Center: product bundles
- Shopify Help Center: buy X get Y discounts
- Klaviyo Help Center: getting started with segments
- Meta Business Help Center: about Advantage+ catalog ads
- Google Merchant Center Help: custom labels
- HMRC Business Income Manual BIM45155: gifts of trading stock to charities
- 26 U.S. Code § 170 (Cornell LII)




