SkuSense

Dead stock: the decision nobody made

· 4 min read

People search "dead stock" while staring at a shelf report they do not believe. The store is profitable. The warehouse is full. Cash is somehow always tight. The three facts do not feel related, and they are the same fact: profit parked in units that stopped moving, still priced as if they might.

Nobody decides to hold dead stock. It accumulates from small non-decisions. A reorder that landed as the trend cooled. A colour that missed. The size curve that was wrong by one size. Each row is too small to be a meeting, so no meeting happens, and the pile compounds.

The fix is not a clearance instinct. It is a definition, a threshold, and a monthly decision each row cannot escape.

One stock-value bar split into moving cover, slow excess past 120 days, and a dead remainder with no sales in 90 days.

When is stock dead

"Has not sold in a while" is a feeling. Pick lines you can compute:

  • Slow: cover beyond your planning horizon. More than 120 days of inventory on a row is cash doing nothing for two quarters.
  • Dead: effectively zero sell-through across a full demand cycle. Fewer than a handful of units sold in 90 days, on a row you actually stocked and displayed.
  • Trapped: technically selling, but only because it is bundled, discounted, or propping a free-shipping threshold. Contribution near zero. This is dead stock with better manners.

Compute at variant grain. A product can look alive while every sale is one size. The dead sizes hide behind the live one, exactly the way averages hide the answer in turnover.

Season matters: 200 days of cover on swimwear in March is a plan, in September it is a problem. Thresholds bend by category. The discipline is that each category has one, written down.

What holding it actually costs

The invoice was paid long ago, so the pile feels free. It is the most expensive shelf in the building.

Storage is billed monthly whether the unit moves or not; at typical 3PL rates a slow pallet quietly eats the margin of the fast one beside it. The cash is unavailable for the reorder of the size that is about to go out of stock. The eventual markdown is deeper the longer you wait, because the audience that wanted the product at any price shrinks. And the analytics rot: every dead variant makes reports longer, filters noisier, and forecasts trained on the catalogue slower to see what is real.

Write the carrying number once: storage per unit per month, plus your margin on the cash if it were in the best-selling row instead. Most stores land somewhere near 2 to 3% of unit cost per month. That number turns "we'll sell it eventually" into arithmetic. Eventually has a price per month.

The monthly read

  1. Export variants with on-hand units, unit cost, and 90-day sales.
  2. Flag rows past your slow and dead thresholds. Value each flagged row at cost.
  3. Total it. That figure is the dead stock position, and its trend month over month matters more than its level.
  4. Force each flagged row through one of four doors. Hold, with a named reason and a date it will be re-read. Push, at full price: better photos, a bundle with a bestseller, an email feature. Cut, at a markdown sized to actually clear, once. Kill: donate, liquidate, write it off and reclaim the space.
  5. Log the door and the date. Next month, a row that failed its push goes through a cheaper door. No row gets to stay flagged with no decision twice.

The four doors are the point. Dead stock persists because holding is the default that requires no signature. The read exists to remove the default.

Buying the next pile right now

The current pile came from earlier buys. The next one is being ordered this month. Every dead row carries a lesson about how it got in: bought too deep past the trend, size curve wrong at the edges, a reorder that duplicated cover because two channels double-counted the same units. That last one is a sync failure wearing a buying mistake.

Spend ten minutes per monthly read tagging the cause on newly flagged rows. Three months of tags is a buying policy written by your own mistakes, which is the only kind that sticks.

What's missing

This page can give you thresholds, the carrying arithmetic, and the four doors. It cannot flag the row that crossed 120 days last Tuesday or remember which door you chose in June. That is your catalogue, your costs, and your history, read every month without fail.

SkuSense is being built to keep that ledger for Shopify brands: the flagged list, the cash it holds, the trend, and the decision log each row cannot escape.

Related: Days of inventory outstanding · What is a good inventory turnover ratio? · Demand forecasting for ecommerce

Get the next piece in your inbox