ABC inventory analysis: when to add XYZ
Two A items can need very different planning. Classify eight stock items by value and demand variation, then see why a cheap spare still needs attention.
Suppose a factory uses €48,000 of label rolls and €32,000 of cartons over a year. In its inventory report, both are A items and get more attention from planning.
The labels move at a steady rate. Carton use is fifteen times as high in December as in January. That difference matters when deciding when to place orders.
ABC inventory analysis groups items by their contribution to a chosen value measure. XYZ adds how much their demand varies over time. Together, they help you decide which items need a closer look and what to look at.
We'll use annual consumption value for ABC: the quantity used over a year multiplied by its unit cost. XYZ will use monthly quantities. Here's how that works for eight fictional stock items.
How to calculate ABC inventory classes
Start with the same 12 months for every item. Calculate each item's annual consumption value, sort from highest to lowest, then work down the list adding up each item's share of the total.
For the label rolls, 12,000 rolls used × €4 per roll = €48,000. Cartons add €32,000. Together, they account for €80,000 of the catalogue's €100,000 annual consumption value.
In this example, A covers the first 80% of value, B the next 15%, and C the remaining 5%. Those are chosen boundaries, not a law about how inventory must behave.
Eight fictional stock items
Where the €100,000 goes
Share of annual consumption value. Items are ranked from highest to lowest.
A: 2 items€80,00080.0% of annual value
B: 2 items€15,00015.0% of annual value
C: 4 items€5,0005.0% of annual value
Inputs and ABC calculation
Annual value = units used × fixed unit cost. All items cover January to December of the same fictional year. Unit cost is per roll, carton, litre, box, battery or fuse as named below. Values describe annual use, not on-hand inventory.
| Item | Units used | €/unit | Annual value | Cumulative | Class |
|---|---|---|---|---|---|
| Label rolls | 12,000 | €4 | €48,000 | 48.0% | A |
| Cartons | 32,000 | €1 | €32,000 | 80.0% | A |
| Tape rolls | 1,200 | €10 | €12,000 | 92.0% | B |
| Stretch film | 600 | €5 | €3,000 | 95.0% | B |
| Cleaning fluid | 200 | €10 | €2,000 | 97.0% | C |
| Glove boxes | 300 | €5 | €1,500 | 98.5% | C |
| Scanner batteries | 10 | €100 | €1,000 | 99.5% | C |
| Drive fuses | 10 | €50 | €500 | 100.0% | C |
Whole-item boundary rule: include the item that reaches or crosses 80% in A, then the item that reaches or crosses 95% in B. Remaining positive-value items are C. Groups can overshoot their cutoffs. Exact ties are ordered by item ID. This small catalogue lands exactly on both default boundaries.
Two of eight items account for 80% of value here. Your catalogue might need ten items or a thousand to reach that share. Don't assign 20% of your items to A just because you've heard of the 80/20 rule.
Also check what your report calls “value.” Ranking annual usage, revenue or current stock value answers different questions. SAP's ABC/XYZ documentation describes several possible bases; this example sticks to annual consumption value.
That ranking gives us a sensible place to focus attention. It doesn't yet explain the difference between the labels and cartons.
What XYZ adds to ABC analysis
XYZ separates items with relatively steady use from items with larger swings. A common calculation is the coefficient of variation, or CV: standard deviation divided by the average. It compares the size of the fluctuations with the item's own usual volume.
For the tape rolls, monthly use repeats 50, 100 and 150. The monthly average is 100 rolls. Standard deviation measures the spread around that average; here, it is about 40.8 rolls. So CV = 40.8 ÷ 100 = 0.408, or 40.8%.
We'll call CV up to 25% X, above 25% through 50% Y, and above 50% Z. These cutoffs are choices too. Under them, the steady label rolls are AX and the cartons are AZ.
Choose a cell below to inspect its items. You can change the boundaries and see which classifications move. The quantities and costs stay the same.
The same catalogue, two ways to group it
Value meets demand variation
Each cell shows all its items. Choose one to see its monthly use.
Illustrative cutoffs. A and B include the item that reaches or crosses each value boundary. C contains the rest.
AZ€32,000 annual value
Monthly average2,666.7 cartons
Monthly CV80.4%
Months with no use0 of 12
Monthly use in cartons. Scale: 0 to 7,500. Each item uses its own scale.
7,500 cartonsDecember use
Hover, tap or focus a bar, or use the month selector. Zero months stay in the calculation.
All monthly data and calculation rules
Fictional units used, January to December. Scroll across the table on a small screen. Each row's unit is named in the first column. Current classes follow the selected cutoffs.
| Item and unit | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | CV | Class |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Label rolls (rolls) | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 1,000 | 0.0% | AX |
| Cartons (cartons) | 500 | 500 | 1,000 | 1,000 | 1,500 | 2,000 | 2,000 | 2,500 | 3,000 | 4,500 | 6,000 | 7,500 | 80.4% | AZ |
| Tape rolls (rolls) | 50 | 100 | 150 | 50 | 100 | 150 | 50 | 100 | 150 | 50 | 100 | 150 | 40.8% | BY |
| Stretch film (rolls) | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 50 | 0.0% | BX |
| Cleaning fluid (litres) | 10 | 20 | 20 | 10 | 20 | 20 | 10 | 20 | 20 | 10 | 20 | 20 | 28.3% | CY |
| Glove boxes (boxes) | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 25 | 0.0% | CX |
| Scanner batteries (batteries) | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 223.6% | CZ |
| Drive fuses (fuses) | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 | 297.3% | CZ |
Mean = sum of 12 monthly quantities ÷ 12. Standard deviation = square root of [sum of (month − mean)² ÷ 12]. CV = standard deviation ÷ mean. Compare unrounded CV with the cutoffs: X includes its upper boundary, Y includes its upper boundary, Z is above it. No seasonal or trend correction is applied.
ABC uses annual quantities × unit cost, descending by value. The boundary-crossing item stays in the earlier class; ties use item ID order. Items with missing months or zero annual value are excluded from the matrix for separate review. A full zero-demand year has undefined CV. This complete catalogue has 0 exclusions.
The labels use 1,000 rolls every month. Cartons rise from 500 to 7,500 a month, with a CV of 80.4%. Both deserve attention because of their annual usage value, but the carton plan needs to explain that rise before carrying an average month forward.
Changing the XYZ cutoffs to 50% and 100% moves cartons from AZ to AY. It hasn't made their demand any easier to plan. It has changed the label we put on the same history.
A Z item isn't automatically hard to forecast
Large swings can have an explanation. A product used mostly before Christmas may vary sharply across the year while following a pattern that helps a planner prepare.
Raw CV counts that seasonal movement as variation. It doesn't check whether a forecast could have anticipated it. SAP's MRP Monitor guide explicitly discusses removing seasonal effects before XYZ analysis for this reason.
Our carton history rises within one year. That's enough to show variation, but it doesn't establish a recurring seasonal pattern. We'd need more history and information about orders, promotions or production plans to explain it.
To judge a forecast, compare predictions made in advance with what happened later. MAPE and WAPE are two ways to measure those errors. CV measures the variation in actual quantities, so it cannot replace that test.
This distinction also matters for Foreviq, the forecasting project I'm working on. A demand class can guide which methods to investigate. It doesn't establish which method will forecast an item best.
Why a cheap spare can still need close attention
The drive fuses sit in CZ: €500 of annual consumption value and ten months with no use. On those two measures, they look like an obvious place to spend less planning time.
Now add one more fact to our fictional example: without a replacement fuse, a machine cannot run. The approved part takes six weeks to arrive, and there is no approved substitute available.
That deserves a separate review, even though its ABC and XYZ classes remain correct.
| Item | What the classification shows | What to check before setting stock |
|---|---|---|
| AX label rolls | High annual value, steady monthly use | Delivery reliability and how often to replenish |
| AZ cartons | High annual value, large monthly swings | Why use rises and whether the next peak can be planned |
| CZ drive fuses | Low annual value, infrequent use | Equipment affected, replacement lead time and approved alternatives |
“C” means a small contribution to the value measure you chose. It doesn't mean the business can comfortably run out of the item. Keep the consequence of a shortage visible alongside the matrix.
Use the classes to choose the next check
Before applying ABC and XYZ to your own list, agree on the site or warehouse, the period and the value measure. Keep units consistent for each item, and record the boundaries so someone else can reproduce the result.
Look at the history behind surprising classifications. Monthly totals can hide weekly swings. A missing month isn't zero demand, and low recorded use may reflect a period when the item was unavailable. The stockout forecasting example shows how that can mislead the next plan.
For items with no use throughout the year, CV has no meaningful denominator. Put them into a separate review for new items, inactive stock or standby spares. Don't quietly label all of them stable X items.
Then use the classes to organise the work: investigate the carton pattern, review replenishment for the labels, and check the fuse's shortage exposure with maintenance. Set reorder quantities and buffers using lead time, uncertainty and the service you need.
Sources and calculation notes
- SAP: ABC/XYZ Analysis. Value-based grouping and variation-based grouping.
- NIST: Coefficient of Variation. Definition, interpretation and sensitivity when the mean is near zero.
- SAP: MRP Monitor, 2024.1. Printed pages 37–39 discuss seasonality and trend; pages 41–42 and 49–51 describe classification options.
All eight items, quantities, costs and shortage conditions are fictional. The example assumes complete monthly records and no supply constraints. Classifications use unrounded values. The calculation panels disclose the boundary rule and all monthly inputs; the cutoffs are illustrative, not a recommended stock policy.