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

Как посчитать коэффициент вариации продаж по неделям, где взять данные в Ozon Seller, какие недели выкинуть из расчёта, где проходят границы групп X, Y и Z и как превратить букву группы в конкретный страховой запас в штуках и решение по рекламе.

Два товара за квартал продали по 520 штук — и это два совершенно разных товара. Первый уходит по 40 штук в неделю, все тринадцать недель подряд, под него можно считать поставку в уме. Второй три недели стоит мёртвым грузом, потом за выходные улетает двести штук, и вы либо ловите out of stock, либо держите склад, набитый на месяц вперёд. Средние продажи одинаковые, решения — противоположные. XYZ-анализ разделяет эти два случая одной цифрой, и считается он за десять минут в любой таблице. Ниже — откуда брать данные, какие недели выкидывать, где проходят границы групп и как из буквы X, Y или Z получить конкретное число штук страхового запаса.

Что меряет XYZ и почему без него ABC врёт

ABC отвечает на вопрос «сколько товар приносит», XYZ — «насколько ровно он это делает». Первый ранжирует по величине, второй по предсказуемости. Товар из группы A с рваным спросом и товар из группы A с ровным требуют разных денег в запасе при одинаковой выручке — и именно на этом чаще всего горят поставки.

Мера предсказуемости — коэффициент вариации (CV): стандартное отклонение продаж, делённое на среднее. Он безразмерный, поэтому товар с продажами по 5 штук в неделю можно честно сравнить с товаром по 500. CV 8 % — можно планировать; CV 90 % — среднее значение не значит почти ничего, и планировать надо диапазоном, а не точкой.

Данные: какие недели брать и что из них вырезать

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

Глубина — 12–16 недель для обычного товара. Больше года брать не стоит: спрос меняется, и вы получите вариацию не товара, а собственной истории. Для сезонки горизонт другой — считать нужно по неделям внутри сезона, иначе «мёртвое лето» у новогоднего товара даст CV 200 % и бесполезный вывод.

Данные лежат в разделе аналитики кабинета: выгрузка по товарам с группировкой по неделям, метрика — заказано штук, не доставлено. Доставка размазывает пик на 3–7 дней и сглаживает картину, а спрос возникает в момент заказа. Названия отчётов Ozon периодически меняет — проверьте актуальное в базе знаний Ozon Seller, суть же одна: нужен ряд «неделя → количество» по каждому SKU.

Дальше чистка, без которой весь расчёт превращается в мусор:

  • Недели с нулевым остатком. Ноль продаж из-за out of stock — это не спрос, это ваша ошибка. Такую неделю исключают из ряда, иначе товар из X уезжает в Z.
  • Недели акций и распродаж. 11.11, чёрная пятница, глубокая скидка по собственной инициативе — считаются отдельно, под них планируют отдельный запас.
  • Первые 3–4 недели новой карточки. Пока карточка набирает показы и отзывы, ряд растёт, и это тренд, а не колебание.
  • Недели с резким изменением цены — своей или конкурента. Вы меряли не спрос, а реакцию на цену.

Правило простое: вырезаете точку — записываете почему. Если вырезанных недель больше четверти ряда, считать нечего, расширяйте период.

Формула и расчёт за десять минут

CV = стандартное отклонение ÷ среднее × 100 %. В Google Таблицах и Excel это одна строка: =СТАНДОТКЛОНП(B2:N2)/СРЗНАЧ(B2:N2)*100. Берите именно генеральную версию отклонения (СТАНДОТКЛОНП, в англоязычной версии STDEVP) — вы считаете по всему собранному периоду, а не по выборке из него. Выборочная СТАНДОТКЛОН.В на ряду из 13 недель даст цифру примерно на 4 % больше: мелочь, пока товар не стоит вплотную к границе группы. Главное — выбрать одну формулу и считать весь ассортимент ею, иначе сравниваете несравнимое.

Как это выглядит на реальных рядах — четыре наших SKU. Восемь недель здесь для компактности таблицы, в работе берите 12–16:

Товар Продажи по неделям, шт Среднее Откл. CV Группа
Набор губок 42 · 45 · 39 · 44 · 41 · 43 · 40 · 46 42,5 2,3 5 % X
Органайзер 60 · 48 · 72 · 55 · 80 · 64 · 51 · 70 62,5 10,4 17 % Y
Коврик в ванную 30 · 20 · 38 · 18 · 33 · 41 · 22 · 38 30,0 8,4 28 % Y
Подарочный набор 12 · 3 · 28 · 7 · 41 · 5 · 19 · 9 15,5 12,3 79 % Z

Разница между первой и последней строкой — это разница между «заказываю по формуле» и «каждый раз угадываю». При этом по выручке набор губок и подарочный набор могут оказаться в одной группе ABC: 42 штуки по 300 рублей и 15 штук по 900 дают сопоставимые деньги.

Проверьте себя

Товар продавался по неделям: 20, 24, 18, 160, 22, 19, 26, 21 штука. Коэффициент вариации по сырым данным — 118 %. Куда относить товар?

Границы X, Y и Z и почему их стоит двигать под себя

Классические границы пришли из промышленной логистики: X — до 10 %, Y — 10–25 %, Z — выше 25 %. На маркетплейсе с его акциями, буст-кампаниями и скачками выдачи эти пороги отправляют в Z половину ассортимента, и анализ перестаёт что-либо разделять. Рабочие границы для Ozon мягче.

Группа CV Что это значит Страховой запас Поставка Реклама
X до 15 % Ровный спрос, среднее работает 1–3 дня продаж По формуле, можно автоматизировать Основной бюджет, ставки стабильные
Y 15–50 % Сезонность, тренд, реакция на акции 5–10 дней продаж Расчёт + поправка на сезон Бюджет двигается вместе со спросом
Z выше 50 % Разовые всплески, предсказать нельзя 10+ дней или FBS вместо запаса Малыми партиями, руками Только если каждая продажа окупается
Нет данных ряд короче 8 недель Новинка, считать нечего По аналогу из своей категории Минимальная партия Тест с жёстким лимитом

Границы стоит подобрать так, чтобы в X попало 20–40 % ассортимента. Если в X один товар из пятидесяти — порог слишком жёсткий для вашей категории, поднимайте. Если в X попали три четверти — опускайте, иначе группа ничего не выделяет. Это не подгонка результата: абсолютное значение CV не имеет смысла само по себе, смысл имеет только разделение вашего ассортимента на управляемые кучки.

Страховой запас: из буквы в штуки

Здесь XYZ окупается. Страховой запас закрывает не средний спрос, а отклонение от него на время поставки:

Страховой запас = z × σ дневных продаж × √(срок поставки в днях)

σ дневных продаж грубо получается из недельной: разделить на 2,65 (это √7). Приближение неточное, но для запаса достаточное. Коэффициент z — ваш уровень сервиса: 1,28 закрывает примерно 90 % ситуаций, 1,65 — 95 %, 2,0 — почти 98 %. Для товаров группы A берите 1,65, для хвоста хватит 1,28.

Считаем по таблице выше при сроке поставки 21 день (заявка, дорога, приёмка):

  • Набор губок (X): 2,3 ÷ 2,65 = 0,87; 1,65 × 0,87 × 4,58 ≈ 7 штук — это чуть больше дня продаж.
  • Органайзер (Y): 10,4 ÷ 2,65 = 3,93; 1,65 × 3,93 × 4,58 ≈ 30 штук — около трёх с половиной дней.
  • Подарочный набор (Z): 12,3 ÷ 2,65 = 4,64; 1,65 × 4,64 × 4,58 ≈ 35 штук при продажах 2,2 штуки в день — это шестнадцать дней запаса.

Сравните последние две строки: у губок страховой запас — один день продаж, у подарочного набора — шестнадцать, при том что продаёт он втрое меньше штук. Вот почему Z душит экономику: те же деньги лежат на складе в разы дольше, и за это лежание вы ещё платите за хранение.

Что с этим делают на практике. Z с дорогой себестоимостью не везут на FBO большой партией — держат на FBS или поставляют малыми партиями чаще, сознательно принимая риск редкого out of stock. С X наоборот: низкий CV разрешает возить крупными партиями и экономить на логистике за счёт объёма.

Калькулятор

Сколько дней продержится текущий остаток и когда пора создавать заявку

Реклама и цена по группам

Стабильность спроса меняет и то, как вы тратите рекламный бюджет. У X предсказуемая конверсия, поэтому ставка и ДРР считаются на неделю вперёд с высокой точностью — это главный кандидат на постоянный бюджет и автостратегии. У Y бюджет надо двигать вслед за спросом: вливать в подъём и срезать в спад, иначе в низкий период вы платите за показы, которые не конвертируются.

С Z сложнее. Реклама на Z-товаре даёт рваную статистику: неделя с ДРР 8 %, неделя с ДРР 60 %, и по короткому окну решение принять нельзя. Считайте такие кампании накопительным итогом за 4–6 недель и смотрите на прибыль в рублях, а не на долю расходов за семь дней. Мы в Starbox держим прибыль по товарам и остатки в одном месте как раз чтобы такие вещи ловить не по ощущениям — но сам расчёт CV спокойно живёт и в гугл-таблице.

По цене логика похожая: у X снижение цены почти сразу видно в объёме, эффект измерим на двух неделях. У Z шум перекрывает эффект, и тест цены на таком товаре потребует месяца, а не недели.

Разбор: как один пик чуть не стоил нам 125 тысяч в стоке

Ноябрь, готовим поставку на декабрь. Набор для уборки, среднее за 12 недель — 33,5 штуки в неделю, CV по сырым данным 114 %. По правилам Z: спрос непредсказуем, значит везём с запасом на всякий случай. Заявка на 600 штук уже лежала у поставщика.

Перед отправкой посмотрели ряд по неделям, а не только итог. Оказалось: одиннадцать недель в коридоре 16–28 штук и одна неделя 11.11 со 160 продажами. Вырезали неделю распродажи — CV упал до 18 %, среднее до 22 штук в неделю. Товар не Z, а нормальный Y с одним календарным событием.

Пересчитали по формуле из раздела выше. Базовая потребность на 8 недель — 176 штук. Недельное отклонение по очищенному ряду — 4 штуки, значит дневное около 1,5, и страховой запас на срок поставки 21 день получается 1,65 × 1,5 × 4,58 ≈ 12 штук. Отдельной строкой — 120 штук под декабрьские акции, по факту прошлого года. Итого 308, округлили заявку до 310 вместо 600.

Не заморозили 290 штук × 430 ₽ себестоимости — 124 700 рублей оборотных денег плюс хранение за два месяца. Продажи в декабре закрыли без нулей, остаток на конец января — 40 штук.

Вывод мы записали в регламент одной строкой: перед любой заявкой смотреть ряд по неделям глазами, а не только среднее и CV. Одна аномальная точка в коротком ряду ломает обе цифры разом.

Чек-лист

XYZ посчитан честно

Где XYZ ломается и как часто его пересчитывать

Четыре ситуации, где букву нельзя брать в работу как есть:

  • Штучные продажи, 0–3 штуки в неделю. CV зашкаливает у всех подряд, разделения не выходит. Такой хвост ведут по простому правилу: минимальный остаток, поставка по факту заказов.
  • Растущий товар. Ряд 10 · 20 · 30 · 45 · 60 даёт CV 54 % — формально Z, хотя спрос предсказуем идеально, просто по тренду. Здесь меряют отклонение от линии тренда, а не от среднего.
  • Сезонка вне сезона. Ноль продаж в межсезонье не говорит о предсказуемости ничего, считайте внутри сезона.
  • Карточка младше двух месяцев. Ряда ещё нет, группу подставляют по аналогу из своей категории.

Периодичность: пересчёт раз в квартал для всего ассортимента и обязательный внеочередной — после смены цены больше чем на 10 %, после запуска или остановки рекламы на товаре, после долгого out of stock. Между пересчётами группа не меняется, иначе вы каждую неделю будете переобуваться вслед за шумом — ровно от этого XYZ и должен защищать.

FAQ

Что такое XYZ-анализ простыми словами?

Это деление товаров на три группы по стабильности спроса. X — продаётся ровно из недели в неделю, Y — с заметными колебаниями и сезонностью, Z — всплесками, которые нельзя предсказать. Считается по коэффициенту вариации: стандартное отклонение продаж, делённое на среднее.

Как посчитать коэффициент вариации в Excel?

Собрать продажи по неделям в строку и поделить результат СТАНДОТКЛОНП на СРЗНАЧ по тому же диапазону, умножив на 100. Например, =СТАНДОТКЛОНП(B2:N2)/СРЗНАЧ(B2:N2)*100. В англоязычном интерфейсе это STDEVP и AVERAGE.

За какой период считать XYZ на Ozon?

12–16 недель для обычного товара, этого хватает для устойчивой оценки. Больше года брать не стоит — спрос за это время меняется, и вы измерите историю магазина, а не свойства товара. Для сезонных позиций считают отдельно по неделям внутри сезона.

Где в Ozon Seller взять продажи по неделям?

В разделе аналитики кабинета — выгрузка по товарам с группировкой по неделям и метрикой «заказано, штук». Названия отчётов Ozon периодически обновляет, поэтому сверьтесь с актуальным описанием в базе знаний Ozon Seller; нужен ряд «неделя → количество» по каждому SKU.

Чем XYZ отличается от ABC-анализа?

ABC делит товары по вкладу в выручку или прибыль, XYZ — по предсказуемости продаж. Это независимые измерения, поэтому их считают вместе: товар может давать много денег и при этом продаваться рывками. Из ABC следует, сколько внимания давать товару, из XYZ — сколько запаса под него держать.

Статья была полезна?

Вы развиваете магазин. ИИ разбирается с рутиной.

Поручите Starbox AI поиск потерь в прибыли, проверку рекламы и планирование запасов. Задавайте вопросы в чате и получайте рекомендации по своему магазину. Попробуйте ИИ-менеджера для Ozon 14 дней бесплатно, без карты.

Попробовать ИИ-менеджера бесплатно