ABC-анализ за 3 шага: 20% карточек дают 80% выручки
Разложил магазин по ABC-анализу за полчаса: восемь SKU из сорока семи дали семьдесят шесть процентов оборота, двадцать две карточки год лежали в минус. Что с этим делать - воркфлоу и девять клеток матрицы.
Селлеры на WB и Ozon любят фразу «у меня же всего сорок карточек, я и так вижу, кто продаёт, а кто нет». Проверял это на двенадцати магазинах за последний год. В одиннадцати случаях из двенадцати селлер ошибался минимум в двух карточках: либо считал «звездой» товар, который на самом деле съедает маржу и тянет на дно, либо держал в матрице SKU, который год не приносит ничего кроме комиссии за хранение. Голова считает по эмоциям, ABC-анализ считает по деньгам.
Один свежий пример, чтобы задать тон. Селлер продаёт товары для дома, категория «текстиль». В магазине сорок семь активных SKU, оборот почти четыре миллиона рублей в месяц. На вопрос «какие пять карточек кормят магазин» он назвал пять артикулов. После сортировки по выручке за девяносто дней в списке «пятёрки» оказались всего два из его пяти. Три «звезды» на самом деле сидели в группе B, а два реальных драйвера он даже не помнил в лицо - обычные наволочки, которые не смотрятся эффектно на фото, но их берут пачками. За месяц перекладки бюджета из ложных лидеров в реальные оборот вырос на восемнадцать процентов без увеличения рекламы.
Ниже - как посчитать ABC-анализ ассортимента руками за полчаса, зачем поверх него нужен XYZ, что делать с каждой из девяти клеток матрицы и почему C-товары обычно держат зря.
Почему «интуитивный ABC в голове» врёт
Мозг селлера считает по трём сигналам: как часто карточка попадается на глаза в отчётах WB и Ozon, какие товары обсуждают в отзывах и на какие приходит больше вопросов в чат поддержки. Все три сигнала слабо коррелируют с реальным вкладом в оборот и почти не коррелируют с вкладом в прибыль.
Первый перекос. Карточка с большим ассортиментом фото и активной РК (рекламной кампанией) чаще мелькает в отчётах не потому, что она приносит деньги, а потому, что она красиво отображается в интерфейсе. Мозг подтягивает её в список «важных».
Второй перекос. Товары с высоким чеком запоминаются лучше, чем товары с низким чеком. Продал пять штук по четыре тысячи - помнишь. Продал четыреста штук по двести пятьдесят - не помнишь. Оборот у второго в двадцать раз выше.
Третий перекос. Свежие карточки, в которые вложились время и деньги, кажутся важнее старых. Через полгода после запуска новый SKU часто уступает по вкладу старому, но психологически «новичок» тянет внимание. Селлер продолжает докручивать карточку, которая физически не может окупиться из-за категории или чека.
ABC-анализ убирает эти перекосы. Правила простые: сортируешь весь ассортимент по одной метрике (обычно выручка), считаешь накопительный процент и режешь на три группы. Если хочется освежить арифметику воронки и понять, как выручка превращается в прибыль после комиссий и логистики, есть отдельная статья про юнит экономика на вайлдберриз - тут я на неё опираюсь и не дублирую.
Классические границы ABC: A - до восьмидесяти процентов накопительной выручки, B - от восьмидесяти до девяноста пяти, C - остаток от девяноста пяти до ста. Границы можно двигать: кто-то ставит пороги на семидесяти и девяноста процентах, кто-то на семидесяти пяти и девяноста пяти. Смысл один. A - это то, что кормит магазин. B - подпитка. C - хвост, который либо готовят на замену, либо режут.
[screenshot: пример сводной таблицы SKU с колонкой накопительного процента и цветовой раскраской A/B/C]
Как посчитать ABC-анализ за 30 минут: воркфлоу
Мне достаточно шести шагов и одной таблицы. Работает и в Excel, и в Google Sheets, и в любом BI. Не нужен ни сервис, ни подписка, ни SQL.
Шаг первый. Выгрузить данные о продажах за девяносто дней. На WB - раздел «Аналитика -> Отчёт по товарам», на Ozon - «Аналитика -> Товары -> Продажи». Девяносто дней - минимальный горизонт, чтобы сгладить недельные и акционные всплески. Меньше - будет шум. Больше - устареет сезонная картина.
Шаг второй. Оставить только нужные колонки: артикул, название, количество продаж, выручка, себестоимость (если ведёшь), маржа. Всё остальное скрыть, чтобы не путать взгляд.
Шаг третий. Отсортировать по выручке по убыванию. Просто, но треть селлеров делают ABC не сортируя, и получают кашу.
Шаг четвёртый. Добавить колонку «доля в выручке» = выручка SKU / сумма выручки. И колонку «накопительная доля» = сумма долей сверху вниз.
Шаг пятый. Разметить группы. Всё, где накопительная доля не больше восьмидесяти процентов - группа A. От восьмидесяти до девяноста пяти - B. Остальное - C. Формула для Excel в колонке Группа:
=IF(F2<=0.8;"A";IF(F2<=0.95;"B";"C"))Где F2 - ячейка с накопительной долей. Копируешь формулу вниз - таблица размечается сама.
Шаг шестой. Посчитать сколько SKU и какая доля выручки в каждой группе. Если у тебя сорок карточек и в группе A оказалось три SKU - это норма, работает правило Парето. Если в A их двадцать пять из сорока - ассортимент размазан ровным слоем, надо разбираться отдельно.
Готовая CSV-заготовка, которую можно скопировать и залить в Excel/Sheets:
artikul;nazvanie;prodano_sht;vyruchka_rub;sebestoimost_rub;marzha_rub;dolya_vyruchki;nakopitelnaya_dolya;gruppa_ABC
WB123456;Наволочка сатин 70x70 белая;412;98880;39160;59720;;;
WB123457;Простыня 160x200 серая;208;62400;29120;33280;;;
WB123458;Пододеяльник 200x220 бежевый;104;46800;24960;21840;;;
;;;;;;;;
;ИТОГО;;;;;;;Три пустые колонки в конце - те, которые считаются формулами уже в таблице (доля, накопительная доля, буква группы). Формула для доли: =D2/SUM($D$2:$D$100), для накопительной: =G2+H1 (протянуть вниз).
Всё. От выгрузки до размеченной таблицы - обычно двадцать пять - тридцать пять минут при первом заходе. Со второго раза десять минут: шаблон уже собран, надо только обновить данные.
[screenshot: скрин таблицы с раскраской групп A/B/C и итоговой сводкой по количеству SKU и доле выручки в каждой группе]
XYZ поверх ABC: стабильность спроса важнее объёма
Отдельный ABC отвечает на вопрос «сколько денег приносит SKU». Он не отвечает на вопрос «насколько ровно продаётся». Товар может давать десять процентов оборота, но в один месяц продаться триста штук, в другой двадцать. Планировать поставки по нему - лотерея.
XYZ-анализ решает эту задачу. Считаем коэффициент вариации продаж за девяносто дней (стандартное отклонение недельных продаж, делённое на среднее). Формула вариации в Excel: =СТАНДОТКЛОН.В(B2:B14)/СРЗНАЧ(B2:B14), где B2:B14 - недельные продажи за тринадцать недель.
Границы классические:
- X - вариация до десяти процентов. Спрос стабильный, поставки планируются легко.
- Y - вариация от десяти до двадцати пяти процентов. Спрос колеблется, нужен запас.
- Z - вариация выше двадцати пяти процентов. Спрос скачет как попало, риски по остаткам высокие.
Дальше склеиваем ABC и XYZ. Получается матрица 3x3 с девятью клетками: AX, AY, AZ, BX, BY, BZ, CX, CY, CZ. Каждая клетка требует своей стратегии. Это и есть содержательный ABC-анализ - не разноцветная табличка, а руководство к действию.
[screenshot: матрица 3x3 ABC-XYZ с примерами SKU в каждой клетке и цветовой индикацией приоритета]
Отдельно про долю C-товаров. У большинства селлеров, с кем я работал, в группе C сидит от сорока до шестидесяти процентов ассортимента. Это нормально. Не нормально - когда там же лежат SKU из группы Z (со скачущим спросом), которые ещё и стоят на FBO (склад маркетплейса) и жрут комиссию за хранение. Это уже финансовая дыра, которую замечаешь только по ABC-XYZ.
Что делать с каждой из 9 клеток матрицы
Здесь простое правило: чем ближе к AX, тем больше защищаем; чем ближе к CZ, тем быстрее принимаем решение о выводе.
AX - основа магазина. Стабильные бестселлеры. Действия: держать остаток с запасом сорок пять - шестьдесят дней, не допускать out-of-stock (нулевого остатка) ни на день, вкладывать в рекламу и позиции в выдаче, снимать регулярный аудит фото и SEO. Один день out-of-stock у AX-товара обычно откидывает карточку в выдаче на две недели восстановления.
AY - крупный оборот, средняя стабильность. Планировать поставки по верхнему пику продаж, а не по среднему. Держать тридцать - сорок пять дней запаса. Проверять сезонность отдельно (пляжные полотенца в декабре ведут себя не как в июне).
AZ - крупный оборот, хаотичный спрос. Самая опасная клетка. Часто это «вирусные» товары или сезонка на пике. Действия: работать только по FBS (продажа со своего склада) или маленькими партиями FBO, чтобы не остаться с несколькими тысячами штук неликвида после падения тренда.
BX - стабильная подпитка. Товары с ровным спросом, но невысоким чеком. Действия: минимум рекламы, максимум работы с органическими позициями, автоматический пересчёт цен. Тут выигрывает тот, кто не мешает карточке жить.
BY - типичная середина. Стандартная работа: адекватный запас, регулярный контроль отзывов и цен. Ничего героического не делаем, просто следим.
BZ - средний оборот, скачки. Кандидаты на переработку карточки. Часто скачки связаны не с рынком, а с самой карточкой (плохое фото, невнятное название, слабый первый экран). Переупаковка нередко переводит SKU из BZ в BY.
CX - хвост со стабильным маленьким спросом. Держать можно, но только если оборачиваемость не хуже шестидесяти дней и товар не занимает много места на FBO. Полезны как «доводчики» до бесплатной доставки.
CY - тухляк с флуктуацией. Скидываем через акцию или снимаем с FBO, переносим на FBS. Реклама категорически противопоказана.
CZ - балласт. Выводим. Продаём остатки распродажей, списываем, дарим клиентам в подарочные наборы. Каждый день такого SKU на складе - минус к обороту всего магазина через комиссию за хранение и просевшее внимание.
Держать CZ «на всякий случай» - самая распространённая ошибка селлеров. К ней и переходим отдельно.
Правда, которая режет: почему C-товары держат зря
За год работы с чужими магазинами я собрал восемь причин, по которым селлеры держат C и CZ товары, хотя матрица кричит «выводи». Ни одна из этих причин не выдерживает проверки калькулятором.
Причина первая. «А вдруг взлетит». Реальность: если SKU не взлетел за девяносто дней стабильной работы, вероятность взлёта после - меньше пяти процентов. Это не оценка с потолка, это правило по моей выборке из более чем трёхсот товаров, которые я вёл в разных категориях.
Причина вторая. «Себестоимость уже вложена, жалко». Классическая ловушка утопленных затрат. Деньги уже потрачены и не вернутся вне зависимости от того, держишь ты товар на складе или списываешь. Держать ради «памяти о вложениях» - это ещё и продолжать платить за хранение.
Причина третья. «Он поддерживает бренд, ассортимент выглядит богаче». Проверяется просто: если убрать SKU, увидит ли покупатель разницу? В девяноста процентах случаев не увидит. Ассортиментная «полнота» для C-товаров - иллюзия.
Причина четвёртая. «Продам под акцию». Продают. Но чаще под акцию продают A-товары (потому что они и так продаются), а не C. Разгрузка C через акцию требует отдельного планирования и обычно проще списать.
Причина пятая. «Есть постоянные покупатели, которые именно его берут». На маркетплейсах постоянный покупатель конкретного SKU у мелкого селлера - миф. Люди берут по поиску и выдаче, а не «по имени продавца». Исключение - крупные бренды с прямым траффиком.
Причина шестая. «Скоро сезон, будет спрос». Это про сезонку - и там нужна отдельная стратегия хранения. Если у товара сезон был три месяца назад и не выстрелил - следующий сезон он тоже не переживёт. Меняй карточку целиком или закрывай SKU.
Причина седьмая. «Возможно, мы просто плохо продвигали». Возможно. Но девяносто дней с базовой рекламой достаточно, чтобы понять, есть ли у категории потенциал. Если не пошло - вкладывать ещё бюджет в C-товар это выкидывать бюджет, который лучше зашёл бы в A.
Причина восьмая. «Он важен для меня лично». Самая честная причина. И самая финансово вредная. Владелец магазина - не покупатель. Личная симпатия к товару не оплачивает комиссию за хранение.
Разберись с этим списком - и матрица ABC-XYZ начнёт работать не как отчёт, а как решение.
[screenshot: сравнение двух отчётов по одному магазину до и после чистки CZ-товаров с изменением метрик оборачиваемости]
ABC по прибыли vs по выручке: главная ошибка расчёта
Классический ABC-анализ считают по выручке. Это удобно (данные всегда под рукой), но опасно на маркетплейсе. Товар с большой выручкой и минусовой маржой съедает магазин быстрее, чем C-товары с нулевым оборотом. Классический пример: селлер видит SKU на первом месте по выручке, вкладывается в рекламу и объём, а фактическая маржа с учётом комиссии, логистики, эквайринга, СПП (скидка постоянного покупателя, оплачиваемая площадкой из твоей выручки), возвратов и штрафов - минус четыре процента. Каждая продажа делает магазин беднее.
Правильный ABC на маркетплейсе считают дважды.
Первый ABC - по выручке. Показывает вклад в объём и позиции. Нужен для планирования поставок и рекламных приоритетов.
Второй ABC - по чистой прибыли. Показывает, кто реально кормит. Строится по той же схеме, только вместо колонки «выручка» берётся «маржа после всех комиссий и переменных расходов». Если ты ещё не считаешь маржу по SKU, начни с этого - оно важнее любых красивых матриц.
После двух ABC часто оказывается, что SKU из A по выручке проваливается в B или даже C по прибыли, и наоборот. Товар, который выглядел «хвостом», может оказаться самым маржинальным. Решения принимаются по прибыльному ABC, а не по выручному.
Раздельные ABC особенно важны, если ты активно работаешь с рекламой и позициями. Реклама поднимает выручку, но давит на маржу. И если тебе кажется, что карточка стала «звездой», а на самом деле она просто хорошо оплачивает своё место в выдаче - это разница между растущим бизнесом и медленной убыточностью. Отдельно про то, как поведенческие факторы карточки влияют на позиции, писал в статье как отслеживать позиции товара на маркетплейсе - для полноты картины по A-товарам она пригодится.
Пересборка раз в квартал: короткий чек-лист
ABC-анализ - не разовое упражнение. Ассортимент двигается: сезонность, тренды, ротация категорий, акции площадки. Раз в квартал матрица меняется на двадцать - сорок процентов. Если делать реже - работаешь с устаревшей картиной.
Мой квартальный чек-лист. Занимает два - три часа на магазин из пятидесяти SKU.
- Выгрузить свежие данные по продажам за последние девяносто дней (не за квартал - именно rolling девяносто дней, так честнее).
- Пересчитать оба ABC (по выручке и по прибыли).
- Пересчитать XYZ - вариация продаж за те же девяносто дней.
- Собрать матрицу 3x3 и сравнить с прошлой. Смотрим SKU, которые сменили клетку.
- По каждому «переехавшему» SKU принять решение: что изменилось и что делать.
- Отдельно пройтись по всей группе CZ. Каждому - решение «вывести / оставить с причиной / поменять карточку».
- По AX и AY проверить остатки на сорок пять - шестьдесят дней вперёд. Заказать поставку, если провал.
- По AZ проверить, не пора ли уводить с FBO на FBS, если пик тренда прошёл.
- Итог - короткая записка себе на квартал: что оставить, что запустить, что закрыть. Одна страница текста.
Хорошая практика - хранить квартальные снимки матрицы. Через год видно динамику: какие товары дрейфуют из C в A (кандидаты в основу магазина), какие из A в C (пора искать замену), какие крутятся в B и никогда не выстреливают (можно смело выводить).
[screenshot: два квартальных снимка ABC-XYZ матрицы одного магазина с отмеченными миграциями SKU между клетками]
Что забрать сегодня
ABC-анализ работает не потому, что делит товары на буквы. Он работает потому, что заставляет владельца магазина принять решение по каждому SKU: «эта карточка кормит, эта помогает, эта лежит балластом». Без матрицы решение либо не принимается вообще («потом разберусь»), либо принимается по эмоции («мне нравится этот товар»).
Правило Парето, двадцать на восемьдесят, на маркетплейсах работает жёстче, чем в классической рознице. Средний магазин, с которым я работал, имел от пятнадцати до двадцати пяти процентов SKU в группе A, дающих семьдесят пять - восемьдесят пять процентов оборота. В группе C - до шестидесяти процентов ассортимента, дающие пять процентов оборота и съедающие ощутимую часть внимания и хранения.
Собери матрицу ABC-XYZ по своему магазину сегодня вечером. Займёт первый раз полчаса. И ответь себе на один честный вопрос: сколько C-товаров ты держишь потому, что это правильно с точки зрения бизнеса, а сколько - потому, что жалко признать, что они не сработали?
