Перейти к содержимому
Ко всем статьям
Статья

XYZ-анализ продаж: как отличить стабильный спрос от колебаний

Формула коэффициента вариации и три проверяемых примера. Как учесть сезонность, нулевое среднее и дни без товара, прежде чем решать, что закупать.

Что показывает XYZ-анализ

XYZ-анализ отвечает на вопрос, насколько ровно менялись продажи товара за выбранные интервалы. Он дополняет ABC-анализ: ABC ранжирует позиции по вкладу в выручку или другой выбранный показатель, XYZ — по вариации спроса. Поэтому товар AX может одновременно давать большую выручку и продаваться стабильно, а CZ — давать небольшой вклад и продаваться рывками.

Результат зависит от периода, интервала и правил обработки пропусков. Четырёх недель достаточно, чтобы показать формулу, но не чтобы уверенно прогнозировать закупку.

Формула коэффициента вариации

Для учебного расчёта считаем наблюдаемые недели всей анализируемой совокупностью:

1. Среднее значение: μ = сумма продаж / число интервалов. 2. Стандартное отклонение совокупности: σ = √(Σ(xᵢ − μ)² / n). 3. Коэффициент вариации: CV = σ / μ × 100%.

Если выбран другой вариант стандартного отклонения, результат немного изменится. В таблице ниже везде делим сумму квадратов отклонений на n, а не на n − 1.

Продажи за четыре неделиСреднее μσ совокупностиCV
10, 10, 10, 101000%
5, 15, 5, 1510550%
0, 0, 20, 201010100%

Проверка второго ряда: отклонения от среднего — −5, 5, −5, 5; квадрат каждого равен 25. Среднее квадратов 100 / 4 = 25, корень — 5. В третьем ряду сумма квадратов отклонений равна 400, 400 / 4 = 100, корень — 10.

Как читать результат

Чем выше CV, тем менее равномерны наблюдения относительно среднего. Границы X, Y и Z компания выбирает под свои процессы. В документации SAP для отдельной настройки приведены, например, пороги 25% и 50%; это пример конфигурации системы, а не обязательный стандарт для магазина.

Перед классификацией зафиксируйте:

  • одинаковую длину интервала: день, неделю или месяц;
  • одинаковое окно анализа и единицу измерения — штуки, заказы или выручку;
  • какие продажи учитываются: возвраты и отмены должны обрабатываться последовательно;
  • были ли дни отсутствия товара, закрытия точки, акция или сезонный пик.

Нули при отсутствии товара не обязательно означают нулевой спрос. Пометьте интервалы дефицита отдельно: иначе XYZ покажет регулярность фактических продаж при доступном остатке, а не поведение спроса, который магазин мог бы обслужить. Акции и сезонность тоже лучше рассматривать в отдельной группе или в сопоставимых сезонах.

Если среднее μ = 0, коэффициент вариации не определён: делить на ноль нельзя. Не присваивайте такому товару автоматически «100%» — отметьте отсутствие продаж и разберите историю отдельно. Для редких продаж с большим числом нулевых периодов среднее может быть близко к нулю, поэтому CV становится крайне чувствительным; рядом сохраняйте сами значения и число периодов с продажами.

Рабочая таблица для магазина

SKUНедели в окнеНедели без товараСреднееCVКонтекстРешение к проверке
A-0110 / 10 / 10 / 100100%обычный сезонпроверить текущий запас
B-025 / 15 / 5 / 1501050%промо в неделях 2 и 4пересчитать без промо
C-030 / 0 / 20 / 20110100%дефицит в первых неделяхвосстановить доступность

Добавьте к таблице дату расчёта, единицу продаж и выбранные пороги. Решение о запасе принимайте вместе с ABC-классом, сроком поставки и стоимостью дефицита. Один CV не говорит, сколько товара заказывать и когда.

Для оценки ценности ассортимента отдельно сопоставьте результат с ABC-анализом меню: он отвечает на вопрос о вкладе позиции, тогда как XYZ — о стабильности временного ряда.

Короткий порядок расчёта

1. Выберите одинаковые интервалы и окно, например восемь недель. 2. Подготовьте ряд продаж по каждому SKU и отметьте дефицит, закрытия и акции. 3. Рассчитайте среднее и стандартное отклонение одним и тем же методом для всех товаров. 4. Получите CV; при среднем ноль отметьте показатель как неопределённый. 5. Примените собственные пороги, проверьте исключения и пересматривайте классификацию по мере изменения сезона.

XYZ — способ описать вариативность истории, а не готовый прогноз. Короткий ряд, потерянные продажи и сезонные пики требуют отдельной проверки до решения о закупке.

Пороговые группы полезно откалибровать на собственной истории: возьмите несколько завершённых окон, посмотрите, какие товары фактически требуют одинакового режима пополнения, и только затем закрепите границы X/Y/Z. Не подбирайте порог задним числом под желаемую букву. Если меняется длина периода или частота замеров, классификацию пересчитайте и подпишите дату версии.

После стабильности проверьте и денежный вклад товара: для этого подходит оборачиваемость запасов магазина, которая отвечает на иной вопрос — как быстро запас превращается в продажи. Ни CV, ни скорость оборота отдельно не описывают полную экономику позиции.