ABC-анализ: расчёт, пример и решения по ассортименту
Как провести ABC-анализ: выбрать показатель, рассчитать доли и группы, сравнить выручку и вклад. Пример по ассортименту, формулы и шаблон Excel.

ABC-анализ ассортимента распределяет товары по их доле в выбранном показателе: сначала позиции с наибольшей долей попадают в A, затем идут B и C. Он помогает понять, каким позициям уделить больше внимания при закупке, проверке цены и работе с остатками. Для магазина полезно сделать два расчёта: по выручке после скидок и возвратов и по вкладу после переменных затрат. Тогда высокий оборот не скроет товар, который оставляет мало денег.
Ниже — путь от выгрузки заказов до решений по артикулам. Все суммы в примере учебные. Вы можете повторить расчёт по формулам в статье или заполнить шаблон Excel на 100 артикулов.
Что показывают группы A, B и C
Сначала товары ранжируют по выбранному показателю от большего к меньшему, затем считают их доли с накоплением. Ориентиры — первые 80 % показателя для A, следующая часть до 95 % для B и остаток для C. Это границы для организации работы, а не требование, чтобы ровно 20 % товаров всегда давали 80 % продаж. В руководстве Shopify по ABC-анализу эти проценты также названы ориентирами, которые можно менять.
Доли относятся к выручке или другому выбранному показателю, а не к количеству артикулов. Если три позиции дают основную часть оборота, они могут составить группу A и в каталоге из десяти товаров, и в каталоге из тысячи.
ABC — общий принцип ранжирования. Например, в складской задаче можно использовать стоимость потребления: проданное количество умножить на себестоимость единицы. В этой статье задача другая — сравнить продажи и денежный вклад ассортимента. Поэтому каждый результат подписан: «ABC по выручке» или «ABC по вкладу». Документация Oracle определяет ABC через критерий оценки, который выбирает пользователь.
Группа C сама по себе не означает, что товар нужно убрать. Запасная деталь или дополнение к основной покупке могут продаваться редко и оставаться нужными покупателю. Роль позиции удобнее хранить в ассортиментной матрице, а ABC использовать как один из аргументов при её пересмотре.
Как выбрать показатель под задачу
Буква A имеет смысл только вместе с названием показателя. Товар может занимать первое место по выручке и последнее — по частоте покупок. Сначала сформулируйте решение, для которого нужен отчёт.
| Вопрос магазина | Показатель для ранжирования | Чего результат не показывает |
|---|---|---|
| Какие товары формируют оборот | Выручка после скидок и возвратов за период | Сколько остаётся после затрат |
| Какие товары дают денежный вклад | Вклад после выбранных переменных затрат, в рублях | Чистую прибыль магазина и будущий спрос |
| В каких остатках связаны деньги | Стоимость остатка по себестоимости на одну дату | Скорость продажи этого остатка |
| К каким товарам чаще обращаются при сборке | Число строк отбора или заказов с SKU за период | Доходность товара |
Для товарной выручки и вклада нужны суммы, которые складываются в общий итог. Проценты маржи складывать как выручку нельзя: товар с маржой 50 % при выручке 1 000 ₽ даёт 500 ₽, а товар с маржой 10 % при выручке 100 000 ₽ — 10 000 ₽. Для оценки вклада в рублях важнее второй. Процент маржи оставьте рядом как дополнительную характеристику.
Проданные штуки тоже можно ранжировать, если это отвечает задаче. Но сто ручек и сто шкафов не создают одинаковую нагрузку на склад. Для размещения учитывайте частоту отбора, габариты и условия хранения; денежная группа A сама по себе не означает, что товар нужно перенести ближе к упаковке.
Какие данные нужны для расчёта
Выберите период, канал и единицу анализа до выгрузки. Для решения о закупке конкретного размера или цвета нужна отдельная товарная позиция — SKU. Если объединить все варианты в модель, её хорошая выручка может скрыть размер, который почти не покупают.
Возьмите историю, в которой есть несколько обычных циклов продаж и пополнения. Учебный пример ниже охватывает квартал, но это не универсальный срок. Для сезонного товара сравните сопоставимые сезоны; для редкой дорогой покупки короткий период может содержать всего один заказ. Отдельно отметьте дни отсутствия: низкие продажи товара, которого не было на складе, не доказывают слабый спрос.
Из системы учёта заказов выгрузите строки выполненных продаж, из учёта закупок — себестоимость, из отчётов оплаты и доставки — затраты. Минимальная структура такая:
| Поле | Что записать |
|---|---|
| Заказ, строка заказа и операция | Идентификаторы для удаления повторов и привязки каждого возврата |
| SKU и название | Постоянный код варианта, по которому объединяются строки |
| Дата выполнения и канал | Для единого периода и состава продаж |
| Количество и сумма до скидок | Стоимость отгруженных товаров; отменённые до отгрузки позиции сюда не входят |
| Скидка | Скидка строки и её часть от общей скидки заказа |
| Возврат | Фактически возвращённая стоимость товара после скидки, привязанная к исходной строке |
| Себестоимость | Стоимость реализованных товаров с учётом возвратов и списаний |
| Прочие переменные затраты | Комиссии, упаковка, логистика и другие затраты по принятому правилу |
| Признаки для решения | Новинка, отсутствие на складе, акция, сезонность, роль в комплекте |
Сверяйте выгрузку по идентификаторам, а не по названию: переименование товара не должно создавать второй артикул. Для нескольких каналов сначала считайте каждый отдельно, если различаются комиссии и условия доставки. Объединённый отчёт нужен для общей закупки, но может скрыть убыточность отдельного канала.
Повторяющийся SKU в исходных строках разных заказов — нормальное явление. Сначала удалите повторные копии одной операции по её идентификатору, затем сложите продажи и затраты по SKU. Разные частичные возвраты одной строки заказа сохраняйте и суммируйте по отдельным ID возврата: например, 200 ₽ и 300 ₽ должны дать 500 ₽, а не один оставленный возврат. Если продажи и возвраты приходят отдельными таблицами, сначала суммируйте возвраты по строке заказа, затем присоедините их к продаже — иначе несколько возвратов могут размножить исходную сумму продажи.
На выходе должна получиться одна строка на артикул. В Excel подготовленные строки можно объединить сводной таблицей: SKU поместить в строки, а суммы продаж, скидок, возвратов и затрат — в значения с операцией «Сумма». Заказную скидку и общую доставку распределите до такого объединения.
Включайте весь ассортимент выбранного среза, а не только лидеров продаж. Если выгрузить 50 лучших товаров, доли будут относиться к этим 50, и получится другой отчёт. Товары без продаж могут вообще отсутствовать в выгрузке заказов: добавьте их из каталога отдельными строками с подтверждёнными нулевыми продажами, чтобы они не исчезли из проверки. Если доступен только фрагмент данных, прямо ограничьте им выводы и не называйте его анализом всего магазина.
Весь магазин или отдельная категория
Общий ABC показывает, какие товары дают основной результат всему магазину. ABC внутри категории отвечает на другой вопрос: какие позиции важны для этой части ассортимента. Оба расчёта полезны, но их знаменатели различаются. В магазине техники массовые недорогие аксессуары могут попасть в C общего отчёта и одновременно в A своей категории.
В нашем учебном примере ручки N03, скрепки N05, наклейки N06 и маркеры N07 можно выделить в отдельную группу для сравнения. Их выручка — 230 000 ₽. Набор ручек даст 150 000 / 230 000 = 65,22 %, скрепки — 50 000 / 230 000 = 21,74 %. По принятому ниже правилу обе позиции войдут в A этой группы: перед скрепками накоплено меньше 80 %. В общем отчёте скрепки имеют B. Сами продажи не изменились — изменился круг сравнения.
Сохраните две колонки с понятными названиями, например «ABC магазина» и «ABC категории». Перед распределением общего бюджета смотрите первую, перед пересмотром выбора внутри категории — вторую. Для отдельного расчёта в приложенном шаблоне сделайте копию файла только с нужными товарами: фильтр, который лишь скрывает строки на экране, базу формул не меняет.
Как учесть скидки и возвраты
В нашем расчёте выручка товара — сумма выполненных продаж до скидок минус скидки и возвраты. Все вычитаемые суммы записаны положительными числами. Если ваша выгрузка уже содержит продажи после скидки, повторно вычитать скидку нельзя.
Общую скидку заказа распределяйте по строкам пропорционально их стоимости до этой скидки. Например, при товарах на 1 000 ₽ и 3 000 ₽ из скидки 400 ₽ на первый придётся 100 ₽, на второй — 300 ₽. Возврат затем учитывайте в фактически возвращённой сумме после скидки: иначе скидка будет вычтена второй раз.
Для статьи выбрана такая схема: берём выполненные в квартале заказы и связанные с ними возвраты, известные на дату расчёта. Возврат товара из прошлого квартала в эту выборку не включаем. Рядом с отчётом сохраняем обе даты — период выполнения и дату учёта возвратов. Если позже покупатель вернул товар, пересчитываем исходный период либо явно сохраняем прежнюю версию.
Если ваша выгрузка включает возвраты по дате обработки, в ней могут оказаться корректировки продаж прошлых периодов. Для выбранной здесь методики сначала привяжите возврат к исходной строке продажи и отберите заказы нужного квартала. Сохраняйте неподтверждённые связи отдельно: возврат, происхождение которого неизвестно, нельзя молча приписать текущим продажам. Проверьте определения полей своей системы до расчёта.
Разберём подготовку строки на учебных данных. В квартале отгружены планеры N02 на 330 000 ₽, скидки составили 10 000 ₽. К дате расчёта по этим заказам вернули покупателям 20 000 ₽ за товары после скидок. Отменённый до отгрузки заказ на 5 000 ₽ исключён ещё до агрегации. В таблицу N02 попадёт выручка 300 000 ₽: 330 000 − 10 000 − 20 000.
Что считать вкладом товара
Для второй классификации посчитаем, сколько остаётся от товарной выручки после себестоимости и прочих переменных затрат:
Выручка SKU = продажи до скидок − скидки − возвраты
Вклад SKU = выручка SKU − себестоимость − прочие переменные затраты
Вклад здесь — сумма в рублях, а не процент маржи и не чистая прибыль магазина. Аренда, постоянная зарплата и другие постоянные расходы остаются за пределами расчёта. У всех строк должны быть одинаковые правила: одна валюта, сопоставимый порядок учёта налогов и одинаковый состав затрат. Если вы меняете состав, подпишите новую версию показателя.
При возврате пригодного товара сторнируйте его себестоимость из реализованных продаж. Если товар повреждён и списан, оставьте соответствующую потерю в затратах. Обратную доставку и невозвращённую комиссию тоже учтите; возврат денег покупателю уже уменьшил выручку, второй раз расходом его не записывайте.
Общие затраты заказа распределяйте один раз. Например, упаковку можно относить по числу отправленных единиц, комиссию — по сумме строки, доставку — по весу. Выберите правило, которое отражает ваши расходы, и сохраните его рядом с отчётом. Для лёгкого блокнота и тяжёлого набора одинаковое деление доставки может заметно исказить вклад. Оплату доставки покупателем учитывайте как уменьшение соответствующих логистических затрат по тому же правилу, чтобы не забыть эту компенсацию.
В учебном примере прочие затраты уже включают выбранные переменные расходы и распределённые расходы на привлечение. Если расходы на рекламу нельзя обоснованно привязать к товарам, считайте вклад до них и отдельно проверяйте экономику заказа или канала. Прибыльность всего магазина по такой таблице определить нельзя; подробнее состав затрат разобран в статье о юнит-экономике.
Пример: два расчёта для магазина канцелярии
Все данные ниже условные. Магазин анализирует выполненные заказы за один квартал и связанные с ними возвраты, известные на дату расчёта. Денежные суммы приведены в рублях, по единому правилу учёта. Новый блокнот появился в конце периода, поэтому его продажи показываем, но в основное ранжирование пока не включаем.
| SKU и товар | До скидок, ₽ | Скидки, ₽ | Возвраты, ₽ | Выручка, ₽ |
|---|---|---|---|---|
| N01 Блокнот твёрдый | 420 000 | 20 000 | 0 | 400 000 |
| N02 Планер | 330 000 | 10 000 | 20 000 | 300 000 |
| N03 Набор ручек | 170 000 | 10 000 | 10 000 | 150 000 |
| N04 Папка | 90 000 | 5 000 | 5 000 | 80 000 |
| N05 Скрепки | 55 000 | 0 | 5 000 | 50 000 |
| N06 Наклейки | 20 000 | 0 | 0 | 20 000 |
| N07 Маркеры | 15 000 | 0 | 5 000 | 10 000 |
| N08 Новый блокнот | 8 000 | 0 | 0 | 8 000 |
| N09 Сменный блок | 0 | 0 | 0 | 0 |
| Итого | 1 108 000 | 45 000 | 45 000 | 1 018 000 |
Следующий шаг — вычесть подготовленные затраты. Они относятся к тем же строкам продаж и учитывают возвраты по описанной выше схеме.
| SKU | Выручка, ₽ | Себестоимость, ₽ | Прочие переменные затраты, ₽ | Вклад, ₽ |
|---|---|---|---|---|
| N01 | 400 000 | 240 000 | 40 000 | 120 000 |
| N02 | 300 000 | 265 000 | 30 000 | 5 000 |
| N03 | 150 000 | 70 000 | 20 000 | 60 000 |
| N04 | 80 000 | 40 000 | 10 000 | 30 000 |
| N05 | 50 000 | 20 000 | 5 000 | 25 000 |
| N06 | 20 000 | 7 000 | 3 000 | 10 000 |
| N07 | 10 000 | 8 000 | 4 000 | −2 000 |
| N08 | 8 000 | 4 000 | 1 000 | 3 000 |
| N09 | 0 | 0 | 0 | 0 |
| Итого | 1 018 000 | 654 000 | 113 000 | 251 000 |
Для N02 вклад равен 300 000 − 265 000 − 30 000 = 5 000 ₽. При заметной выручке этот товар оставляет мало денег. У маркеров N07 вклад отрицательный: продажа и обслуживание этих заказов в сумме обошлись дороже выручки.
ABC по выручке: доли и границы
Исключаем новинку N08 из основного сравнения. Нулевой N09 оставляем отдельной строкой «Ноль». База положительной выручки остальных товаров составляет 1 010 000 ₽. После сортировки по убыванию считаем:
Доля товара = выручка товара / база положительной выручки
Накопленная доля = сумма выручки от первой строки до текущей / база
Нужно заранее выбрать правило для товара, который пересекает границу. В этой статье и шаблоне такой товар остаётся в группе, начавшейся до порога. Если накопленная доля до текущей строки меньше 80 %, присваиваем A; если она от 80 % до значения меньше 95 % — B; если 95 % и выше — C. Поэтому группы могут получить фактически больше 80 % и 15 %. Другой отчёт может использовать иное правило: перед сравнением проверьте его.
| SKU | Выручка, ₽ | Доля | Накопленная доля | Группа |
|---|---|---|---|---|
| N01 | 400 000 | 39,60 % | 39,60 % | A |
| N02 | 300 000 | 29,70 % | 69,31 % | A |
| N03 | 150 000 | 14,85 % | 84,16 % | A |
| N04 | 80 000 | 7,92 % | 92,08 % | B |
| N05 | 50 000 | 4,95 % | 97,03 % | B |
| N06 | 20 000 | 1,98 % | 99,01 % | C |
| N07 | 10 000 | 0,99 % | 100,00 % | C |
Перед N03 накоплено 700 000 / 1 010 000 = 69,31 %, поэтому он относится к A, хотя после него накопленная доля уже 84,16 %. Перед N05 она равна 92,08 %, поэтому N05 относится к B. На точном значении 80 % следующий товар начнёт B, на 95 % — C.
Фактические доли групп получились такими: A — 84,16 %, B — 12,87 %, C — 2,97 %. Расчёт выполняется на полных значениях; округление в таблице служит только для чтения. При одинаковых суммах зафиксируйте порядок, например по коду SKU. В приложенном шаблоне равные значения получают приоритет по порядку исходных строк сверху вниз.
Для наглядности можно открыть график по этим семи товарам. Столбцы показывают выручку, линия — накопленную долю; исходные значения доступны в CSV с данными графика. Это визуализация учебного расчёта, а не статистика рынка.
Чтобы построить такой график у себя, расположите товары по убыванию показателя и используйте комбинированную диаграмму: столбцы — рубли, линия на второй оси — накопленная доля от 0 до 100 %. Отметьте уровни 80 % и 95 %, а группы подпишите по выбранному правилу порогового товара. Не проводите границу A автоматически после 20 % артикулов. В нашем примере три из семи положительных зрелых позиций, то есть 42,86 % этого набора, дают 84,16 % выручки.
ABC по вкладу: другой порядок товаров
Для второй классификации заново сортируем по вкладу. Нельзя оставить порядок выручки и просто заменить суммы: это будет другой расчёт.
Положительный вклад допущенных к анализу товаров равен 250 000 ₽. Отрицательные −2 000 ₽ маркеров показываем отдельно. Если делить положительные суммы на общий вклад 248 000 ₽, их накопленная доля превысит 100 %, а затем уменьшится на отрицательной строке. Такая шкала неудобна для обычных границ ABC. Поэтому здесь база — только положительный вклад; это выбранная методика, а убыток остаётся виден рядом.
| SKU | Положительный вклад, ₽ | Доля | Накопленная доля | Группа |
|---|---|---|---|---|
| N01 | 120 000 | 48,00 % | 48,00 % | A |
| N03 | 60 000 | 24,00 % | 72,00 % | A |
| N04 | 30 000 | 12,00 % | 84,00 % | A |
| N05 | 25 000 | 10,00 % | 94,00 % | B |
| N06 | 10 000 | 4,00 % | 98,00 % | B |
| N02 | 5 000 | 2,00 % | 100,00 % | C |
Сверка возвращает все исключённые суммы: 250 000 − 2 000 = 248 000 ₽ вклада без новинки, затем 248 000 + 3 000 = 251 000 ₽ по всем товарам. Новинка не исчезла из экономики, она лишь не участвует в сравнении со зрелыми позициями.
Тот же принцип применяйте к отрицательной выручке, если она возникла из-за корректировок: отдельный список с причиной и суммой, а не отрицательная доля в обычной шкале. При нулевом положительном итоге делить не на что — группы A, B и C не назначаются.
Как сделать ABC-анализ в Excel с нуля
Этот вариант нужен, если вы хотите проверить расчёт в своей таблице или у вас пока есть только выручка. Создайте отдельный лист, не меняя расчётные столбцы готового шаблона. Для проверки возьмите семь зрелых товаров N01–N07 из примера, у которых выручка положительная; новинку, ноль и отрицательные значения держите отдельно.
В A1 напишите «SKU», в B1 — «Выручка, ₽». В A2:B8 внесите семь строк и отсортируйте оба столбца вместе по B от большего к меньшему. Если отсортировать только суммы, они потеряют связь с артикулами. В B9 посчитайте итог, затем добавьте четыре расчётных столбца:
| Ячейка | Назначение | Формула для русской локализации Excel |
|---|---|---|
| B9 | Итог положительной выручки | =СУММ(B2:B8) |
| C2 | Доля текущего товара | =B2/$B$9 |
| D2 | Накопленная доля с текущим товаром | =СУММ($B$2:B2)/$B$9 |
| E2 | Накопленная доля до текущего товара | =(СУММ($B$2:B2)-B2)/$B$9 |
| F2 | Группа по доле до строки | =ЕСЛИ(E2<80%;"A";ЕСЛИ(E2<95%;"B";"C")) |
Протяните C2:F2 до строки 8. Столбцам C:E задайте процентный формат с двумя знаками после запятой. Формула уже возвращает долю единицы: дополнительно умножать её на 100 при процентном формате не нужно. Знаки $ закрепляют общий итог и начало накопительного диапазона при копировании вниз. Кавычки в формуле должны быть прямыми, как в примере.
В английской локализации названия функций — SUM и IF; разделитель аргументов зависит от настроек приложения. Аналог F2 с запятыми: =IF(E2<80%,"A",IF(E2<95%,"B","C")). Если формула видна в ячейке как текст, проверьте формат ячейки и наличие лишнего апострофа перед =; если не распознаётся функция — язык названий и разделитель аргументов.
Проверка на нашем наборе: B9 — 1 010 000 ₽, D8 — 100 %, F2:F8 — A, A, A, B, B, C, C. У N03 в E4 получится 69,31 %, поэтому F4 — A.
Для расчёта по вкладу создайте новый лист с теми же колонками; B назовите «Вклад, ₽». Возьмите шесть положительных сумм зрелых товаров, исключите N07, новинку N08 и нулевой N09, затем заново отсортируйте строки по вкладу. Порядок SKU в A2:A7 — N01, N03, N04, N05, N06, N02; суммы в B2:B7 — 120 000, 60 000, 30 000, 25 000, 10 000 и 5 000 ₽. Строку 8 оставьте пустой, а итог сохраните в B9 с прежней формулой =СУММ(B2:B8): получится 250 000 ₽. Формулы C2:F2 из таблицы выше скопируйте только до строки 7; ссылки $B$9 менять не нужно. Проверка: D7 — 100 %, F2:F7 — A, A, A, B, B, C.
Некоторые инструкции и программы присваивают класс по накопленной доле после строки. Тогда у N03 значение 84,16 % и класс будет B, а при нашем правиле — A. Это различие методик, которое нужно объяснить, а не исправлять перестановкой товаров. Правило по доле до строки также оставляет в A первый товар, даже если он один даёт больше 80 %. При сравнении отчётов сохраняйте одинаковые границы и способ обработки порогового SKU.
Как пользоваться шаблоном Excel
Скачайте заполненный шаблон ABC-анализа. Он рассчитан на 100 SKU и содержит учебные данные из статьи. Формулы рассчитывают выручку, вклад, доли и классы по двум показателям. Распределение скидок и затрат по строкам заказов нужно выполнить до заполнения: файл принимает уже агрегированные суммы по артикулам.
Начните с копии файла и сохраните учебный вариант для сравнения. Замените исходные данные своими, удалив все учебные позиции. Введите постоянный SKU, название, продажи до скидок, скидки, возвраты, себестоимость и прочие переменные затраты. Для полного периода укажите «Да», для товара без достаточной истории — «Новинка». Нулевое значение вводите числом 0; пустая ячейка означает, что данных не хватает.
Заполняйте только входные поля, расчётные столбцы оставьте с формулами. В пределах предусмотренных строк новые SKU включаются в расчёт автоматически. При равных показателях имеет значение порядок строк; для повторного анализа сохраняйте его. Для наглядного просмотра ранжирования можно скопировать готовый результат значениями на отдельный лист и отсортировать всю скопированную таблицу по выручке или вкладу.
После замены данных проверьте отсутствие сообщений о неполных строках и повторяющихся SKU. Затем сверьте суммы выручки и вклада с исходным отчётом, отдельно — суммы новинок и отрицательных значений. Если измените состав затрат, укажите это в названии показателя или пояснении к файлу: классы «до рекламы» и «после рекламы» могут различаться.
Файл помогает пересчитать подготовленные данные, но не определяет достоверность себестоимости и справедливость распределения доставки. Если этих сведений пока нет, начните с ABC по выручке в отдельной таблице, а вклад оставьте неопределённым. Подстановка нулевой себестоимости вместо неизвестной создаст ложную прибыльность.
Когда нужен автоматический отчёт
Начните с таблицы, пока можете проверить подготовку данных и понять причину каждого класса. Автоматизация полезна, когда основное время уходит на повторное объединение выгрузок, сопоставление артикулов и распределение затрат. Само количество товаров не устанавливает границу: один сложный источник может требовать больше ручной работы, чем несколько тысяч чистых строк.
У готового отчёта проверьте показатель, уровень SKU, обработку возвратов, доступность себестоимости, фильтры категорий и правило границ. Название «ABC по прибыли» само по себе не объясняет состав затрат. Сопоставьте определения: если программа вычитает только закупочную себестоимость, её результат будет отличаться от нашего вклада после комиссий, доставки и других выбранных переменных расходов.
До перехода на автоматический расчёт возьмите один и тот же небольшой набор в программе и в проверочной таблице. Сначала добейтесь совпадения исходных сумм, затем долей и только потом букв. Если программа считает по дате возврата или иначе распределяет скидку, разница в классах может происходить из состава данных. Зафиксируйте её причину, прежде чем подключать результаты к закупкам.
Какие решения принять по товарам
В учебном магазине планер N02 получил A по выручке и C по вкладу. Первая задача — проверить его затраты и условия продаж. Если себестоимость и доставка внесены верно, рассчитайте новую цену или меньшую скидку и проверьте спрос небольшой партией. Большая закупка только из-за буквы A увеличит объём денег, связанных с товаром, который даёт мало вклада.
| Товар и результат | Решение для учебного магазина | Когда решение нужно изменить |
|---|---|---|
| N01: A по обоим показателям | Приоритетно проверять наличие и надёжность поставки | Если вклад держался на разовой акции или поставщик ухудшил условия, пересчитать экономику до закупки |
| N02: A по выручке, C по вкладу | Проверить скидки, себестоимость и доставку; испытать новые условия | Если после исправления ошибочных затрат вклад стал высоким, ограничивать закупку по прежнему отчёту уже нет основания |
| N05: B по обоим показателям | Сохранить как возможное дополнение к блокнотам | Если его заказывают отдельно с дорогой доставкой, сравнить вклад таких заказов с заказами в комплекте |
| N07: C по выручке, отрицательный вклад | Разобрать причины возвратов и затрат до нового пополнения | Если убыток вызван разовым списанием, отдельно оценить обычные продажи; если повторяется — менять условия или прекращать закупку |
| N08: новинка | Назначить отдельный тест, бюджет и дату пересмотра | Включить в ABC после выбранного периода наблюдения при доступности товара покупателям |
| N09: нет продаж | Проверить наличие, видимость и назначение | Если товар был доступен, но его не покупают и обязательной роли нет, рассмотреть вывод |
Положительный вклад ещё не определяет размер закупки. Перед заказом нужны фактический остаток, срок поставки, минимальная партия и скорость продаж. Для этого используйте расчёт точки заказа и страхового запаса. Буква A помогает выбрать приоритет проверки, но не отвечает, сколько единиц покупать.
Для новинки заранее сформулируйте условия теста. Например, в учебном магазине можно выделить шесть недель без перебоев наличия, ограничить закупку 20 единицами и проверить продажи без дополнительной скидки, возвраты и положительный вклад. Числа здесь — пример управленческого решения, не норматив. Если за это время товар был недоступен половину дней, оценку спроса придётся пересмотреть.
Матрица выручки и вклада
Чтобы не переключаться между двумя сортировками, сведите классы в одну матрицу. Первая буква обозначает ABC по выручке, вторая — ABC по положительному вкладу. Например, N02 — AC, N04 — BA. C по вкладу означает небольшую долю положительной суммы, а не убыток: у N02 вклад 5 000 ₽. Отрицательные позиции в эту матрицу не включаются, их разбирают отдельно.
| По выручке | A по вкладу | B по вкладу | C по вкладу |
|---|---|---|---|
| A | AA: проверить надёжность наличия и поставки | AB: проверить состав затрат при большом обороте | AC: проверить цену, скидки и обслуживание; не наращивать объём только ради выручки |
| B | BA: проверить возможность увеличить продажи без ухудшения вклада | BB: поддерживать предложение и следить за остатком | BC: разобраться, оправдывает ли роль товара его затраты |
| C | CA: проверить ограничения видимости и спроса; не расширять закупку без теста | CB: оценить дополнение к основным покупкам и продажи отдельно | CC: проверить роль, запас и альтернативу до решения о выводе |
Матрица задаёт вопросы для проверки, а не обязательную стратегию. У товара CA может быть крупный вклад от одного разового заказа; повторная закупка по прежнему объёму тогда не обоснована. Для дополняющей позиции смотрите состав заказов: сколько покупок содержат её вместе с основным товаром и сколько вклада дают эти заказы. Даже частая совместная покупка сама по себе не доказывает, что удаление дополнения снизит продажи основного товара.
Чем ABC-анализ отличается от XYZ
ABC измеряет долю результата за выбранный период. XYZ добавляет другой вопрос: насколько равномерно распределены продажи внутри периода. Это отдельная классификация по разбросу ряда продаж относительно среднего. Различие подходов и совмещение групп описывает руководство Яндекс 360.
На учебном примере два товара принесли по 120 000 ₽ за квартал. Первый продавался на 40 000 ₽ каждый месяц, второй — на 0 ₽, 0 ₽ и 120 000 ₽. В ABC по выручке их суммы равны, а риск планирования по среднему различается: для второго товара нужно выяснить причину единственной крупной продажи. Это может быть акция, сезон, перебой наличия или разовый заказ. Три наблюдения здесь иллюстрируют различие, но не подтверждают устойчивый характер спроса.
Для формального XYZ потребуется ряд сопоставимых периодов по тем же SKU, определение используемого стандартного отклонения и заранее выбранные границы X, Y и Z. В расчёте спроса полезно смотреть штуки: изменение цены само по себе меняет денежную выручку. Нулевые продажи из-за отсутствия товара отмечайте отдельно; не превращайте предполагаемые потерянные продажи в фактические.
Метка AX означает высокую долю выбранного показателя и относительно ровный ряд, AZ — высокую долю и большой разброс. Ни одна из них не задаёт универсальный процент страхового запаса. XYZ также не устанавливает причину колебаний и не доказывает точность будущего прогноза. Подход к стабильности спроса и запасам продолжает материал об управлении запасами.
Не путайте AX с AA из предыдущего раздела. В AA обе буквы получены из долей двух денежных показателей; в AX вторая буква относится к изменчивости продаж во времени. Приложенный к этой статье шаблон рассчитывает два ABC, а не XYZ.
Как проверить результат и повторить анализ
Сначала сверьте подготовленные суммы с источником. В примере общая выручка должна дать 1 018 000 ₽, вклад — 251 000 ₽. После исключения новинки база положительной выручки равна 1 010 000 ₽, положительного вклада — 250 000 ₽. У этих баз разные определения, поэтому совпадать они не обязаны.
Затем вручную проверьте первую строку и товары на границах. Для выручки это N03 и N05, для вклада — N04 и N06. Сумма долей внутри каждого положительного набора должна составить 100 % до округления, а отрицательные и нулевые позиции должны остаться в отчёте отдельными статусами.
Повторяйте анализ с одинаковыми правилами отбора и затрат. Сравнивайте не только буквы, но и абсолютные суммы: товар может перейти из A в B, потому что вырос другой товар, хотя его собственный вклад не изменился. Для сезонного ассортимента сопоставляйте одинаковые сезоны и отдельно учитывайте акции, отсутствие на складе и крупные разовые заказы.
Различайте период данных и частоту пересчёта. Можно каждый месяц анализировать последние три полных месяца: окно содержит квартал, а обновление происходит ежемесячно. В стабильном небольшом магазине можно начать с квартального пересмотра; при коротких коллекциях и частых акциях проверка может требоваться чаще. После изменения закупочной цены, комиссии или условий доставки пересчитайте затронутую экономику сразу. Ежедневный контроль остатков не требует каждый день менять ABC-класс.
После решения по N02 фиксируйте цену, скидку, продажи, возвраты и вклад на заказ; по N01 — наличие и запас до следующей поставки. Если уменьшение скидки подняло вклад с единицы, но снизило общий вклад за сопоставимый период, новая цена пока не доказала пользу. Разберите изменение спроса и другие условия, прежде чем расширять эксперимент. Сам ABC-анализ не доказывает, что изменение ассортимента повысило прибыль.
Как оценить остаток и результат решения
Низкая доля продаж не говорит, сколько денег лежит на складе. В условном продолжении примера у скрепок N05 есть два возможных остатка: 10 000 ₽ или 60 000 ₽ по себестоимости. За квартал себестоимость реализованных скрепок составила 20 000 ₽. Если условно принять квартал за 90 дней и равномерное движение товара, эти остатки покрывают примерно 10 000 / (20 000 / 90) = 45 дней и 60 000 / (20 000 / 90) = 270 дней соответственно.
Класс B одинаков в обоих случаях, но вопрос к закупке различается. В первом случае сравните 45 дней со сроком следующей поставки и необходимым резервом, во втором — сначала проверьте причину накопления запаса. Этот расчёт покрытия не учитывает будущие акции, сезон и изменение себестоимости; при разной стоимости партий для закупки удобнее считать покрытие в штуках по каждому SKU.
Запишите исходный остаток, доступность товара и общий вклад за сопоставимый период. После изменения партии или цены проверьте все три: высвобождение денег из остатков не подтверждает успех, если товар стал регулярно отсутствовать, а вклад снизился. Назначьте ответственного, конкретное действие и дату проверки в ассортиментной матрице. Для теста закупки имеет смысл дождаться достаточной части цикла поставки и продаж, а не оценивать результат на следующий день.
Частые вопросы
Есть ли смысл в ABC-анализе, если товаров мало?
Да, он помогает сравнить суммы и затраты, но буквы часто мало что добавляют к самой таблице. При четырёх одинаковых положительных значениях наше правило по доле до строки даст всем товарам A: предыдущие доли равны 0 %, 25 %, 50 % и 75 %. Это не ошибка и не повод искусственно создавать B и C. При слабой концентрации результата полезнее следить за вкладом, остатком и ролью каждого товара.
Можно ли менять границы 80 % и 95 %?
Можно, если другое разделение помогает организовать контроль товаров. Сначала посмотрите на фактическое распределение и ресурсы команды, затем зафиксируйте новые границы и одинаково пересчитайте сравниваемые периоды. Не подбирайте проценты ради желаемого числа товаров A. Приложенный шаблон использует фиксированные границы 80 % и 95 %; в собственной таблице из раздела о ручном расчёте их можно изменить в формуле класса.
Что делать, если истории продаж ещё нет?
Рассчитать фактический ABC по будущим продажам нельзя. Начните с ассортиментной матрицы, проверяемых гипотез и небольших тестов. После запуска сохраняйте продажи, возвраты, затраты и дни доступности. Плановый ABC можно построить по прогнозу отдельно, но он будет показывать ваши предположения, а не фактический вклад товаров.
Проверка перед закупкой
- Период, канал, уровень SKU и дата учёта возвратов записаны; сравниваются одинаковые данные.
- Скидки и возвраты вычтены по одному разу, отменённые до выполнения продажи исключены, суммы сходятся с выгрузкой.
- Выручка и вклад рассчитаны отдельно; состав затрат понятен и одинаков для всех строк.
- Новинки, нули, отрицательные суммы и товары с перебоями наличия видны отдельно и не потеряны при фильтрации.
- Для пороговых товаров вручную проверены доля до строки и правило присвоения класса.
- Указан состав сравнения: весь магазин или категория; скрытые фильтром строки не перепутаны с исключёнными из базы.
- У решения о закупке есть основание помимо буквы: остаток, срок поставки, минимальная партия и роль товара.
- Для изменения цены, закупки или ассортимента записаны дата проверки и показатели, по которым решение будет пересмотрено.