July 29, 2026
ABC Classification Needs Two Axes
Most ABC implementations work like this: pick a metric — usually annual dollars, sometimes hit count — sort descending, draw lines at 80/95/99, done. A items get attention, C items get neglect, and the whole catalog gets managed according to a single column in a spreadsheet.
The problem is that "important" isn't one question. An item can matter because it moves constantly, or because it carries serious money, and those are different kinds of mattering that call for different handling. One axis forces them into the same bucket.
Where single-axis ABC lies to you
Sort by dollars alone and two item types end up misfiled:
- The high-hit, low-dollar workhorse. A $3 fitting that ships on two hundred orders a year ranks as a C by value — so it gets C-item treatment: loose counts, lazy reorder review, no backup source. But stock out on it and you've disrupted two hundred order lines. Its picking accuracy and availability matter more than most of your value-ranked A items.
- The low-hit, high-dollar sleeper. A $6,000 drive that sells three times a year ranks as an A by value — so the system demands A-item service levels, and the buyer dutifully holds two on the shelf. That's twelve grand parked against three hits, when the right answer was probably one on hand, or none plus a firm vendor commitment.
Sort by hits alone and you get the mirror image: the expensive slow item drops to the bottom of everyone's attention while it quietly becomes your biggest single write-off risk.
The items where usage rank and dollar rank agree mostly manage themselves. The disagreements are where the money and the service failures hide.
The matrix is the point
Classify every item twice — once by usage, once by dollars — and read the combination. AA items are your franchise; nobody mismanages those. The off-diagonal cells are where a two-axis view starts paying:
| | High usage | Low usage | | --- | --- | --- | | High $ | Franchise items — protect availability | Capital risk — cap stock, watch aging | | Low $ | Service backbone — never stock out | The tail — exit candidates |
Each cell implies its own playbook. High-usage/low-dollar items get tight availability and frequent counts, but nobody agonizes over their order quantities. High-dollar/low-usage items get purchase discipline and aging alerts, but chasing a 99% fill rate on them is how dead stock gets born. The tail gets a standing question — why do we stock this at all? — instead of a reorder point.
Cycle counting falls straight out of the same grid: count what's high-usage often because errors there hit many orders, and count what's high-dollar carefully because errors there hit the balance sheet. A single-axis class can't express that both things are true for different reasons.
The takeaway
If your ABC codes come from one sorted column, you're deciding what matters using half the information, and your buyers are already compensating with gut feel — inconsistently, invisibly, one item at a time. Run both rankings, cross them, and manage the cells instead of the letters. The spreadsheet work is an afternoon. The mislabeled inventory it exposes usually isn't.