Коротко: за 12 месяцев снимите выручку, COGS и средний запас @cost, посчитайте валовую прибыль в ₽ и разделите на запас. Выше 1 - маржа покрыла остаток; ниже 1 - запас тяжёлый. Сравните от 5 категорий в 1 таблице: стоп-закупка, markdown или сжатие матрицы.
GMROI - это отдача валовой маржи с денег в товарном запасе перепродажи (Gross Margin Return on Investment). BrightBoard - IMS и помощник закупок в ритейле: ниже формула, расчёт по категории и SKU и решения по ассортименту, не SRM.
Категорийщику мешают «красивая» маржа в процентах и высокая выручка отдела: при тяжёлом остатке деньги всё равно заморожены. Считайте маржу к среднему запасу в рублях и сравнивайте отделы в одной таблице, а не по одному KPI.
Что такое GMROI простыми словами
Это метрика продуктивности товарного запаса в коммерческой рознице и опте: связка валовой прибыли и среднего остатка. Не путайте с голым ROI по проекту и не сводите всё к оборачиваемости в днях. Оборачиваемость говорит, как быстро уходит товар; этот показатель добавляет, сколько маржи вы снимаете с денег, лежащих в остатке.
Считайте его по сети, отделу, категории или одному SKU перепродажи. Чем уже срез, тем понятнее решение: где избыток, где «пустая» высокая маржа, где стоит пересмотреть закупку у поставщика.
Делайте: объясняйте команде показатель как «маржа к среднему запасу», а не как абстрактный KPI. Не делайте: не объявляйте отдел успешным только по выручке или только по проценту наценки.
Формула GMROI: какие данные брать в расчёт
Базовая формула простая:
Показатель = валовая прибыль (₽) ÷ средний запас по себестоимости (₽)
Валовая прибыль = выручка − себестоимость продаж (COGS) за выбранный период. Средний запас обычно считают как (остаток на начало + остаток на конец) ÷ 2 или как среднее по нескольким срезам за тот же период. Единица знаменателя - себестоимость, не розничная цена полки.
Мини-пример (учебные цифры, не норматив сети). Категория за 12 месяцев: выручка 10 000 000 ₽, COGS 6 500 000 ₽, валовая прибыль 3 500 000 ₽, средний запас @cost 2 000 000 ₽. Результат: 3 500 000 ÷ 2 000 000 = 1,75. На каждый рубль среднего запаса категория дала 1,75 ₽ валовой прибыли.
| Объект | Выручка, ₽ | COGS, ₽ | Валовая прибыль, ₽ | Средний запас @cost, ₽ | Результат | Комментарий |
|---|---|---|---|---|---|---|
| Категория A | 10 000 000 | 6 500 000 | 3 500 000 | 2 000 000 | 1,75 | Маржа покрывает запас с запасом |
| Категория B | 8 000 000 | 6 800 000 | 1 200 000 | 2 400 000 | 0,50 | Тяжёлый остаток при слабой марже |
| SKU X | 900 000 | 540 000 | 360 000 | 120 000 | 3,00 | Высокая отдача на узком срезе |
| SKU Y | 600 000 | 420 000 | 180 000 | 300 000 | 0,60 | Кандидат на markdown / стоп-закупку |
Делайте: берите валовую прибыль в рублях и запас по себестоимости на одном окне. Не делайте: не делите процент маржи на остаток «на глаз» и не смешивайте месячную маржу с годовым средним запасом без пересчёта.
Чем показатель отличается от обычного ROI и оборачиваемости?
Обычный ROI часто считают по проекту, рекламе или капвложениям: прибыль к вложенным деньгам в широком смысле. Здесь в знаменателе именно товарный запас перепродажи. Оборачиваемость (turns) и запас в днях показывают скорость движения остатка, но молчат о рублях маржи.
Практическое правило чтения:
- высокая маржа % + низкая отдача запаса → часто избыток или медленный уход;
- скромная маржа % + высокая отдача → быстрый оборот «спасает» запас;
- значение больше 1 значит валовая прибыль покрыла стоимость среднего запаса за период; «норма» зависит от вертикали и стратегии, чужой бенчмарк (в т.ч. цифры вроде 3,2 из зарубежных обзоров) - ориентир источников, не закон вашей сети и не SLA.
В учебном сравнении двух отделов с одинаковым средним запасом 2 000 000 ₽ отдел с валовой прибылью 6 500 000 ₽ даёт результат 3,25, а отдел с 1 500 000 ₽ - всего 0,75. Одна и та же «полка денег» работает в разы по-разному.
Делайте: смотрите тройку: продажи, маржа ₽, средний запас. Не делайте: не подменяйте показатель одной оборачиваемостью или голым ROI презентации.
1. Посчитайте по категории и по SKU пошагово
Ниже протокол «сделайте руками» для среза перепродажи. Тот же порядок работает и для поставщика, если собираете продажи и остатки по его SKU.
- Выберите объект расчёта: вся сеть, отдел, категория или один SKU перепродажи.
- Снимите выручку и себестоимость продаж за один сопоставимый период (лучше 12 месяцев).
- Посчитайте валовую прибыль в рублях: выручка минус себестоимость продаж (COGS).
- Соберите средний запас по себестоимости за тот же период (начало + конец / 2 или среднее по срезам).
- Разделите валовую прибыль на средний запас: получите значение показателя.
- Интерпретируйте: больше 1 значит маржа покрывает стоимость запаса; норму задавайте относительно своей вертикали и медианы сети, не копируйте чужой бенчмарк как закон.
- Сравните категории и SKU между собой и решите: сократить избыток, пересмотреть закупку, markdown неликвида или усилить оборачиваемость.
Workflow: Данные из учёта (выручка, COGS, остатки) → расчёт по категории/SKU → сравнение отделов → решение по закупке и ассортименту → повторный замер через период
Если ведёте учёт в МойСклад, удобно выгружать остатки и продажи в одном контуре; для связки заказов и перемещений смотрите интеграцию БрайтБорд с МойСклад.
Делайте: фиксируйте период и метод среднего запаса в шапке отчёта. Не делайте: не сравнивайте строки, посчитанные на разных окнах, как будто они равны.
Почему отдел с высокой маржой может иметь низкий результат?
Потому что процент наценки не учитывает, сколько денег лежит на полке и складе. Отдел с наценкой 55% и огромным неликвидом легко проигрывает отделу с наценкой 28%, но быстрым оборотом и тонким остатком.
Типичные причины просадки:
- крупные «выгодные» закупки впрок без плана ухода;
- широкая матрица с хвостом SKU без продаж;
- сезон, который уже закончился, а markdown не запускали;
- поставщик с редкой отгрузкой, из-за которого держите страховой «бугор».
Разбор ассортимента и остатков логично стыковать с практикой управления ассортиментом и складом: матрица без контроля хвоста раздувает знаменатель формулы.
Делайте: ищите «тяжёлый» запас при высокой марже и наоборот. Не делайте: не защищайте отдел фразой «у нас же высокая маржа», пока не посмотрели средний остаток @cost.
Сравните отделы и поставщиков в одной таблице
Сила метрики - в сравнении похожих объектов. Выручка и маржа % сами по себе не показывают продуктивность запаса.
| Отдел | Продажи, ₽ | Маржа, % | Средний запас @cost, ₽ | Значение показателя | Вывод |
|---|---|---|---|---|---|
| A | 12 000 000 | 32 | 4 500 000 | 0,85 | Лидер по выручке, слабая отдача запаса |
| B | 7 500 000 | 48 | 3 800 000 | 0,95 | Высокая маржа %, но запас тяжёлый |
| C | 6 800 000 | 30 | 1 100 000 | 1,85 | Средние продажи, лучшая продуктивность запаса |
| D | 4 200 000 | 22 | 700 000 | 1,32 | Низкие продажи и маржа %, но запас работает |
Тот же приём применим к поставщикам: соберите продажи и средний остаток по их SKU и сравните отдачу. Это меняет разговор с «дайте скидку» на «ваш запас у нас заморожен».
Делайте: сравнивайте похожие категории и сопоставимые периоды. Не делайте: не объявляйте победителем отдел только по выручке или только по % маржи.
Проверьте годовой и периодный расчёт
Годовой расчёт (12 месяцев прибыли к среднему запасу за год) лучше для решений по матрице и контрактам. Короткое окно (месяц, квартал) полезно для оперативного контроля, но легко врёт на сезоне: высокая маржа одного месяца на фоне раздутого сезонного остатка даст заниженную цифру, и наоборот.
| Окно | Числитель | Знаменатель | Риск несопоставимости |
|---|---|---|---|
| 12 месяцев | Годовая валовая прибыль | Средний запас за год | Низкий, если метод среднего стабилен |
| 1 квартал | Квартальная валовая прибыль | Средний запас за квартал | Сезон и акция искажают сравнение с годом |
| «Неделя × 52» | Недельная маржа × 52 | Текущий on-hand @cost | Быстрый черновик; не равен полноценному году |
Делайте: подписывайте в отчёте, какое окно использовали. Не делайте: не смешивайте месячную маржу с среднегодовым запасом без явного пересчёта.
Улучшите отдачу запаса: закупка, ассортимент, markdown
Цифра без действия бесполезна. После расчёта выбирайте рычаг:
- закупка: уменьшить партию, участить поставку, пересмотреть MOQ и глубину страхового запаса;
- ассортимент: сузить хвост SKU, усилить ядро, перераспределить остатки между точками;
- цена и markdown: ускорить уход неликвида до того, как знаменатель «съест» сезон;
- прогноз и аналитика: снизить систематический перезаказ; см. материалы про прогнозирование спроса и аналитику и про автоматизацию и управление закупками.
Делайте: после цифры сразу фиксируйте решение и дату повторного замера. Не делайте: не обещайте рост прибыли «от внедрения отчёта» без изменения закупки и матрицы.
BrightBoard помогает категорийщику видеть связку маржи и запаса на дашборде (20+ метрик), искать неликвиды и принимать решения по ассортименту и закупкам. Если нужен разбор на ваших данных, запишитесь на онлайн-встречу или откройте помощник закупок БрайтБорд.
FAQ
Что означает значение больше или меньше 1?
Больше 1: валовая прибыль за период покрыла стоимость среднего запаса. Меньше 1: запас «съедает» маржу, деньги в остатке работают слабо. Это порог покрытия запаса, а не гарантия чистой прибыли после аренды, ФОТ и маркетинга.
Какое значение считать хорошим в рознице?
Универсальной нормы нет: вертикаль, ценовой сегмент и стратегия (дискаунтер vs премиум) сильно двигают цифру. Ориентируйтесь на медиану своей сети и динамику топ-категорий; чужие бенчмарки из обзоров используйте только как внешний ориентир, не как KPI BrightBoard.
Как рассчитать показатель для категории или отдельного SKU?
Тот же протокол: выручка и COGS объекта → валовая прибыль ₽ → средний остаток @cost за то же окно → деление. Для SKU убедитесь, что остатки и продажи собраны в одних единицах и без «чужих» перемещений без пометки.
Чем годовой расчёт отличается от короткого периода?
Год сглаживает сезон и акции, короткое окно ловит оперативный перекос. Не сравнивайте квартал одной категории с годом другой без пересчёта. Для решений по контракту и матрице обычно берут 12 месяцев.
Чем показатель отличается от обычного ROI?
ROI часто считают по широким инвестициям. Здесь в знаменателе именно товарный запас перепродажи по себестоимости, а в числителе - валовая прибыль от продаж этого запаса. Для категорийщика это ближе к ежедневным решениям по закупке, чем абстрактный ROI презентации.
Что сделать дальше и что замерить
Запустите расчёт на топ-10 категориях и на хвосте SKU с подозрением на неликвид. Зафиксируйте четыре метрики на повторный срез через один полный период:
- значение показателя по топ-категориям и проблемным SKU до и после решения;
- доля запаса с результатом ниже 1 или ниже медианы сети;
- средний запас @cost и валовая прибыль ₽ по тем же объектам;
- доля неликвида и частота корректировок закупки после разбора.
Дальше - не новый отчёт ради отчёта, а конкретное действие: стоп-закупка, markdown, переброс или сжатие матрицы. Без изменения потока товара цифра сама не вырастет.



