Без классификации ассортимента закупщик тратит одинаковое время на позицию, дающую 2 млн ₽ в месяц, и на позицию, дающую 8 000 ₽. ABC-XYZ матрица разделяет 100% SKU на 9 групп — и для каждой задаёт свою стратегию запаса, закупки и контроля. На ассортименте в 5 000 позиций это означает разницу между хаосом в закупках и системной работой, где каждая группа получает ровно столько внимания, сколько заслуживает.

ABC по выручке: 20% SKU дают 80% оборота

ABC-анализ по выручке — это ранжирование ассортимента по вкладу каждого SKU в общий оборот за периодpareto. Алгоритм прост: выгрузить продажи по SKU за 12 месяцев, отсортировать по убыванию, рассчитать кумулятивный процент. На выходе — три группы с чётко определённым вкладом.

Группа A — SKU, которые формируют первые 80% выручки. Обычно это 15–25% от общего числа позиций. На складе с 5 000 SKU в группу A попадают 750–1 250 позиций. Каждая из них — критичная: дефицит по одной позиции из A транслируется в потерю 3–7% месячного оборота. Для закупщика группа A — это зона ежедневного контроля.

Группа B — следующие 15% выручки, как правило 25–35% SKU. Это середина ассортимента: каждая позиция генерирует ощутимый, но не критичный объём. Дефицит по B неприятен, но не катастрофичен — клиент обычно готов подождать 2–3 дня.

Группа C — оставшиеся 5% выручки, 40–60% ассортимента. Это хвост: 600 SKU могут давать 2 млн ₽ в месяц, но занимать 40% складской площади и 60% времени закупщика. Именно здесь прячутся «мёртвые» позиции, которые не продавались 6–12 месяцев.

Границы 80/95/100 — не догма. В некоторых отраслях работает 70/90/100 или 75/95/100. Граница определяется по точке перегиба на кривой Парето: там, где кривая из крутой становится пологой, проходит линия между A и B. Если при границе 80% в группу A попадает 35% SKU — это слишком много для приоритетного управления. Сдвиньте границу до 70–75%, чтобы A оставалась управляемой.

На практике ABC по выручке отвечает на вопрос «какие товары генерируют деньги». Именно с этого среза начинают 90% компаний, впервые делающих классификацию. Подробная инструкция по расчёту — в статье ABC-анализ за 1 час: 7 шагов в Excel.

ABC по марже: 55–70% совпадений с ABC по выручке

ABC по выручке показывает объём, но не прибыль. Представьте: позиция с оборотом 5 млн ₽ и маржой 4% даёт 200 000 ₽ прибыли. Позиция с оборотом 800 000 ₽ и маржой 35% — 280 000 ₽. По выручке первая попадает в A, вторая — в B. По марже — наоборот.

ABC по марже строится аналогично, но на основе валовой прибыли по каждому SKU за 12 месяцев. На реальных ассортиментах совпадение групп между ABC по выручке и ABC по марже составляет 55–70%. Оставшиеся 30–45% — это позиции-сюрпризы, на которых компания либо «крутит объём без прибыли» (A по выручке, C по марже), либо «зарабатывает тихо» (C по выручке, A по марже).

Как находить расхождения? Стройте оба среза в одной таблице и добавьте столбец «Группа по выручке» и «Группа по марже». SKU, попавшие в A по обоим срезам, — безусловные приоритеты. SKU в A по выручке, но C по марже, — кандидаты на пересмотр условий с поставщиком или на повышение цены. На ассортименте 5 000 SKU таких «пустышек» обычно 80–150 штук, и совокупно они оттягивают 4–8 млн ₽ оборотных средств.

Есть и третий срез — ABC по количеству отгрузок (строк в заказе). Он показывает, какие SKU создают основную нагрузку на склад. Позиция может быть C по выручке, но A по отгрузкам — она занимает ресурсы комплектации непропорционально вкладу в прибыль. Для складов с 500+ строками отбора в день этот срез помогает оптимизировать размещение: частоотбираемые SKU размещают ближе к зоне отгрузки, редкие — дальше.

Четвёртый срез, который полезен для складской логистики, — ABC по занимаемой площади (или объёму). Вы можете обнаружить, что 15% SKU из группы C по выручке занимают 35% площади склада. Это происходит, когда низкооборотный товар хранится в крупногабаритной таре или на паллетах с малой высотой укладки. Сопоставление ABC по выручке и ABC по площади показывает «пожирателей пространства» — позиции, которые вносят минимальный вклад в прибыль, но отбирают дорогую площадь у ходовых товаров. Перевод таких позиций на внешний склад или заказ «под клиента» высвобождает 10–20% площади для группы A.

Рекомендация: если делаете ABC впервые — начните с выручки. Через 2–3 месяца добавьте маржу. Через полгода — отгрузки. Три среза вместе дают полную картину, но и один полезнее, чем ни одного.

Пятый срез, который используют крупные дистрибьюторы, — ABC по частоте дефицита (stockout). Он показывает, по каким позициям дефицит возникает чаще всего. Позиция может быть B по выручке, но A по частоте stockout — значит, вы регулярно теряете продажи именно по ней. Сопоставьте ABC по выручке и ABC по stockout: если позиция в A по обоим срезам — это самая болезненная точка, и её нужно закрыть немедленно (увеличить страховой запас, сменить поставщика, договориться об экспресс-поставке). Если позиция в A по stockout, но C по выручке — дефицит не критичен для бизнеса, но раздражает клиентов. Решение: перевести на заказ «под клиента» с коротким сроком поставки.

XYZ по стабильности: коэффициент вариации определяет предсказуемость

XYZ-анализ классифицирует SKU по стабильности спроса. Метрика — коэффициент вариации (CV): отношение стандартного отклонения спроса к среднему спросу за период, выраженное в процентах. Формула: CV = (σ / μ) × 100%.

Группа X — CV до 10%. Спрос стабильный, прогноз точный, запас рассчитывают по формуле с минимальной погрешностью. Примеры: базовые стройматериалы (цемент, кирпич), расходные материалы (упаковка, крепёж), канцелярия для офиса. Для X-позиций классические модели пополнения (ROP, EOQ) работают с точностью 92–97%. Страховой запас минимален — 5–10 дней.

Группа Y — CV от 10% до 25%. Спрос колеблется из-за сезонности, промо-акций, нерегулярных крупных заказов. Прогноз возможен, но с оговорками — ошибка составляет 15–30%. Стратегия для Y: ROP с увеличенным страховым запасом и ручная корректировка перед сезоном или промо. На складе с 5 000 SKU группа Y обычно составляет 30–45% ассортимента — это самая большая группа.

Группа Z — CV выше 25%. Спрос хаотичный или эпизодический. Прогнозировать практически невозможно: заказы приходят раз в 2 месяца по 3 штуки, потом тишина, потом 200 штук. Для Z-позиций классические модели (ROP, EOQ) работают плохо — ошибка прогноза превышает 40–50%. На практике Z-позиции делят на две подгруппы: те, которые важны (AZ, BZ) — для них создают увеличенный буфер, и те, которые не важны (CZ) — их выводят из ассортимента или переводят на заказ «под клиента».

Период расчёта — критичный параметр. Для XYZ нужно минимум 12 точек данных: 12 месяцев при помесячном учёте или 52 недели при понедельном. На данных за 3–4 месяца XYZ-анализ недостоверен — случайные всплески попадают в выборку и искажают коэффициент. Если компания работает менее года, используйте понедельные данные: 26 недель дадут 26 точек, достаточных для первого приближения.

Ещё одна ловушка — сезонный товар. Кондиционеры с CV 60% формально попадают в Z, но их спрос предсказуем по сезонной модели. Решение: для товаров с выраженной сезонностью считайте CV не за 12 месяцев, а отдельно для пикового и низкого сезона. Или используйте коэффициент вариации после удаления сезонного тренда.

Матрица ABC-XYZ: 9 групп с конкретной стратегией для каждой

Матрица строится наложением двух классификаций: строки — ABC (по выручке или марже), столбцы — XYZ. Каждый SKU попадает в одну из 9 ячеек: AX, AY, AZ, BX, BY, BZ, CX, CY, CZ. Это не теоретическое упражнение — каждая ячейка диктует конкретную стратегию закупки, хранения и контроля.

X (CV < 10%)Y (CV 10–25%)Z (CV > 25%)
**A** (80% выручки)AX — ядро, автопилотAY — ядро, вниманиеAZ — ядро, ручной режим
**B** (15% выручки)BX — стабильная серединаBY — середина с колебаниямиBZ — середина, непредсказуемо
**C** (5% выручки)CX — хвост, стабильныйCY — хвост, колеблетсяCZ — хвост, хаос

На реальном ассортименте из 5 000 SKU типичное распределение выглядит так: AX — 8–12%, AY — 5–9%, AZ — 2–4%, BX — 10–15%, BY — 12–18%, BZ — 5–8%, CX — 8–12%, CY — 15–20%, CZ — 10–18%. Распределение зависит от отрасли: у дистрибьютора электрики группа AX крупнее (12–15%), а у продавца сезонных товаров группа Z шире (35–45% суммарно).

Матрицу можно визуализировать как тепловую карту: верхний левый угол (AX) — зелёный, нижний правый (CZ) — красный. Управленческий смысл прост: чем дальше от AX, тем меньше вкладываете ресурсов и тем жёстче ставите вопрос «а нужна ли эта позиция вообще?».

Что делать с каждой группой: 9 конкретных действий

AX — автоматический перезаказ по ROP с минимальным страховым запасом (5–10 дней). Частые поставки мелкими партиями — EOQ здесь работает с точностью 95%+. Контроль — еженедельный отчёт по fill rate. Если fill rate по AX падает ниже 97%, это сигнал тревоги: проверьте поставщика, пересчитайте ROP, убедитесь, что формула учитывает последние данные. Время закупщика на группу AX — 15–20% рабочего дня.

AY — ROP с увеличенным страховым запасом (10–20 дней). Еженедельный ручной пересмотр прогноза. Перед промо-акцией или сезоном увеличивайте запас на 30–50%, после — возвращайте к норме. Следите за сезонной моделью: если вы продаёте отопительное оборудование, AY-позиции «просыпаются» в сентябре и «засыпают» в апреле.

AZ — максимальный страховой запас (20–30 дней) или модель «запас + экспресс-заказ». Ежедневный мониторинг остатков. Дефицит AZ-позиций критичен (это группа A по выручке), а прогноз ненадёжен (это Z по вариации) — буфер должен быть большим. Рассмотрите договорённость с поставщиком об экспресс-поставке за 2–3 дня для AZ-позиций. Стоимость экспресса ниже, чем потеря 3–5% месячного оборота от stockout.

BX — автоматический ROP, стандартный страховой запас (7–14 дней). Контроль — ежемесячный. Группа не требует ежедневного внимания закупщика. Настройте автоматический перезаказ и проверяйте раз в месяц, что формула актуальна.

BY — ROP с корректировкой раз в 2 недели. Страховой запас 14–21 день. Мониторьте тренд: если CV по конкретному SKU растёт 3 месяца подряд, переводите в BZ и меняйте стратегию. Если CV снижается — в BX.

BZ — консервативный запас (21–30 дней) или переход на поставку «под подтверждённый заказ». Ежемесячный пересмотр целесообразности хранения. Задайте вопрос: приносит ли эта позиция достаточно, чтобы оправдать 30-дневный буфер? Если нет — переводите на заказ «под клиента» с увеличенным сроком поставки.

CX — минимальный запас (5–10 дней), автоматический ROP. Группа стабильная, но малозначимая — не тратьте время закупщика на ручной контроль. Настройте автомат и забудьте до следующего пересчёта матрицы.

CY — рассмотрите переход на заказ «под клиента». Если lead time позволяет (до 5 рабочих дней) — не держите на складе. Если клиент не готов ждать — минимальный запас (7–14 дней) и жёсткий контроль MOQ с поставщиком. Цель — не допустить, чтобы CY занимала площадь, нужную для A.

CZ — главные кандидаты на вывод из ассортимента. Это позиции, которые мало продаются и непредсказуемо спрашиваются — худшая комбинация. Если SKU нельзя убрать (обязательный ассортимент по договору), переведите на заказ «под клиента» с увеличенным сроком поставки. Если можно убрать — запустите распродажу со скидкой 30–50% и высвободите площадь и капитал.

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

Матрица ABC-XYZ — не разовое упражнение. Ассортимент живёт: новые SKU появляются, старые умирают, сезонность смещает группы. По данным анализа дистрибьюторских ассортиментов, за 6 месяцев 15–25% SKU мигрируют между группами. Позиция, бывшая AX зимой, к лету может стать BY — и наоборот.

Рекомендуемая периодичность зависит от масштаба. Для компаний с оборотом свыше 300 млн ₽ в год и ассортиментом более 2 000 SKU — ежемесячный пересчёт. Для компаний с выраженной сезонностью (стройматериалы, садовый инструмент, отопительное оборудование) — раз в 2 недели в пиковый сезон. Для малого бизнеса с 500 SKU — раз в квартал, не реже.

Что отслеживать при каждом пересчёте: количество мигрировавших SKU (норма — 5–10% в месяц), направление миграции (рост группы C — сигнал стагнации ассортимента), изменение общего CV (рост CV по группе A — сигнал нестабильности ключевого ассортимента).

Пересчёт имеет смысл привязывать к конкретным управленческим действиям. Составьте чек-лист: если SKU мигрировал из A в B — уведомить категорийного менеджера, пересмотреть ROP, сократить страховой запас. Если из C в B — добавить на склад, рассчитать SS. Если из любой группы в CZ и позиция не продавалась 90+ дней — запустить процедуру вывода (уведомление отделу продаж, срок 30 дней на реакцию, затем распродажа). Без привязки к действиям пересчёт превращается в аналитическое упражнение, результаты которого никто не использует.

Полезная метрика для отслеживания эффективности ABC-XYZ — «процент ассортимента с актуальной стратегией». Если вы пересчитали матрицу и 200 SKU сменили группу, но стратегия изменена только для 80 из них — актуальность составляет 60%. Целевое значение — 90%+. Если стабильно ниже 80% — либо у закупщика нет времени, либо процесс не автоматизирован, и пора подключать WMS/ERP.

Автоматизация пересчёта: в Excel — макрос на 30 строк кода, обновление за 2–3 минуты. В WMS или ERP — автоматический пересчёт по расписанию с выгрузкой отчёта закупщику утром первого рабочего дня. Подробная инструкция — в статье ABC-анализ за 1 час: 7 шагов в Excel.

Типичная ошибка — пересчитать матрицу и не пересмотреть стратегии. Если 200 SKU мигрировали из B в C, а вы продолжаете держать по ним 21-дневный буфер — пересчёт бесполезен. Каждая миграция должна триггерить пересмотр ROP, страхового запаса и решения «хранить или заказывать под клиента».

Ошибки при построении ABC-XYZ матрицы: 6 типичных ловушек

Первая ошибка — слишком короткий период данных. На 3–4 месяцах XYZ-классификация искажена: один крупный разовый заказ выводит SKU в группу A, а случайный всплеск в одном месяце «обнуляет» коэффициент вариации. Минимум — 12 месяцев для помесячного расчёта.

Вторая — игнорирование сезонности. Кондиционеры, обогреватели, садовый инструмент показывают CV 40–70%, но их спрос предсказуем по сезонной модели. Если не учесть сезонность, они попадут в Z, хотя по сути ближе к Y. Решение: исключайте сезонный тренд перед расчётом CV или анализируйте пиковый и низкий сезон отдельно.

Третья — объединение всех филиалов в одну матрицу. Товар, который является AX в Москве, может быть CZ в Новосибирске. Если вы управляете 3+ складами, стройте матрицу по каждому отдельно. Общую матрицу используйте для закупок на уровне компании, локальные — для управления запасами на конкретном складе.

Четвёртая — исключение новых SKU без временной политики. Новые позиции (менее 3 месяцев на складе) не включаются в ABC-XYZ — данных недостаточно. Но если не установить для них временную политику, они окажутся в «серой зоне» без стратегии. Решение: присвойте новым SKU временную группу B с консервативным страховым запасом и пересмотрите через 3 месяца.

Пятая — использование только одного среза. ABC по выручке без ABC по марже даёт неполную картину. Позиция с оборотом 10 млн ₽ и маржой 2% (прибыль 200 000 ₽) выглядит как звезда по выручке, но по марже она — хвост. Два среза вместе показывают и объём, и прибыль.

Шестая — ручной пересчёт при 5 000+ SKU. На ассортименте этого масштаба ручной пересчёт в Excel занимает 2–4 часа и чреват ошибками. Автоматизируйте: макрос в Excel, скрипт в Python или встроенный модуль WMS. Инвестиция в автоматизацию — 2–4 часа разработки, окупается за первый пересчёт.

Кейс: оптимизация запасов дистрибьютора электрики — минус 18% среднего запаса

Компания — дистрибьютор электротехнической продукции. Ассортимент 7 200 SKU, оборот 680 млн ₽ в год, средний запас 95 млн ₽. Оборачиваемость — 7,2. Fill rate — 89%. Задача — поднять fill rate до 95% без увеличения запаса.

Провели ABC-XYZ анализ за 18 месяцев помесячно. Обнаружили три проблемы. Первая: группа CZ — 1 340 SKU (18,6% ассортимента), занимала 22% площади, давала 3,1% выручки. Из них 870 SKU не продавались более 6 месяцев — «мёртвый» запас на 12,4 млн ₽. Вторая: группа AZ — 180 SKU, по которым fill rate составлял 72% из-за неправильно рассчитанного страхового запаса (формула не учитывала вариативность). Третья: группа AX — 620 SKU с fill rate 94%, но избыточным запасом на 15–20 дней вместо необходимых 7–10.

Действия заняли 12 недель. (1) Вывели 870 «мёртвых» SKU через распродажу со скидкой 40–60% — высвободили 8,2 млн ₽. (2) Перевели 470 оставшихся CZ на заказ «под клиента» — высвободили ещё 3,8 млн ₽ складской площади. (3) Пересчитали страховой запас для AX, AY, AZ по формулам с Z-коэффициентом, учитывающим CV каждой позиции. (4) Увеличили частоту поставок для группы AX с 2 до 4 раз в месяц — снизили средний запас по AX на 28%, не потеряв fill rate. (5) Для AZ договорились с 3 ключевыми поставщиками об экспресс-поставке за 48 часов — это позволило снизить буфер с 30 до 20 дней.

Результат через 3 месяца: средний запас — 78 млн ₽ (−18%). Fill rate — 95,4%. Оборачиваемость — 8,7. Площадь, занятая группой C, сократилась с 22% до 11% — освободившееся место заняли новые SKU группы A по запросам клиентов. Экономический эффект: высвобождение 17 млн ₽ оборотных средств и снижение стоимости хранения на 2,4 млн ₽ в год.

Ключевой вывод: fill rate вырос не потому, что увеличили запас, а потому, что перераспределили его из хвоста в голову ассортимента.

Дополнительный эффект, который компания обнаружила через 6 месяцев: время работы закупщика сократилось на 35%. До внедрения матрицы закупщик тратил одинаковое время на все 7 200 SKU — по 20–30 секунд на просмотр каждой позиции при еженедельном пересмотре заказов. После внедрения: группа AX и BX (1 800 SKU) работает на автопилоте (ROP + EOQ, вмешательство только при отклонении), группа AY и AZ (620 SKU) получает 60% внимания закупщика, группы CY и CZ (2 400 SKU) переведены на заказ «под клиента» и не требуют регулярного контроля. Фактически закупщик управляет 2 400 позициями вместо 7 200 — и делает это качественнее, потому что сосредоточен на товарах, которые генерируют 95% выручки.

Подробнее о метриках управления запасами — в материале управление запасами: 8 ключевых метрик.

Как связать ABC-XYZ с формулами пополнения: 4 уровня автоматизации

Матрица без привязки к формулам пополнения — красивая, но бесполезная таблица. Вот как ABC-XYZ транслируется в конкретные параметры закупки.

Первый уровень — ROP (точка перезаказа). Формула: ROP = d × L + SS, где d — средний дневной спрос, L — lead time в днях, SS — страховой запас. Для AX: SS = Z × σd × √L, где Z = 1,65 (fill rate 95%) или Z = 2,33 (fill rate 99%), σd — стандартное отклонение дневного спроса. Для AZ: Z = 2,33 минимум, потому что высокая вариативность требует большего буфера. Подробнее — в статье ROP и страховой запас.

Второй уровень — EOQ (экономичный размер заказа). Формула Вильсона: EOQ = √(2DS / H), где D — годовой спрос, S — стоимость одного заказа, H — стоимость хранения единицы в год. EOQ хорошо работает для AX и BX (стабильный спрос), плохо — для AZ и BZ (нестабильный спрос искажает D).

Третий уровень — динамический буфер. Для Y и Z-позиций страховой запас пересчитывают не раз в квартал, а каждые 2–4 недели на основе скользящего CV за последние 13 недель. Если CV по позиции вырос с 18% до 32% — буфер автоматически увеличивается.

Четвёртый уровень — автоматизация в WMS/ERP. Система пересчитывает ABC-XYZ ежемесячно, привязывает к каждой группе формулу пополнения и генерирует заявки на закупку. Закупщик проверяет и подтверждает — для AX и BX автоматически, для AZ и BZ — вручную. На ассортименте 5 000+ SKU это экономит 15–20 часов в неделю.

При переходе между уровнями начинайте с первого и добавляйте следующий через 2–3 месяца стабильной работы. Попытка внедрить четвёртый уровень без отлаженного первого приводит к автоматической генерации ошибочных заявок — система закажет 500 единиц позиции CZ, потому что формула ROP рассчитана на стабильный спрос, а фактический спрос — 3 штуки в месяц с пиком 80 штук раз в квартал. Результат: замороженный запас на 400 000 ₽ и забитая ячейка в зоне хранения.

FAQ

Какой период данных нужен для ABC-XYZ анализа? Минимум 12 месяцев для корректного XYZ (нужно 12 точек для расчёта коэффициента вариации). Для ABC достаточно 6 месяцев, но 12 — надёжнее, потому что учитывают сезонность. Если компания работает менее года, используйте понедельные данные — 26 недель дадут 26 точек. При этом помните: понедельные данные более «шумные», и CV получится выше, чем при помесячных — корректируйте границы X/Y/Z соответственно.

Можно ли делать ABC-анализ по количеству отгрузок, а не по выручке? Да, и это полезный третий срез. ABC по количеству отгрузок показывает, какие SKU генерируют нагрузку на склад. Позиция может быть C по выручке, но A по отгрузкам — значит, она занимает ресурсы комплектации непропорционально вкладу в прибыль. Этот срез помогает оптимизировать размещение на складе: частоотбираемые SKU — ближе к зоне отгрузки.

Сколько групп оптимально: 9 (ABC-XYZ) или больше? Для 90% компаний 9 групп достаточно. Добавление четвёртого класса (ABCD или WXYZ) увеличивает сложность, но не улучшает качество решений. Исключение — ассортименты свыше 30 000 SKU, где группа C настолько велика, что требует дробления на C1/C2/C3. Практический тест: если одна из 9 групп содержит более 1 500 SKU — рассмотрите её дробление.

Как учитывать новые SKU, которых нет в истории? Новые SKU (менее 3 месяцев на складе) не включайте в ABC-XYZ — данных недостаточно. Для них установите временную политику: страховой запас = среднее по группе BY (консервативная оценка), мониторинг — еженедельно. После накопления 6+ месяцев данных SKU включается в общий пересчёт. Если новинка — аналог существующего SKU, используйте данные аналога как стартовую точку.

ABC-XYZ анализ заменяет прогнозирование спроса? Нет. ABC-XYZ — это классификация, а не прогноз. Она говорит «этот товар важный и стабильный», но не говорит «в следующем месяце вы продадите 1 200 штук». Прогнозирование — следующий уровень: time series модели, экспоненциальное сглаживание, ML-алгоритмы. ABC-XYZ определяет, какой метод прогноза применить к каждой группе: для X достаточно скользящего среднего, для Y нужна модель с сезонностью, для Z — прогноз на основе заказов клиентов, а не исторических данных.

Что делать, если 80% ассортимента попадает в группу C? Это нормально — принцип Парето именно так и работает. Вопрос не в том, что C велика, а в том, что с ней делать. Разделите C на три подгруппы: C1 — продаётся стабильно, но мало (CX); C2 — продаётся нестабильно (CY); C3 — не продаётся или продаётся хаотично (CZ). По C1 — минимальный автоматический запас. По C2 — заказ «под клиента». По C3 — вывод или распродажа. Если после вывода C3 освободилось 15–20% площади — вы на правильном пути.