У меня четыре магазина на Ozon. Раз в неделю я садился и по очереди смотрел: где кончается остаток, какая кампания начала жечь бюджет, какой товар ушёл в минус. Это занимало вечер и делалось нерегулярно, потому что вечер не всегда есть. Проблемы при этом не ждали: товар кончался, реклама продолжала списываться, убыточная позиция продавалась дальше и увеличивала убыток именно объёмом.
Сейчас это делает сервис: раз в месяц разбор запускается сам по каждому магазину, а когда нужно — вы запускаете его кнопкой, не чаще раза в неделю. Ниже — что именно он смотрит и, что важнее, где проходит граница между расчётом и нейросетью. Скриншоты в статье сняты с демонстрационного магазина: товары и цифры вымышленные, но связаны между собой ровно так же, как в настоящем расчёте.
Что сервис смотрит
Данные тянутся из Ozon по API и лежат у нас в разобранном виде: заказы с их статусами, выплаты, комиссии, сборы за логистику и эквайринг, расходы по каждой рекламной кампании, возвраты. Отдельно — себестоимость, которую заполняет сам продавец, потому что Ozon её не знает.
На этих данных считается несколько сигналов. Товары, у которых остаток кончится раньше, чем доедет поставка. Кампании, у которых доля рекламы в выручке заметно выросла к прошлому месяцу. Кампании, упёршиеся в недельный лимит бюджета: они теряют показы прямо сейчас, и это не «было бы неплохо расшириться», а «деньги уже уходят мимо». Товары с отрицательной прибылью. Товары, которые возвращают чаще остальных в этом же магазине.
Откуда берётся «продаётся в минус»
Это самый частый вопрос, поэтому разберу цепочку целиком. Берём один товар за месяц. Ozon платит за доставленные заказы, и эта выплата уже за вычетом его комиссии. Из неё вычитаем себестоимость проданного, вычитаем сборы Ozon за логистику до покупателя и обратно и за эквайринг, вычитаем то, что забрали возвраты. Себестоимость вернувшегося товара при этом возвращается обратно в расчёт: товар снова на складе, деньги за него не потеряны.
Если после всей цепочки получается отрицательное число, товар и попадает в список убыточных. Заметьте, что комиссия тут учтена не отдельной строкой, а тем, что выплата приходит уже за её вычетом. Именно поэтому «цена минус комиссия» никогда не сходится с тем, что приходит на счёт: между ними ещё логистика и сборы.
Предельный ДРР: главная цифра по рекламе
Прибыль товара до вычета рекламы — это ровно то, сколько на рекламу можно потратить, чтобы выйти в ноль. Разделив её на выручку, получаем предельный ДРР конкретного товара. Дальше сравнение простое: фактическая доля рекламы ниже предела — есть запас, выше — реклама съедает прибыль.
Без этой второй цифры сам по себе ДРР не значит ничего. У товара с высокой наценкой двадцать процентов — половина запаса, у товара с дешёвой ценой и дорогой доставкой те же двадцать процентов означают убыток. Вот как выглядит товар, у которого реклама вышла за предел.
Куда уходит 100 ₽ выручки товара
Демо-магазин, «Термокружка 500 мл»
Заметить такое по одному ДРР невозможно: 22,7 процента выглядят обычно, у соседнего товара почти столько же, и там всё в порядке. Разница не в проценте, а в том, что за ним стоит. Поэтому в карточке эта пара чисел показана шкалой: полоса — сколько реклама забирает сейчас, отметка на ней — предел для этого товара.
Себестоимость, маржа и возвраты
Про возвраты стоит сказать отдельно, потому что их обычно недооценивают. Возврат стоит дороже потерянной выручки: обратная логистика платная, а реклама, которая привела этот заказ, уже оплачена и не вернётся. В общей цифре по магазину это незаметно, а отдельные позиции возвращают в разы чаще остальных, и почти всегда причина видна в отзывах: размер, комплектация или фотография, которая обещает больше, чем в коробке.
Что нейросети делать запрещено
Всё, что описано выше, считает обычный код, а не модель. Это принципиально. В первой версии я разрешил модели писать описания вместе с цифрами и быстро об этом пожалел: она молча превращала «1,73» в «173» единицы в день. Продавец, читающий такую рекомендацию, не может отличить верную цифру от испорченной, а значит не может доверять ни одной.
Поэтому долгое время модели оставалось ровно одно: выбрать, какая из посчитанных проблем важнее, и подписать её несколькими словами без единой цифры. Работало надёжно, но советы получались вроде «экономически неэффективна» — ярлык, из которого непонятно, что делать.
Сейчас модель посильнее, и она пишет полноценный разбор: что цифра означает для денег, какое действие предпринять и чем рискует обратное. Например, она не советует выключать дорогую кампанию, если на ней держится основная часть заказов — вместо этого предлагает снизить бюджет и предупреждает о риске. Цифры ей разрешены, но не на доверии.
Каждое число из текста модели сверяется с исходными данными по этому же сигналу. Числа соседнего товара считаются такой же выдумкой, как взятые с потолка. Если хоть одно не сошлось, разбор отбрасывается целиком и рекомендация остаётся с обычным расчётным текстом. Полумер тут быть не может: одна выдуманная цифра обесценивает весь совет, потому что читатель не знает, какая именно выдумана.
Разбор по кнопке
Сам по себе разбор обновляется раз в месяц — этого хватает, чтобы раздел не пустовал. Но после того, как вы что-то поменяли — снизили бюджет, подняли цену, отправили поставку, — ждать месяц неудобно. Поэтому вверху раздела есть кнопка «Сделать разбор через ИИ»: она пересчитывает всё заново по всем выбранным магазинам прямо сейчас. Чаще раза в неделю кнопка не сработает, и это не жадность: разбор считает по недельным и месячным окнам, и за пару дней эти числа почти не меняются — второй прогон подряд выдаст тот же текст.
Категории — поставки, реклама, маржа — свёрнуты по умолчанию: в заголовке видно, сколько внутри рекомендаций и сколько из них критичных, а раскрывается каждая по клику и запоминает своё состояние. Иначе, пока долистаешь длинный список поставок до рекламы, забываешь, зачем пришёл. Рекомендация живёт в списке, пока существует её причина. Пополнили склад — при следующем разборе она исчезнет сама, отмечать ничего не нужно. Если совет не подходит, его можно скрыть крестиком; но если проблема реальна и никуда не делась, она вернётся.
Чего сервис не делает
- Не считает налог по каждому товару. Налог считается по магазину целиком, поэтому предельный ДРР и прибыль товара даны до налога — реальный запас меньше на вашу ставку.
- Не анализирует товары без заполненной себестоимости. Без неё прибыль неизвестна, и любой вывод был бы угадыванием. На такие товары есть отдельная рекомендация — заполнить.
- Не трогает ваши кампании. Все решения принимаете вы, сервис только показывает цифры и называет действие.
- Не выдумывает нормативы. Ни «нормального ДРР», ни «допустимой доли возвратов» из воздуха: всё сравнивается либо с экономикой конкретного товара, либо со средним по вашему же магазину.
Разбор входит в тариф «Про»: там он обновляется сам раз в месяц, а кнопкой запускается раз в неделю без доплаты, и первый разбор приходит сразу после первой синхронизации. На «Старте» раздел тоже открыт, но каждый запуск платный — 50 рублей. Если хотите посмотреть, что разбор найдёт в ваших магазинах, подключите Ozon.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно