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