Inventory 6 min read

Build a Dead Stock Early Warning System Before You Need It

By the time you realize a SKU is dead stock, the damage is done. Here's how to set up signals that fire 6 to 10 weeks before the problem locks up your cash.

Dead stock early warning dashboard showing velocity trend lines and flagged SKUs

Dead stock in DTC is almost never a sudden event. It's a slow accumulation — a SKU that was moving at 60 units a month in March, then 42 in April, then 31 in May — and nobody updated the reorder point to reflect the new reality. By the time the SKU is visibly dead (zero velocity, 200 units on hand, three-digit days of inventory), the cash is already locked up and the options are limited to markdowns, bundling at cost, or donation write-offs.

The goal of a dead stock early warning system is to catch that trajectory at week 4-6, not week 16. At week 4, you have options. You can run a targeted email campaign to engaged buyers of that SKU. You can offer a bundle deal with a high-velocity SKU to clear inventory while protecting margin. You can reduce the reorder quantity on the next production run before it's confirmed. At week 16, all of those options are mostly closed — the inventory is already there, and the choices are increasingly painful.

The Two Signals That Predict Dead Stock Early

Signal 1: Velocity Decline Rate

The most reliable leading indicator of dead stock isn't low velocity — it's the rate of velocity decline over consecutive periods. A SKU selling 80 units/month in period 1, 78 in period 2, and 75 in period 3 has a minor wobble that's probably noise. A SKU going 80 → 55 → 32 has a structural problem that will produce dead stock in 60-90 days if it continues at the same trajectory.

To calculate this, you need rolling 4-week velocity tracked over at least 3 periods. Divide the most recent 4-week velocity by the average of the prior two periods. A ratio below 0.7 (i.e., current velocity is less than 70% of the recent average) is a meaningful decline signal worth flagging. A ratio below 0.5 is a serious alert.

This calculation doesn't require sophisticated software. A basic spreadsheet formula comparing rolling averages will catch it. What most brands lack is not the math — it's the habit of checking it weekly rather than quarterly.

Signal 2: Days of Inventory On Hand Relative to Trend-Adjusted Velocity

Days of inventory on hand (DIOH) is typically calculated as: on-hand units divided by average daily sales velocity over the prior 30 days. But that 30-day average is backward-looking. If velocity is declining, the forward-looking DIOH is actually worse than the historical calculation suggests.

A more accurate forward DIOH uses the velocity trend: take your current velocity and apply the decline rate to project forward. If a SKU is running at 2.1 units/day today but declining at 15% per month, your effective forward velocity in 6 weeks is closer to 1.5 units/day — and your projected DIOH is 30-40% higher than the historical calculation would show.

This forward-adjusted DIOH is the number that should trigger your alert. When a SKU's projected DIOH exceeds 120 days (roughly speaking, a 90-day at-risk threshold plus your supplier lead time), you have a developing dead stock situation that deserves attention now.

Building the Alert Thresholds

The practical alert system has three tiers:

Yellow alert (watch): Velocity decline ratio 0.65-0.75 over two consecutive periods, AND forward DIOH between 90-120 days. Flag for weekly monitoring. No action required yet, but someone should be watching it.

Orange alert (act): Velocity decline ratio below 0.65, OR forward DIOH above 120 days. Requires a specific response decision within 7 days: bundle opportunity, promotional plan, reorder reduction, or channel reallocation (e.g., redirect Shopify inventory to Faire wholesale to accelerate clearance).

Red alert (crisis): Velocity decline ratio below 0.5 AND forward DIOH above 150 days. This SKU is on a path to dead stock within 60-90 days at current trajectory. Options are limited and getting more expensive. Markdown depth needed to clear in 30 days is likely 30-50%+ depending on price point and margin.

A Scenario: Where Early Warning Changes the Outcome

Take a home fragrance brand doing $4.5M in annual DTC revenue, with 28 active SKUs including a seasonal candle collection. In early February they launched a limited spring candle line with 6 scents, initial buy of 800 units across the 6 SKUs at $11.40 landed cost per unit. By the first week of March — 5 weeks post-launch — two of the six scents are running at 12-15 units/week (solid) and four are running at 3-5 units/week (below expectation).

The forward DIOH on the four slow-movers is already above 130 days. If they're still slow in week 8, by early April, the forward DIOH will be 200+ days and the spring window will be closing. Running a 25% off flash sale to the Shopify email list in week 6 — when the slow-movers still have perceived freshness — will clear 40-60% of the at-risk units at a manageable margin hit. Running the same campaign in week 14 when the products are visibly old news generates far less conversion and requires a 40-50% discount to move meaningful units.

The dollar difference: clearing 300 units at 25% markdown versus 300 units at 45% markdown, at a $36 MSRP and $11.40 COGS, is roughly $2,900 in contribution margin. On a $9,100 inventory investment, that's a 32% variance in outcome from detecting the problem 8 weeks earlier.

Channel Reallocation as a Dead Stock Response

One option that DTC brands often overlook is using wholesale channels to accelerate clearance of at-risk inventory. A SKU that's losing velocity on Shopify may still be attractive to independent boutiques via Faire — especially if it's a genuinely good product that hasn't found its DTC audience yet. Wholesale at 50% of MSRP with a full margin contribution might look worse than Shopify on paper, but it's vastly better than a 40% markdown on Shopify that also signals to your Shopify customer base that this product has demand problems.

We're not saying wholesale is always the answer for at-risk inventory — it depends entirely on whether the product has the right profile for independent retail and whether the wholesale margin is positive enough to justify the channel setup cost. We're saying it's a legitimate lever that should be in the decision framework, not an afterthought.

What the System Actually Requires to Work

The early warning system described above works only if three conditions are met. First, you have clean per-SKU velocity data by week — not just monthly Shopify totals, but weekly units-sold by SKU. Second, you have accurate on-hand inventory figures that reflect wholesale commitments, not just raw counts. And third, someone is actually looking at the signals weekly and authorized to make the promotional or reorder decision when a SKU hits orange alert.

The third condition is the one that breaks most often. The alert can fire, the data can be right, but if the founder is deep in a product launch or a Faire campaign and nobody has the bandwidth to act on the signal, the 7-day window passes and the inventory situation worsens. Dead stock early warning systems fail as process problems more often than as data problems.