logo
check
Комплексный ABC-анализ: что видно по двум показателям сразу

Комплексный ABC-анализ: что видно по двум показателям сразу

Три вопроса, на которые ABC по одному показателю не отвечает

Обычный ABC-анализ берёт одну колонку чисел — скажем, выручку за год — и делит список на три класса: A, B и C. Это работает, и с этого стоит начинать. Как именно считаются классы, откуда взялось правило 80/20 и почему его не надо принимать за закон — разобрано отдельно, в статье «Что такое ABC-анализ — простыми словами». Здесь я это повторять не буду.

Но у одномерного отчёта есть предел. Вот три вопроса, на которые он не отвечает в принципе:

  • Где заморожены деньги? Позиция даёт большую выручку — но как: постоянными продажами или несколькими крупными отгрузками в год?
  • Что на самом деле держит поток покупателей? В хвосте по выручке всегда есть позиции, которые берут почти в каждом заказе. По выручке они выглядят кандидатами на вывод.
  • Где ядро, а где просто крупные цифры? Позиция может быть в классе A по деньгам и при этом продаваться штучно.

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

Как собирается код из двух букв

Механика простая: обычный ABC считается дважды, по каждому столбцу отдельно, а потом две буквы соединяются в код. Никакой новой математики — те же накопленные доли и те же границы 80 / 15 / 5.

Отсюда главное, о чём почти всегда забывают написать:

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

Проверить порядок можно на следующем шаге, не дожидаясь отчёта: границы категорий настраиваются по каждому столбцу отдельно, и карточки идут в том же порядке, в каком столбцы уйдут в расчёт.

В нашем примере первый столбец — «Выручка за год», второй — «Продано, шт». Значит AC читается как «класс A по выручке, класс C по количеству», то есть много денег при малом числе проданных штук.

По каждой оси по отдельности картина получилась почти учебниковая:

  • класс A — 40 позиций (20% ассортимента) — 80,3% результата;
  • класс B — 50 позиций (25%) — 14,8%;
  • класс C — 110 позиций (55%) — 4,9%.

И так по обеим осям — совпадение здесь не случайно, а специально подобрано для примера. Интересное начинается, когда эти два деления накладываются друг на друга.

Матрица комплексного ABC: девять ячеек от AA до CC, в каждой число позиций и их доля ассортимента. Демонстрационная выгрузка

Девять ячеек распределились так:

  • AA — 26 позиций, AB — 8, AC — 6;
  • BA — 8, BB — 32, BC — 10;
  • CA — 6, CB — 10, CC — 94.

Обратите внимание на пропорцию: по диагонали — 152 позиции из 200, то есть у трёх четвертей ассортимента обе буквы совпали. Расхождения — это оставшиеся 48 строк, а самые резкие (AC и CA) — вообще 12. Интересного в матрице мало, но оно дорогое: ради этих двенадцати строк второй столбец и добавляли. Если бы буквы всегда совпадали, комплексный анализ был бы не нужен.

Цвет ячеек — от зелёного к красному, с подписями «Лучший» и «Худший». Читать его стоит как «больше вклада — меньше вклада», а не как оценку товара: метод меряет вклад в выбранные показатели и ничего не знает ни про маржу, ни про то, зачем позиция стоит в ассортименте. К красному углу матрицы мы ещё вернёмся.

Ещё одна вещь, которую легко прочитать неправильно. В ячейке матрицы стоит число позиций и доля ассортимента — не доля выручки. Это те самые две доли, которые постоянно путают: «AA — 13%» означает 13% строк списка, а не 13% денег. Денег в AA, наоборот, почти 70%. Подробный разбор этой ловушки — в парной статье.

И сразу закрою частое заблуждение: вторая буква — не про цену. Код составлен из рангов, а не из значений, и сам по себе про уровень цены не говорит ничего. В нашей выгрузке средняя цена за единицу в AA — от 4 до 8 EUR, и ровно такая же в CC: 4,8–6,7 EUR. Ячейки противоположные, цена одна и та же. А вот расхождение букв про цену говорит всегда: если позиция ушла в AC или CA, значит её цена резко выбивается из середины — вверх или вниз. Ниже это видно на конкретных строках.

Где заморожены деньги: ячейка AC

Шесть позиций. Класс A по выручке, класс C по количеству: 3,6% годовой выручки при 0,6% всех проданных штук.

Вот они целиком, из настоящего отчёта:

  • масло растительное рапсовое, 10 л — 6 806 EUR за 190 штук;
  • мука цельнозерновая, 25 кг — 6 416 EUR за 195 штук;
  • чай листовой зелёный, 1 кг — 6 082 EUR за 181 штуку;
  • круассаны классические, 48 шт — 5 707 EUR за 209 штук;
  • чай листовой ромашка, 1 кг — 5 449 EUR за 193 штуки;
  • круассаны с шоколадом, 48 шт — 5 095 EUR за 188 штук.

Цена за единицу здесь — от 27 до 36 EUR при медиане по всей выгрузке 5,6 EUR. Это и есть «дорогое и редкое»: выручка набирается не потоком, а несколькими десятками отгрузок.

Что из этого следует практически:

  • страховой запас считается в штуках, а не в деньгах. Пара упаковок на складе — это уже заметная сумма, но по частоте продаж такой запас может закрывать месяцы. Ровно здесь чаще всего и лежат замороженные оборотные средства;
  • проверьте, сколько покупателей за этой выручкой. Если за 190 отгрузками стоят три клиента, это не позиция класса A, а зависимость от трёх клиентов, и рисковать надо ей, а не ассортиментом;
  • дефицит здесь стоит дорого, но заметен не сразу. Позиция может не продаваться две недели просто потому, что так устроен спрос, — и не продаваться, потому что её нет, выглядит точно так же.

И чего делать не надо. Старые разборы комплексного ABC обычно советуют для таких позиций «поднять цену или увеличить продажи». Цена здесь уже в пять-шесть раз выше медианной по ассортименту — поднимать её дальше некуда, а «продавать больше» упирается не в усилия, а в характер спроса: 25 кг муки просто не покупают каждую неделю.

Таблица отчёта, отфильтрованная по ячейке AC: шесть позиций с большой выручкой и малым числом продаж. Демонстрационная выгрузка

Что держит поток покупателей: ячейка CA

Тоже шесть позиций — и полная противоположность предыдущим. Класс C по выручке, класс A по количеству: 0,6% выручки при 4,0% всех проданных штук.

Это вода в полуторалитровых бутылках (1 023–1 127 EUR за 1 200–1 350 штук) и салфетки по сто штук в пачке. Цена за единицу — от 0,81 до 1,01 EUR, то есть в пять-шесть раз ниже медианной по выгрузке.

Главное про эту ячейку: в одномерном отчёте по выручке все шесть позиций попали бы в класс C и оказались бы первыми кандидатами на вывод. Комплексный код показывает, что по количеству они в самом верху списка — их берут постоянно, почти в каждом заказе. Убрать их — значит убрать не 0,6% выручки, а повод для части заказов вообще состояться.

Что с ними делают:

  • не выводят, не посмотрев на роль в заказе. Полезно проверить, сколько накладных содержат такую позицию и что в них ещё;
  • аккуратно работают с ценой. Здесь как раз тот случай, когда цена — рабочий рычаг: маленькая надбавка умножается на большое количество. Но и чувствительность покупателя к ней максимальная, потому что цену такого товара помнят наизусть;
  • считают стоимость обслуживания. Дешёвая позиция с большим числом продаж съедает место на складе, время комплектовщика и строки в накладных. Иногда выгоднее не поднять цену, а укрупнить фасовку;
  • следят за наличием. Дефицит здесь замечают сразу, и он бьёт по всему заказу.

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

Ядро ассортимента: ячейка AA

Двадцать шесть позиций — 13% списка. На них приходится 69,5% выручки и 68,3% проданных штук: крупно и в деньгах, и в объёме. Самая большая строка отчёта — паста фузилли в пятикилограммовой упаковке: 49 730 EUR за 8 163 штуки.

Это то, что нельзя терять, и здесь максимальная цена ошибки — как и в обычном ABC. Разница в том, что вторая буква добавляет уверенности: позиция крупная не за счёт разовых сделок, а за счёт потока. Такие позиции держат в наличии, им дают приоритет в переговорах с поставщиком и по ним чаще всего проверяют остатки.

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

И оговорка, без которой отчёт читают неверно: AA — это не «лучшие товары», а самые весомые в двух выбранных показателях. Про маржинальность метод не знает ничего — он видит ровно те колонки, которые вы ему дали. Посчитайте ещё раз, взяв вместо количества маржу, и состав AA заметно изменится.

Промежуточные ячейки: AB, BA, BC, CB

Тридцать шесть позиций, у которых буквы разошлись на один шаг. Их разбирают по тому же принципу, что AC и CA, только выводы мягче.

AB — 8 позиций, 7,2% выручки при 3,4% штук. В нашем примере это крупные фасовки и премиальные позиции: печенье по 3 кг, оливковое масло в пятилитровых канистрах, молотый кофе, маффины — от 10 до 15 EUR за упаковку. Крупные деньги при среднем объёме: смотрят на устойчивость спроса и на то, не тянет ли позиция за собой лишние остатки.

BA — 8 позиций, 3,5% выручки при 7,9% штук. Паста в полукилограммовых пачках, соусы, сливки, джем — 2–3 EUR за единицу. Хорошо расходятся, денег приносят средне. Это ближайший резерв роста: небольшое изменение цены или условий поставки заметно меняет их вклад именно потому, что штук много.

BC — 10 позиций (1,9% / 0,9%) и CB — 10 позиций (0,9% / 1,9%). Те же перекосы, что у AC и CA, но в ослабленном виде. Отдельных решений обычно не требуют — их смотрят, когда занимаются соседней сильной ячейкой.

Общее правило по всем шести «расходящимся» ячейкам: чем сильнее разошлись буквы, тем сильнее позиция выбивается по цене относительно ассортимента, и тем полезнее посмотреть на неё отдельно.

Хвост: ячейка CC и когда его не трогают

Девяносто четыре позиции — почти половина списка при 3,3% выручки и 3,4% проданных штук. Мало и там, и там.

Это и есть тот самый красный угол матрицы с подписью «Худший». Здесь чаще всего и портят отчёт неверной формулировкой. CC — это не «убыточные позиции». ABC-анализ ничего не знает про убытки: он делит список по вкладу в те показатели, которые вы ему дали. «Мало выручки и мало штук» и «приносит потери» — совершенно разные утверждения, и второе из первого не следует.

Проверить это можно прямо по нашей выгрузке: средняя цена за единицу в CC — 4,8–6,7 EUR, ровно та же, что в AA. Хвост — это не «дешёвка» и не брак, это позиции с малым вкладом.

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

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

Как получить такой отчёт

Нужен файл XLSX, в котором есть колонка-идентификатор (артикул или наименование) и две числовые колонки с показателями за один и тот же период. Требования к данным те же, что и для обычного ABC, — они разобраны в парной статье. Файл никуда не загружается: расчёт целиком идёт в браузере.

Порядок такой:

  1. Открыть файл — перетаскиванием в окно анализа.
  2. Выбрать два столбца. Порядок значим, и задаёт его файл: первую букву кода даёт тот из выбранных столбцов, который в выгрузке левее. У нас это выручка, за ней количество.
  3. Проверить границы категорий — по умолчанию 80 / 15 / 5 по каждой оси.
  4. Прочитать отчёт: матрица, таблица и рекомендации.
Выбор двух столбцов для комплексного ABC: первым — выручка за год, вторым — проданное количество

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

Таблица результата: к исходным столбцам добавлены доли по каждому показателю и код из двух букв. Демонстрационная выгрузка

Отчёт сохраняется в XLSX, так что дальше с ним можно работать привычными средствами — фильтрами, сводными таблицами, отправить закупщику.

Рядом с отчётом продукт показывает разбор: что в этой структуре стоит сделать. Для комплексного анализа среди подсказок есть две, посвящённые ровно тем ячейкам, о которых шла речь выше: «Позиции с кодом AC» и «Позиции с кодом CA». Обе описаны через первый и второй выбранный показатель, а не через выручку и штуки, — и это честно: движок видит только те колонки, которые вы ему дали, а про их смысл не знает ничего. По той же причине подсказка про CA прямо оговаривает, что прибыльность этих позиций расчёт не оценивает.

На нашей выгрузке подсказок семь, а панель показывает первые четыре: предупреждение про раздутый хвост, подсказку про CA, портфельное «около 20% позиций дают 80% результата» и класс A. Остальные три — класс B, класс C и подсказка про AC — открываются по строке «Показать ещё 3 рекомендации»; на снимке ниже список раскрыт целиком. Щёлкать можно не по любой подсказке, а по тем, у которых стоит значок фильтра: нажатие оставляет в таблице ниже только те строки, о которых подсказка говорит. У AC и CA это шесть позиций соответствующей ячейки, у классовых подсказок — весь класс; портфельные говорят про список целиком и не фильтруют ничего.

Панель рекомендаций для комплексного ABC: подсказки по ячейкам AC и CA, по классам и по портфелю; список раскрыт целиком

И важная деталь: сами советы написаны в расчёте на то, что первым идёт денежный показатель, а вторым — объём. Текст подсказки от порядка столбцов не зависит — он говорит «по первому показателю» и «по второму», — а вот совет зависит: «проверьте цены, наборы и стоимость обслуживания» осмысленно для дешёвого товара, который берут часто. Если в выгрузке количество окажется левее выручки, коды в матрице поменяются местами, и совет достанется не той ячейке. Ещё один повод посмотреть на порядок столбцов до расчёта, а не после.

Что легко сделать неправильно

  • Не посмотреть, какой столбец оказался первым. Порядок берётся из файла, а не из порядка щелчков; без этого код из двух букв нечитаем, а отчёт через месяц бесполезен.
  • Сводить девять ячеек в четыре группы и давать группе один совет. AC и CA попадают при этом в одну корзину, хотя решения по ним обратные, — так теряется единственное, ради чего считали.
  • Читать CC как «убыточные». Метод меряет вклад, а не прибыльность.
  • Считать вторую букву характеристикой цены. Цена проступает только в расхождениях букв, а у совпавших ячеек она может быть любой.
  • Путать две доли. В матрице — доля ассортимента, во фразе «AA даёт 70%» — доля выручки.
  • Сравнивать прогоны с разными границами или разным порядком столбцов. Это разные отчёты, а не динамика.

Что дальше

Комплексный ABC отвечает на вопрос «что у нас крупное и в деньгах, и в объёме», но не отвечает на вопрос «насколько это стабильно». Позиция может быть в AA и при этом продаваться рывками — а это уже другой разговор про запасы. За стабильность отвечает XYZ-анализ, который смотрит на разброс продаж по периодам.

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

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