ABC Analysis in Inventory Management with XYZ Matrix and Worked Example
Metrics · 8 min read
Create your account in a minute · no card required
Nothing you paste is stored.
The scan could not run.
SKUs, scroll for the rest
A live preview of Storekeeper's forecasting engine on fictional sample dataon the rows you pasted. The full product connects to your POS and store and runs this continuously.
ABC analysis ranks your inventory by annual consumption value and splits it into three classes: A items, the roughly 20 percent of SKUs that carry about 80 percent of the value; B items, the middle 30 percent carrying about 15 percent; and C items, the long tail of half your catalog that carries the last 5 percent. The point is unequal attention on purpose: tight control, frequent counts and careful forecasting for A items, and cheap, low-touch autopilot for C items.
It works because inventory value is always lopsided. Nobody's catalog is uniform; a handful of SKUs dominate the money in every business we have ever seen. Treating all SKUs identically means your best seller gets the same attention as a box of shelf pegs, which shortchanges one and gold-plates the other.
What is ABC analysis in inventory management?
It is an application of the Pareto principle (the 80/20 rule) to stock control. Vilfredo Pareto noticed in the 1890s that a small share of causes produces most of the effect; inventory obeys the same law. ABC analysis formalizes it: compute each SKU's annual consumption value, sort descending, and draw two lines through the cumulative total. Everything above the 80 percent line is class A, everything between 80 and 95 percent is class B, and the rest is class C. The thresholds are conventions, not physics; some operations use 70/90, others add a D class for items with no movement at all.
How do you calculate ABC analysis?
The formula is one multiplication:
Annual consumption value = annual demand (units) × unit cost
Then five steps:
- Pull 12 months of demand per SKU from your sales or usage history.
- Multiply each SKU's demand by its unit cost to get consumption value.
- Sort all SKUs by consumption value, highest first.
- Compute the running cumulative percentage of total value.
- Cut at 80 percent (A/B line) and 95 percent (B/C line).
Use demand, not on-hand stock. Ranking by what sits on the shelf rewards your worst purchasing mistakes: the pile of slow movers looks valuable precisely because it never leaves.
A worked example
A ten-SKU shop, sorted by consumption value:
| SKU | Annual units | Unit cost | Consumption value | Cumulative % | Class |
|---|---|---|---|---|---|
| Espresso machine X1 | 420 | $310 | $130,200 | 44% | A |
| Grinder Pro | 610 | $140 | $85,400 | 73% | A |
| Roasted beans 1kg | 2,900 | $11 | $31,900 | 84% | B |
| Milk pitcher steel | 1,150 | $16 | $18,400 | 90% | B |
| Filter papers 100pk | 2,400 | $6 | $14,400 | 95% | B |
| Tamper 58mm | 380 | $19 | $7,220 | 97% | C |
| Cleaning tablets | 900 | $5 | $4,500 | 99% | C |
| Cup set of 6 | 210 | $14 | $2,940 | 99.7% | C |
| Descaler bottle | 150 | $4 | $600 | 99.9% | C |
| Spare gaskets | 90 | $3 | $270 | 100% | C |
Two SKUs out of ten carry 73 percent of the money. That is the whole argument for the method, in one table. If your history lives in a database rather than a tidy export, you can get this ranking by querying it in plain English instead of writing the SQL yourself; in a spreadsheet it is one SORT and one running SUM.
What to actually do with each class
Classification without consequences is a coloring exercise. The classes earn their keep in the policies:
| Policy | A items | B items | C items |
|---|---|---|---|
| Forecasting | Per-SKU, reviewed by a human | Automated, reviewed on exception | Simple rules (min/max) |
| Service level target | High: 97 to 99% | Middle: 92 to 95% | Modest: ~90%, accept occasional gaps |
| Safety stock | Calculated from real variability | Calculated, cruder inputs are fine | Flat buffer or none |
| Count frequency | Monthly to quarterly | Quarterly to twice a year | Once or twice a year |
| Ordering | Frequent, smaller orders; supplier terms negotiated hard | Standard reorder points | Big, infrequent orders; minimize admin per order |
The service-level row is where the money moves. Holding 99 percent service on everything is ruinously expensive because safety stock grows steeply with the service target. ABC lets you buy 99 percent where it pays for itself and 90 percent where nobody will notice. Count frequency flows straight into your cycle counting schedule, which is the other place this classification does daily work.
What are the disadvantages of ABC analysis?
Four real ones, and they all have the same shape: consumption value is not the only thing that matters.
- It ignores criticality. A $3 gasket is a C item until the espresso machines you sell cannot be demonstrated without it. Items whose absence stops revenue or production deserve an override class regardless of value.
- It ignores margin. Consumption value is computed on cost. A cheap SKU with a fat margin and a loss-leader with a huge cost rank in the wrong order relative to what they earn you.
- It ignores volatility. Two SKUs with identical value can need completely different handling if one sells steadily and the other in unpredictable spikes. Pairing ABC with an XYZ volatility classification fixes this: an AZ item (high value, wild demand) is your hardest problem and a plain ABC run will not flag it.
- It goes stale. Products trend, seasons turn, a C item goes viral. A classification from last January is a photograph, not a feed. Re-run it at least quarterly, and watch the borders: the interesting SKUs are the ones that just crossed a line. A B item drifting downward on velocity is also your earliest dead stock warning.
ABC vs XYZ analysis
XYZ classifies items by how predictable their demand is, usually measured with the coefficient of variation: the standard deviation of periodic demand divided by mean demand. X items have low variation and sell at a steady rate. Y items vary more, but in a pattern you can see and plan around, typically seasonality or a clear trend. Z items are irregular, with sporadic orders and no reliable pattern.
| Class | Typical variation | Demand pattern | Forecast accuracy |
|---|---|---|---|
| X | Low (roughly under 0.5) | Steady, week after week | High, simple methods work |
| Y | Moderate (roughly 0.5 to 1.0) | Seasonal or trending | Fair, if the pattern is modeled |
| Z | High (roughly above 1.0) | Sporadic, lumpy, one-off orders | Poor, plan with buffers instead |
Those thresholds are conventions, not laws. Set them from your own data by looking at where the distribution of variation naturally breaks, and keep them stable long enough to compare periods.
ABC answers "how much does this item matter to my money?" XYZ answers "how confidently can I predict it?" The first is about value concentration, the second about forecastability. They use different inputs (annual consumption value versus demand variability) and they change at different speeds: ABC bands are fairly stable, while an item can slide from X to Z in a quarter if its demand pattern breaks.
The ABC-XYZ matrix
Cross the two and you get nine cells, each with a sensible default policy. This is where the analysis stops being an academic exercise and starts changing what you order.
| Cell | Profile | Sensible policy |
|---|---|---|
| AX | High value, steady demand | Your best candidates for lean, frequent replenishment and low safety stock |
| AY | High value, seasonal or trending | Forecast the pattern explicitly, build ahead of the peak, review weekly |
| AZ | High value, erratic | The hardest cell: shorten lead times, hold buffer, consider made-to-order or supplier consignment |
| BX / BY | Mid value, predictable enough | Automate with reorder points and review monthly |
| BZ | Mid value, erratic | Modest buffer, watch for items sliding into dead stock |
| CX / CY | Low value, predictable | Order in larger, infrequent batches; automate fully and stop thinking about them |
| CZ | Low value, erratic | Candidates to discontinue, stock minimally, or order only against a customer order |
How to run an ABC-XYZ analysis
Pull at least twelve months of demand history by SKU so seasonality is visible. For ABC, multiply annual units by unit cost, sort descending, take the running share of total value and cut at your chosen thresholds. For XYZ, break the same history into equal periods (weeks or months), calculate the mean and standard deviation of demand per SKU, divide to get the coefficient of variation, and band the result. Then join the two labels per SKU and count how many items land in each of the nine cells.
Two practical cautions. Use demand, not shipments: if you were out of stock, the sale you never made is missing from the history and the item looks calmer than it is. And exclude one-off bulk orders from the variability calculation, or flag them separately, because a single large contract order will push an otherwise steady item into Z.
Where software takes over
A spreadsheet ABC run is a fine first pass, and for a static catalog it may be enough. It stops being enough when the classification needs to drive things automatically: reorder points that tighten when an item crosses into class A, count lists that regenerate as classes shift, safety stock that recomputes per class policy. That is mechanical work, and it is exactly the kind of arithmetic forecast-driven inventory software should do for every SKU, every day, without being asked. The classification is the easy hour; living by it is the part worth automating.
See this math run itself
The free stock scan computes cover, safety stock and verdicts per SKU on sample data or rows you paste. No signup.
Run the stock scanMore from the stockroom
- Buying guide Cin7 vs Unleashed Pricing for Wholesalers
- Buying guide Fishbowl vs QuickBooks Enterprise Pricing
- Buying guide Lightspeed POS Pricing and Lightspeed Retail Cost per Plan
- Buying guide Sumtracker Pricing and Cost per Plan
- Buying guide Ordoro Pricing and Cost per Plan for Shipping and Inventory
- Buying guide StockTrim Pricing and Cost by Revenue Band
- Buying guide Prediko Pricing and Cost by Revenue Band with Add-Ons
- Buying guide Sellbrite Pricing, Sellbrite Cost, Plans and Order Limits
- Buying guide Finale Inventory Pricing and Contract Terms
- Buying guide SOS Inventory Pricing and What Add-ons Cost
- Buying guide Veeqo Pricing and Cost per Month by Order Volume
- Buying guide inFlow Pricing and What the App Costs
- Buying guide Unleashed Pricing and Cost per Month
- Buying guide Zoho Inventory Pricing and Order Limits
- Buying guide Katana Pricing and Katana MRP Add-on Costs
- Buying guide Fishbowl Pricing and Software Add-on Costs
- Buying guide Cin7 Pricing for Core, Omni and Add-ons
- Working capital How to Value Inventory for Taxes (Methods, Rules and COGS)
- Practice Consignment Inventory and How It Works
- Practice Par Level Inventory and How to Set Par Levels
- Practice How to Reduce Supplier Lead Time (9 Practical Ways)
- Working capital What Is Landed Cost? Formula, Components and How to Calculate It
- Practice Just-in-Time Inventory (JIT) Explained
- Practice What Is a SKU? Stock Keeping Unit Meaning, Examples and How to Set One Up
- Metrics What Is a Good Inventory Turnover Ratio? (Benchmarks by Industry)
- Practice How to Reduce Inventory Carrying Cost (6 Practical Levers)
- Practice How Much Safety Stock Should You Hold? (Formula and Service Levels)
- Practice How to Sync Inventory Across Multiple Sales Channels
- Practice How to Reduce Inventory Without Causing Stockouts
- Metrics Days of Inventory on Hand (DIO) Formula, Benchmarks and How to Lower It
- Practice Inventory Optimization Techniques to Cut Stock Without Stocking Out
- Practice Perpetual vs Periodic Inventory Systems
- Working capital Inventory Shrinkage Formula, Causes and How to Reduce It
- Working capital Inventory Carrying Cost Formula, Percentage and How to Lower It
- Practice Cycle Counting Methods, What It Is and How Often to Count
- Metrics Inventory Turnover Ratio Formula, Benchmarks and What Good Looks Like
- Formulas Economic Order Quantity (EOQ) Formula and When to Trust It
- Practice Inventory Management in Excel, How to Build It and When to Stop
- Formulas Reorder Point Formula and Min Max Inventory Levels
- Working capital Dead Stock and How to Clear It
- Lost sales Stockouts and How to Avoid Them in 7 Steps