XYZ analysis

Check how stable demand is

  • Your file never leaves the browser
  • Tens of thousands of rows in seconds
  • Decisions, not a table
  • Any XLSX export
XYZ analyse

What XYZ analysis is

XYZ analysis looks at how even demand is, not at how large it is. For every item it computes the coefficient of variation — the spread of sales across periods relative to the mean. Class X means steady, predictable demand, Y noticeable swings, Z a spread wide enough that a forecast from past periods is unreliable. The default thresholds are 10 % and 25 %, and both are adjustable.

What the file must contain

An XLSX file where every row is an item and the columns are periods: months, weeks, quarters. Two periods is the minimum, but a spread over two points says very little — use a year by month, or at least half a year. Pick the columns in chronological order: the service reads them as a series and cannot guess the order.

Important: merge duplicate rows before uploading. The service does not detect or combine duplicates — an item that appears in the file twice is counted twice, and the shares and classes come out wrong.

What the report contains

The table gains the coefficient of variation CV in per cent and the class X, Y or Z. The summary shows how many items landed in each class, and the recommendations flag seasonal peaks, fading demand, and new arrivals whose series starts with zeros — those must not be mistaken for items on the way out. The report downloads as XLSX.

How it differs from the other analyses

XYZ says nothing about how much an item brings in: a small thing that sells evenly gets an X, while a large but ragged stream gets a Z. Size is what ABC analysis measures. If you need both sides at once — stability and contribution — that is XYZ+ABC, where both letters sit in one code.

CV = σ / μ × 100%

σ
the standard deviation of sales across the periods, population form (÷ N)
μ
average sales per period
CV
the coefficient of variation — how far demand swings around its own average

Classes: X is a CV below 10%, Y below 25%, Z is 25% and above. Both thresholds are set in the wizard before the run.

In Excel the average is AVERAGE and the deviation is STDEV.P: that function treats your periods as all the data there is, not as a sample of something larger.

The other one, STDEV.S, treats them as exactly that — a sample — and divides by the number of periods minus one. On a row of four periods it returns a CV about 15% higher, and an item sitting near a class boundary can end up in the neighbouring class.

A worked example of the coefficient of variation

ItemQ1Q2Q3Q4AverageσCVClass
SKU-10110010498102101.02.22.2%X
SKU-102210190205195200.07.94.0%X
SKU-103320300290310305.011.23.7%X
SKU-104120145100135125.017.013.6%Y
SKU-1058095709083.89.611.5%Y
SKU-1066075457062.511.518.3%Y
SKU-1074065257050.018.436.7%Z
SKU-108305551025.019.778.7%Z
SKU-10915040515.015.4102.7%Z
SKU-110200120260140180.054.830.4%Z

Sales across four quarters, the average, the standard deviation, CV and the class at 10% and 25%.

Questions people ask about XYZ analysis

How do you calculate XYZ analysis in Excel?

For each item compute the average across the periods (AVERAGE) and the population standard deviation (STDEV.P), divide one by the other and turn it into a percentage — that is the coefficient of variation.

Then mark the classes: up to 10% is X, up to 25% is Y, the rest is Z. Here the same computation runs over every row of the file at once, and the classes come back alongside your original table.

Why 10% and 25%?

They are the usual boundaries: below 10% the swing in demand is ordinary noise, above 25% purchasing against the average stops working. Both thresholds are set in the wizard before the run.

CV does not depend on the scale of sales, so an item selling in the hundreds and an item selling in single units compare fairly.

How many periods does the file need?

Three at the very least, six to twelve in practice: the shorter the row, the more one outlier moves the CV. The four quarters in the table above are there for readability.

Periods must be consecutive and of equal length — months with months, weeks with weeks. A period with no sales is better written as a zero than left empty.