Dead Stock: The Aged Inventory Quietly Eating Your Open-to-Buy
Carrying dead stock costs 20 to 30% of its value a year. Get aging windows by category, the aged inventory share benchmark, and the transfer-or-liquidate decision.
See how Ward detects aged and dead inventory
Get a demo → Take the 3-minute assessmentContents
- Dead stock is cash you can't spend, sitting where you can't see it
- How to define dead and aged stock
- The carrying cost stack is bigger than you think
- Why dead stock accumulates
- Aging thresholds and dead stock benchmarks
- The liquidation decision
- Prevention beats every liquidation channel
- How Ward surfaces this
- Key takeaways
Dead stock is cash you can't spend, sitting where you can't see it
Every dollar locked in inventory that is not selling is a dollar that is not in inventory that would. That is the whole case against dead stock, and it is more expensive than most operators treat it. The cash is real, the shelf it occupies is real, and the open-to-buy it consumes is the budget you needed for fresh product that actually moves.
The problem is that dead stock does not announce itself. A SKU that sold fine last spring quietly stops moving, and nothing in the daily reports flags it. It just sits. Most retailers do not find the full extent of it until annual physical count, by which point the markdown is steep and the season is long gone.
Dead stock is a slow leak, not a blowout. It does not show up as a bad day. It shows up as an open-to-buy that is always tighter than it should be and a backroom that is always more crowded than the sales justify.
This post is about finding it early, costing it honestly, understanding why it builds up, and deciding what to do with it before it is terminal.
How to define dead and aged stock
Start with a clear definition, because "old inventory" is too vague to act on. Dead stock is units with no sales over a defined window, commonly 60, 90, or 180 days depending on your category's normal turn. Aged stock is the broader pool: inventory that is moving far slower than its category should and is heading toward dead.
The cleanest way to operationalize this is aging buckets by SKU and store. Group on-hand units by how long they have sat without a sale: 0 to 30 days, 31 to 60, 61 to 90, 91 to 180, and over 180. The over-90 and over-180 buckets are where the money is trapped. Watching the buckets fill over time tells you the trend, not just the snapshot.
Pair the buckets with weeks of supply. A SKU with 40 weeks of supply and near-zero velocity is dead even if it sold one unit last month. Weeks of supply against actual recent velocity catches the slow bleeders that a pure zero-sales rule misses. A SKU does not have to hit absolute zero to be a problem, it just has to carry far more cover than its sales will ever consume.
Set the windows by category. Sixty days of no movement means something very different for fast fashion than for hardware or seasonal goods. The bucket logic stays the same, the thresholds flex by how the category normally turns.
The carrying cost stack is bigger than you think
Operators tend to see dead stock as a sunk cost they already paid for, so leaving it on the shelf feels free. It is not free. It carries a cost every month it sits, and that cost stacks from several sources.
First is capital. The cash you paid the supplier is trapped in that unit instead of earning a return or buying sellable goods. Second is space: every dead facing and every dead backroom case is square footage and handling labor spent on product that generates nothing. Third is obsolescence and shrink: the longer it sits, the more it ages out, gets damaged, goes out of style, or simply disappears.
Fourth, and the one that ends the story, is the eventual markdown. Dead stock almost never sells at full price. It sells at 40, 60, 80 percent off, or it gets liquidated for pennies. The realized loss was building the whole time it sat looking like an asset on your balance sheet.
Industry estimates put the annual cost of carrying inventory at roughly 20 to 30 percent of the inventory's value once you add capital, storage, handling, insurance, shrink, and obsolescence. On dead stock that number is effectively pure loss, because there is no sales velocity on the other side of the cost to justify it.
Why dead stock accumulates
Dead stock is rarely one bad decision. It is the residue of normal operations going slightly wrong in a few repeatable ways, and naming them helps you prevent the next batch.
Over-buying is the most common source. A volume discount, a vendor minimum, an optimistic forecast, and you commit to more units than the velocity supports. The excess never sells through, and what is left becomes the tail that sits.
Broken assortments are the second. You sell through the popular sizes, colors, or variants and you are left with the odd ends: the XS and XXL, the unpopular color, the off-flavor. The remaining units are technically in stock but functionally unsellable as a set, and they age in place.
See how Ward detects aged and dead inventory
Get a demo →Phantom inventory is the quiet one. Your system shows units on hand that are not really there, or are there but mislocated, and that wrong count suppresses reordering and masks real demand. The flip side also bites: real units sitting dead in one store while the system treats total chain inventory as fine, so nobody acts on the local pile.
The common thread is that all three hide. Over-buys, broken assortments, and phantom counts do not trip any alarm. They accumulate below the level of the reports anyone actually reads, which is why they surface all at once at count.
Aging thresholds and dead stock benchmarks
The bucket logic is universal. The thresholds are not. A no-sale window that signals death in fast fashion is a normal quiet month in hardware. Set the windows from each category's normal turn, or the report will flag half your assortment and nobody will read it twice.
| Category | Dead stock window | Aged watch window | Healthy aged inventory share | Problem line |
|---|---|---|---|---|
| Grocery, non-perishable | 30 days no sale | 14 days | Under 2% | Above 4% |
| Convenience | 45 days | 21 days | Under 3% | Above 6% |
| Fashion, in-season | 60 days | 30 days | Under 5% | Above 10% |
| Home improvement | 120 days | 60 days | Under 6% | Above 12% |
| Furniture | 180 days | 90 days | Under 8% | Above 15% |
| Specialty and hardline | 120 days | 60 days | Under 6% | Above 12% |
The metric to put on a scorecard is aged inventory share: inventory value past the dead window divided by total inventory value at cost. It is one number, it trends, and it is hard to argue with. Most mid-market chains that measure it for the first time land two to three times higher than they guessed.
Track it monthly by store and by category. The chain number tells you the size of the problem. The store-category cut tells you where it is, and it is almost never spread evenly. A handful of store-category cells usually hold a disproportionate share of the trapped capital, which is also what makes the transfer play work.
The liquidation decision
Once a SKU is genuinely dead, leaving it on the shelf is the expensive choice. The carrying cost keeps running and the realizable value keeps falling. The decision is not whether to clear it, it is how, and the right answer depends on where the unit is and whether demand exists somewhere.
Markdown cadence is the first lever. A disciplined, stepped markdown that starts earlier and moves faster usually recovers more total cash than a deep one-time clearance at the bitter end. The instinct to "hold for full price a little longer" is what turns a 20 percent markdown into an 80 percent one. Earlier and smaller beats later and brutal.
Inter-store transfers are the most overlooked move. A SKU dead in one store is often selling fine in another. Moving units from the dead location to the live one clears the carrying cost and captures a full-margin sale instead of a markdown loss. This only works if you can see the same SKU's velocity across all your stores at once, which is precisely the view most chains lack.
Jobbers and liquidators are the floor option for what genuinely will not sell anywhere in your network. You will recover pennies on the dollar, but pennies recovered plus the freed space and capital beats zero recovered while it rots. Reserve this for the over-180 bucket that has no transfer home and no markdown that will move it.
Prevention beats every liquidation channel
The cheapest dead stock is the unit you never bought. Tighten the open-to-buy discipline so a volume discount has to clear a sell-through bar, not just a margin bar. Cap exposure on slow categories and unproven items so a single optimistic buy cannot create a season of tail.
Then catch the aging early, while a markdown of 10 or 20 percent still moves the unit. The difference between prevention and liquidation is mostly timing. The same SKU costs you a small markdown at 60 days and a jobber's pennies at 200, and the only variable is how early you saw it.
How Ward surfaces this
The reason dead stock is found at annual count is structural. Velocity lives in one system, on-hand lives in another, and no single report puts the two together at the SKU-store level early enough to act. By the time the gap is obvious, the inventory is terminal.
Ward is a read-only observability platform for multi-store retailers. We watch the POS, ERP, and inventory data you already generate and tell you where cash is quietly getting stuck. We do not run your buying and we do not move your stock. The model is detect, decide, execute, audit.
Ward detects aging inventory by SKU and store while you can still do something about it, not at count. It watches the aging buckets fill and the weeks of supply climb against falling velocity, and it flags the units crossing from slow into dead. The most useful detection is the transfer candidate: the SKU that is dead in one store and selling in another, the single pattern that turns a markdown loss into a full-margin sale. You decide the move, because your team knows the stores. Your team executes the transfer or the markdown on your systems. Then Ward audits whether the liquidation actually worked, did the markdown clear the units, did the transfer sell through at the new store, or did you just relocate the problem.
Markdowns, POs, and transfers all stay in your hands. Ward names the units going dead, points at the ones that have a home in another store, and comes back afterward to say whether the clearance actually freed the cash you expected. The buyer who owns the open-to-buy makes every call in between.
You get insight cards, not another dashboard to monitor. One card, one SKU-store, the size of the trapped capital, and the move worth considering. That is something a buyer can act on this week, while the inventory is still worth more than pennies.
Key takeaways
- Dead stock eats your open-to-buy. Every dollar trapped in inventory that won't sell is a dollar not in fresh product that would, and the cash, shelf, and backroom space are all real costs.
- Define it with aging buckets and weeks of supply, by SKU and store. Group on-hand units by days without a sale and flag the over-90 and over-180 buckets, with thresholds that flex by how each category normally turns.
- The carrying cost stack runs 20 to 30 percent of value a year. Capital, space, handling, obsolescence, and the eventual markdown all compound, and on dead stock that cost is effectively pure loss.
- It accumulates from over-buying, broken assortments, and phantom inventory. All three hide below the reports anyone reads, which is why the full extent only surfaces at annual count when it is too late.
- Set the windows by category. Dead means 30 days without a sale in non-perishable grocery, 60 in in-season fashion, 120 in home improvement and specialty, and 180 in furniture. One universal window flags half the assortment and gets ignored.
- Put aged inventory share on the scorecard. Inventory value past the dead window over total inventory at cost. Healthy is under 2% in grocery and under 8% in furniture. Chains measuring it for the first time typically land two to three times higher than they guessed.
- The liquidation decision is how, not whether. Earlier stepped markdowns beat a deep one-time clearance, inter-store transfers capture full-margin sales, and jobbers are the floor for what won't sell anywhere.
- Transfer candidates are the most overlooked recovery. A SKU dead in one store and selling in another is a full-margin sale you only catch if you can see velocity across all stores at once.
- The view only exists when velocity and on-hand meet at the SKU-store level. Ward detects aging stock before it is terminal, flags transfer candidates, and audits whether liquidation worked, read-only, lane assist not autopilot.
See how Ward detects aged and dead inventory
Ward monitors your stores 24/7 and delivers insight cards, not dashboards. First cards in 48 hours.