ABC XYZ ANALYSIS

ABC-XYZ Inventory Analysis: A Step-by-Step Guide

By Jason Osajima — former VP of AI at a $250M manufacturer · LinkedIn ·
Quick answer

A step-by-step ABC XYZ analysis guide for manufacturers: the nine-box matrix, thresholds, CV math, and the policy to run for each segment.

ABC-XYZ inventory analysis is a two-axis method that classifies every SKU by both its annual consumption value (ABC) and its demand variability (XYZ), then crosses the two into a nine-box grid. ABC tells you what's worth money; XYZ tells you what's predictable. The grid tells you, part by part, exactly how tightly to control it and how to forecast it. I ran this at a $250M furniture manufacturer, and it was the single highest-leverage planning exercise we did, because it turned "we have an inventory problem" into "we have a problem in these three boxes."

This guide walks the full method end to end: the data you pull, the thresholds that actually work, the math behind each axis, and the policy you attach to each of the nine segments.

What ABC and XYZ each measure

They answer two different questions, and you need both.

ABC alone leads you astray. A high-value A-item that's wildly erratic needs a completely different policy than a high-value steady item, even though plain ABC lumps them together. XYZ is the missing axis, and it's the one most mid-market planners skip.

Step 1 — Run the ABC classification

Pull 12 months of consumption per SKU. Multiply annual usage quantity by unit cost to get annual usage value. Sort descending, then compute the cumulative percentage of total value down the list.

Standard thresholds look like this:

Class Share of SKUs Share of value
A ~10–20% ~70–80%
B ~20–30% ~15–20%
C ~50–70% ~5–10%

Don't religiously force 80/15/5. Look at where the cumulative curve actually bends and cut there. In our furniture BOM, A-class was a few hundred SKUs out of several thousand, and it carried most of the tied-up cash. Those are the parts where a 1% holding improvement is real money, and where a stockout halts a line.

Why dollars, not units

Rank by usage value, never by quantity. A box of #8 wood screws moves in the thousands and barely registers in cash. A single upholstered seat frame moves slowly but ties up real working capital. McKinsey's work on the balance sheet is blunt about this: raw materials, WIP, and finished goods are usually the largest single use of working capital, and cash that should fund growth gets stuck on the shelf. Value-ranking is what surfaces that cash.

Step 2 — Run the XYZ classification

For each SKU, take monthly demand over the same 12 months. Compute the coefficient of variation:

CV = Standard Deviation of Demand ÷ Mean Demand

Then bucket each part:

Class CV range Demand pattern Forecastability
X < 0.5 Stable, low fluctuation High — forecast tightly
Y 0.5–1.0 Trending or seasonal Medium — model the pattern
Z > 1.0 Erratic, sporadic, lumpy Low — buffer or make-to-order

A CV of 0.2 means demand barely moves month to month, so you forecast it and trust the number. A CV of 1.5 means demand is all over the place; no forecast saves you, so you manage it with buffer stock or by not stocking it at all. The 0.5 and 1.0 cutoffs are conventions, not laws, so adjust them if your data clusters elsewhere.

The intermittent-demand trap

SKUs that sit at zero most months and spike occasionally will throw a high CV and land in Z. That placement is correct, but a naive forecast that averages all those zeros into a meaningless mean is not. These belong to a separate diagnostic axis: average inter-demand interval (ADI) alongside CV². Kostenko and Hyndman (2006) split demand into smooth, erratic, intermittent, and lumpy using roughly ADI 1.32 and CV² 0.49 as the dividing lines.

For genuinely intermittent parts, use intermittent-demand methods. The original is Croston's method (1972), which forecasts demand size and the interval between demands separately instead of smoothing one lumpy series. It carries a known upward bias, which the Syntetos–Boylan approximation (2005) corrects with a simple deflating factor. Our deep dive on forecasting intermittent demand for spare parts walks the math.

Step 3 — Build the nine-box matrix

Cross the two axes and every SKU lands in one of nine cells:

X (steady) Y (variable) Z (erratic)
A (high value) AX AY AZ
B (mid value) BX BY BZ
C (low value) CX CY CZ

This grid is the whole point. The top-left (AX) is the dream segment: high value, dead predictable, easy to squeeze. The top-right (AZ) is where you bleed: expensive parts with unpredictable demand, the hardest combination in your catalog. Most of your planning energy should aim at the top row.

Step 4 — Attach a policy to each box

Classification without policy is a colorful spreadsheet. Here's what to do with each segment.

The pattern across the grid is simple: forecast effort goes up-and-left, buffer-and-ignore goes down-and-right. Don't run MRP gymnastics on a CZ washer. Don't run a two-bin system on an AX motor.

Set safety stock by segment, not by gut

Each box implies a different safety-stock posture. AX wants a thin, formula-driven buffer tied to a high service target; AZ wants a deliberate strategic buffer or none at all if you flip to make-to-order. The mechanics of turning a service-level target and demand variability into a number live in our guides on how to calculate safety stock and how to calculate reorder point. The segment decides the policy; those formulas decide the quantity.

What this actually fixes

Here's why the exercise earns its keep at a real manufacturer.

McKinsey frames the upside in cash terms: better demand signaling and tighter segmentation can cut slow-moving stock and release trapped working capital without hurting service. ABC-XYZ is the cheapest first step toward that, because it costs you a spreadsheet and a day, not a software project.

Run it on a cadence, not once

SKUs migrate across the grid. A new product climbs from C to A. A maturing one moves from Y to X as demand settles. A discontinued line drifts into Z. Re-run the full classification quarterly and you'll catch parts whose policy no longer fits before they turn into excess or a stockout.

The failure mode is doing this once in a consulting engagement, printing the matrix, and never refreshing it. Within two quarters it's stale. Push the calculation into your planning system so it recomputes automatically, and have your team review only the movers between boxes each quarter.

Where AI changes the picture

The classification itself is plain statistics, so don't over-buy tooling for it. Where machine learning earns its place is on the AY and AZ rows, where pattern-rich or lumpy demand is hard for a human or a moving average. McKinsey reports that AI-driven forecasting can cut supply-chain forecasting errors by 20 to 50 percent and reduce lost sales from unavailability by up to 65 percent. We map where it pays off in AI inventory optimization for mid-market manufacturers.

A worked example

Say a plant has 4,000 active SKUs. ABC puts ~600 in class A (most of the dollars), ~1,000 in B, ~2,400 in C. XYZ then splits each band by CV.

Segment Approx SKUs Policy in one line
AX 220 Auto-replenish, 98% service, thin buffer
AY 240 Seasonal model, monthly review
AZ 140 Make-to-order or VMI, escalate
BX–BZ 1,000 Reorder points; automate X, model Y, buffer Z
CX–CZ 2,400 Min-max / two-bin, set and forget

The leverage is obvious: 140 AZ parts get human attention, 2,400 C parts get none. That reallocation, not any single forecast, is the win.

Frequently asked questions

What is the difference between ABC and ABC-XYZ analysis?

ABC analysis ranks SKUs on a single axis: annual consumption value, splitting them into high (A), medium (B), and low (C). ABC-XYZ adds a second axis for demand variability, measured by the coefficient of variation, so each part also gets an X, Y, or Z. Crossing the two produces a nine-box grid that distinguishes, for example, a high-value predictable item (AX) from a high-value erratic one (AZ) that ABC alone would treat the same.

How do you calculate the coefficient of variation for XYZ analysis?

Take 12 months of demand for the SKU, compute the mean and the standard deviation of those monthly figures, then divide the standard deviation by the mean. NIST defines this ratio as the coefficient of variation. A CV below 0.5 is typically X (stable), 0.5 to 1.0 is Y (variable), and above 1.0 is Z (erratic), though you can shift the cutoffs to fit how your data clusters.

What are typical ABC and XYZ thresholds?

For ABC, A items are roughly 10–20% of SKUs carrying 70–80% of value, B items are ~20–30% of SKUs and ~15–20% of value, and C items are the long tail. For XYZ, the common cutoffs are CV below 0.5 for X, 0.5 to 1.0 for Y, and above 1.0 for Z. Treat all of these as starting points and cut where your own cumulative-value curve actually bends.

How often should you re-run an ABC-XYZ analysis?

Quarterly is the practical cadence for most mid-market manufacturers. SKUs migrate across the grid as products launch, mature, season, and get discontinued, so a once-a-year refresh leaves policies attached to parts that no longer fit them. Automate the recomputation in your planning system and review only the SKUs that changed boxes since the last run.

How should I handle intermittent or lumpy demand items?

Intermittent parts (zeros most months, occasional spikes) correctly land in the Z column, but don't forecast them by averaging zeros into a flat mean. Use intermittent-demand methods such as Croston's method (1972) or the bias-corrected Syntetos–Boylan approximation, which model demand size and demand interval separately. For diagnosing which parts qualify, the Kostenko–Hyndman (2006) categorization using inter-demand interval and squared CV is the cleaner rule.

Let's see what's worth building first.

A 15-minute call: tell me where your AI or planning is stuck, and I'll tell you the one thing worth building first — and whether it's worth doing at all.

More field notes

How to Reduce Excess and Obsolete Inventory FastInventory Turnover Ratio: Formula and BenchmarksMulti-Echelon Inventory Optimization Explained SimplyService Level vs Fill Rate: Definitions and Trade-offs