Notes

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.

ALabel rolls€48,000 48.0%
ACartons€32,000 32.0%
BTape rolls€12,000 12.0%
BStretch film€3,000 3.0%
CCleaning fluid€2,000 2.0%
CGlove boxes€1,500 1.5%
CScanner batteries€1,000 1.0%
CDrive fuses€500 0.5%

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.

Annual inputs and cumulative value
ItemUnits used€/unitAnnual valueCumulativeClass
Label rolls12,000€4€48,00048.0%A
Cartons32,000€1€32,00080.0%A
Tape rolls1,200€10€12,00092.0%B
Stretch film600€5€3,00095.0%B
Cleaning fluid200€10€2,00097.0%C
Glove boxes300€5€1,50098.5%C
Scanner batteries10€100€1,00099.5%C
Drive fuses10€50€500100.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.

Fictional catalogue, January to December of one year. Values are annual quantities used multiplied by fixed unit costs. They are not the value of stock currently on hand. Open the calculation table for inputs and cumulative shares.

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.

XCV ≤ 25%
Y25% < CV ≤ 50%
ZCV > 50%

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.

All 12 months, quantities in each item's unit
Item and unitJanFebMarAprMayJunJulAugSepOctNovDecCVClass
Label rolls (rolls)1,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0001,0000.0%AX
Cartons (cartons)5005001,0001,0001,5002,0002,0002,5003,0004,5006,0007,50080.4%AZ
Tape rolls (rolls)5010015050100150501001505010015040.8%BY
Stretch film (rolls)5050505050505050505050500.0%BX
Cleaning fluid (litres)10202010202010202010202028.3%CY
Glove boxes (boxes)2525252525252525252525250.0%CX
Scanner batteries (batteries)000050000500223.6%CZ
Drive fuses (fuses)001000000009297.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.

Fictional example using the same eight items and 12 months. ABC measures annual consumption value; XYZ measures variation in monthly units. No trend or seasonal adjustment is applied. A critical-spare flag is kept separate from both classifications.

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.

Calculate safety stock and the reorder pointOnce you've reviewed an item's demand and delivery conditions, work through how they affect the amount to keep and when to order.

Sources and calculation notes

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.

NextDemand forecasting during stockouts: sales aren't demand

Working on something like this?

I work with operations and transformation teams on operational excellence, digital transformation programs, supply chains and industrial AI. If this sounds like your line, your program or your problem, I’d be glad to compare notes.

Abolfazl ShirkavandImage preview unavailable