Inventory KPIs exist to change decisions, reorder now, clear that SKU, fix that process, and a number that never changes a decision is decoration. For a small multichannel seller, eight numbers cover the territory; everything else is either derivable from them or vanity.
The eight
1. Inventory record accuracy. Counts matching records within tolerance, from cycle counts. Target: high nineties for A-items. It is the trust metric under every other number, wrong records make every KPI fiction.
2. Days of cover, as a distribution. Not the average, the tails: SKUs under lead time (stockouts forming) and SKUs over 90-180 days (dead stock forming). Watch the two lists, not the mean.
3. Turnover ratio, quarterly. The cash-efficiency read, trended against your own baseline; direction beats level.
4. Sell-through rate on new buys. Units sold over units received in a window (30-60 days) per new SKU or purchase, the earliest verdict on buying decisions, and the input that caps repeat mistakes.
5. Oversell incidents. Count per month, with cause attribution (sync gap, record error, race). Target: zero, and every incident root-caused. This number is why the rest exist.
6. Sync health. Per-channel last-success and failure counts, the observability layer. Not a business metric, the metric that says whether your automation is telling the truth.
7. Dead-stock share. Percentage of inventory value with zero sales in 90+ days. Trend quarterly; a rising share is a buying problem with a start date.
8. Shrinkage rate. Recorded-versus-counted variance per cycle count, with reason codes. Small and stable is a cost; rising is a leak.
The multichannel correction, one more time
Every velocity-derived KPI (cover, turnover, sell-through) must compute on combined cross-channel sales, one pool drained from several doors, the recurring arithmetic. Per-channel KPIs answer channel-mix questions (where does this SKU earn?, the pricing input), but operational decisions run on the totals. Unifystock computes the velocity layer, per-SKU cover, stockout forecasts, oversell-risk flags, sync health, continuously from all connected channels, which is most of this dashboard existing without a spreadsheet.
The vanity list, briefly
- Total inventory value alone: says rich or poor, decides nothing without cover and turnover beside it.
- SKU count: catalogs grow by default; celebrate curation instead.
- Average days of cover: hides both tails, the only parts that matter.
- Fill rate without cause codes: a number to feel bad about, not act on.
Cadence: who looks when
- Continuously, by alerts: low-stock, oversell risk, sync failures, the machine watches, you respond.
- Weekly, ten minutes: cover tails, incidents, new-buy sell-through.
- Quarterly: turnover, dead-stock share, shrinkage trend, ABC re-rank.
The discipline is the split: alerts for the urgent, short weekly reads for the operational, quarterly honesty for the structural. Dashboards fail when everything is checked daily until nothing is.
Common questions
What is the single most important inventory KPI?
Record accuracy, because every other number inherits its honesty. Second: the days-of-cover tails, because they schedule your actual work.
How do I start if I track nothing today?
Turn on the alert layer first (low-stock, sync health), add cycle counts for accuracy, and let a quarter of data accumulate before judging turnover or dead-stock trends.
Should KPIs differ by ABC class?
Targets should: A-items get tighter accuracy tolerance, faster count rotation, and stricter cover floors. The metric definitions stay identical.
Can I run all this from spreadsheets?
Accuracy and shrinkage, yes. The velocity layer decays in spreadsheets within weeks, the continuous inputs are exactly what platforms compute for free.
The dashboard that changes decisions
Sync health computed live from every channel, from $49/month with unlimited orders, with cover tails, oversell-risk flags, and channel mix on the plans above. See pricing.