XYZ analysis
A method of classifying SKUs by how predictable their demand is — X (stable), Y (moderately variable), Z (erratic) — so planning effort and stock policy match each product's predictability.
By Oana Bradulet
XYZ analysis sorts your products by how predictable their demand is, not how much they sell. X items have stable, regular demand. Y items vary — there's a pattern, but it's looser. Z items are erratic: demand jumps around with no reliable shape.
The point is to match your effort to the product. You can plan an X item almost on autopilot. A Z item will fight every forecast you throw at it, so the work goes elsewhere — more cover, more caution, more human judgement.
It's the natural partner to ABC analysis, which sorts by value. ABC tells you what matters; XYZ tells you what's predictable. Cross the two and you get a planning map for the whole range.
How it's calculated
XYZ is built on demand variability — specifically the coefficient of variation (CV), the standard deviation of demand divided by the average demand, measured over a representative stretch of history.
CV = standard deviation of demand ÷ average demand
A CV of 0 means demand never moves. A CV of 1 means the swings are as big as the average itself. The higher the number, the harder the product is to forecast.
Common starting thresholds:
- X — CV below ~0.5 (stable, predictable)
- Y — CV 0.5 to 1 (moderately variable)
- Z — CV above 1 (erratic)
Treat those as a sensible starting point, not gospel. The right cut-offs depend on your category and how long a history you're measuring over. A fast-fashion range will sit higher across the board than a core basics range, so the same thresholds won't mean the same thing in both. Adjust them so the classes actually separate your products in a useful way.
What each class means in practice
X — forecast reliably. Demand is regular, so the forecast does its job. You can run lean safety stock, automate replenishment, and spend almost no manual attention here. These are the products that let the system do the work.
Y — moderate buffer, periodic review. There's a pattern, but it's looser, so you carry a bit more cover and check in on a regular cycle rather than trusting the forecast blindly. Not high-maintenance, but not set-and-forget either.
Z — accept the noise. Forecasting will struggle on Z items however good the model is, because the unpredictability is a property of the product, not a flaw in the maths. Hold more cover, order more cautiously against MOQs so you don't commit to a big batch of something that may not sell, and accept that on these lines, attention beats algorithms. A buyer who knows the product will outperform any forecast here.
The ABC × XYZ matrix
This is where XYZ earns its place. Cross the value classification (ABC) with the predictability classification (XYZ) and you get a 9-box that tells you how to treat every product:
- A-X — automate and protect. High value, predictable. The best of both worlds: forecast them reliably, keep them in stock, and let replenishment run automatically. These products fund the business and rarely surprise you.
- A-Z — the danger zone. Important and unpredictable. Stockouts hurt because the product matters; overstock hurts because the cash is significant. Both failure modes are expensive, and the forecast can't be trusted to prevent either. This box deserves the team's attention more than any other.
- C-Z — rationalisation candidates. Low value, erratic, and demanding to manage. Often not worth the shelf space, the cash, or the planning effort. The matrix flags these as the first place to look when you're trimming the range.
The remaining boxes sit between these extremes — B-Y items on steady review, A-Y items watched a little more closely, C-X items left to run on their own. The value of the matrix is that it stops you applying one policy to everything: your attention flows to the A-Z corner, your automation to the A-X and B-X corner, and your range reviews to the C-Z corner.
Why it beats a single classification
Sorting by value alone tells you a Z item is important but not that it's unpredictable — so you plan it like a stable bestseller and get caught out. Sorting by predictability alone tells you a product is erratic but not whether it's worth worrying about — so you spend time on a C-Z item that should simply be discontinued.
XYZ and ABC together give you the two facts that actually drive a stock policy: how much the product matters, and how much you can trust the forecast. Once you have both, the policy almost writes itself.
Common mistakes
- →Classifying once and never refreshing it. Products mature — a new line that read as erratic last year may be a stable X this year. Re-run the classification as demand patterns settle.
- →Using too short a history window, so a single promotion or spike reads as volatility and pushes a stable product into Y or Z.
- →Treating a Z classification as a forecasting failure. Erratic demand is a property of the product, not a flaw in the model — the answer is more cover and judgement, not a better algorithm.
- →Applying one safety stock policy across all classes. The whole point of XYZ is that X, Y, and Z need different amounts of buffer.
How Lumina handles XYZ analysis for scaling brands
Lumina classifies your products by variability — the X/Y/Z view — alongside their importance, and uses both in its safety stock recommendations: stable bestsellers run lean and automated, while unpredictable, important lines get the buffer and attention they need.
Frequently asked questions
What is XYZ analysis?
How is XYZ calculated?
What's the difference between ABC and XYZ analysis?
What thresholds should I use?
What should I do with Z items?
Related terms
ABC analysis
A method of classifying SKUs by their relative importance — usually revenue or margin — into A (vital few), B (middle), and C (long tail) buckets, so each gets the right level of planning attention.
Demand variability
How much demand bounces around its average — the input that determines how much safety stock you need to hit a target service level.
Safety stock
Extra stock held above expected demand to absorb forecast error and lead-time variability without stocking out — expressed either as units or as time (days/weeks of cover). Same buffer, two units.
Bottom-up forecast
A demand forecast built from the bottom up — at SKU, channel, and location level from actual sales history — then aggregated upward. Unconstrained: it estimates what demand would be, before stock, budget, or supply constraints are applied.