Когда товар закончился на Ozon, я сначала проверяю, действительно ли его больше нельзя купить, а уже потом смотрю позиции карточки. Пустой остаток на конкретном складе и полная недоступность товара для покупателей — разные ситуации. В других регионах ещё может лежать запас, часть товара может находиться в резерве, а следующая партия — ехать на приёмку. Если смешать всё это в одну цифру, легко отправить срочную поставку туда, где она не решит проблему. Поэтому мой первый вопрос звучит приземлённо: что покупатель может заказать сейчас и когда появится следующая доступная единица.
У меня несколько магазинов, и общий остаток по кабинету не отвечает на этот вопрос. Пока я выясняю, где доступен товар, отдельно проверяю рекламные расходы и не продолжаю ли покупать трафик без понятного результата. Но уже потраченный бюджет не записываю целиком в убыток от обнуления: часть рекламы могла привести доставленные заказы ещё до разрыва. С карточкой поступаю так же осторожно — отделяю видимые изменения от догадок об алгоритме. Ниже покажу порядок, по которому я считаю цену отсутствия товара и принимаю решение о пополнении.
Что будет с карточкой, если товар кончится на Ozon
Карточка без остатка на Ozon перестаёт выполнять свою главную задачу там, где товар нельзя заказать: превращать интерес покупателя в продажу. При этом отсутствие доступного предложения, исчезновение карточки из конкретной выдачи и удаление самой карточки — не одно и то же. Я проверяю страницу товара и возможность заказа для нужного региона, а не делаю вывод по одному поисковому запросу. Выдача зависит от условий просмотра, поэтому собственная проверка позиции тоже не даёт полной картины. Полезнее сопоставить доступность, показы, переходы и заказы до разрыва и после возвращения товара.
Обнуление остатка само по себе не означает, что накопленные отзывы и оценку нужно считать потерянными. Но я не смешиваю рейтинг по отзывам с местом в поиске: это разные показатели, и сохранённая оценка не гарантирует прежних продаж. Если после пополнения карточка продаёт слабее, причиной может оказаться доставка, цена, изменение спроса или предложение конкурентов. Без сравнения этих условий я не могу честно назвать причиной именно отсутствие товара. У меня нет данных о внутренней формуле ранжирования Ozon, поэтому обещать автоматическое возвращение на прежнюю позицию я не буду.
С уже потраченной рекламой я разбираюсь через полученный результат, а не через ощущение, что весь разгон карточки пропал. Расходы, которые привели прибыльные продажи до обнуления, уже участвовали в заработке магазина. Отдельный вопрос — списания во время недоступности товара и дополнительные расходы после возвращения в продажу. Я смотрю фактический статус кампаний, рекламируемые предложения и начисления: рассчитывать, что всё нужное остановится само, не хочу. После пополнения не включаю прежний бюджет вслепую, а сначала проверяю доступность, условия доставки и экономику новых заказов.
Сначала проверяю, где именно закончился остаток
По 20 862 доставленным заказам моих магазинов за 90 дней медианный срок доставки составил 2 дня, а 80% заказов доезжали за 4 дня и меньше. Медиана показывает середину распределения сроков, а доля заказов в пределах 4 дней — насколько часто покупатель получал товар в этом интервале. Для меня это ориентир при оценке условий доставки, в которых состоялись эти продажи. Но здесь учтены только доставленные заказы: несостоявшихся покупок из-за отсутствия товара в этой выборке нет. И эти данные ничего не говорят о том, сколько займут производство, перевозка моей партии и её приёмка.
Сколько дней заказ едет до покупателя
Доля доставленных заказов по сроку доставки
Если закончился остаток Ozon в регионе, откуда шёл спрос, наличие товара далеко от покупателя ещё не делает ситуацию нормальной. Я проверяю, осталась ли возможность заказа и какой срок доставки видит покупатель после изменения доступности. Средний показатель по всем магазинам может скрыть ухудшение именно там, где товар продавался чаще. Поэтому остатки и спрос я сопоставляю по географии, а не только по общему артикулу. В статье про актуальные кластеры Ozon и остатки по регионам я подробнее объясняю, как выстроить такую проверку.
Дальше я разделяю доступный к продаже запас, зарезервированный товар и ожидаемые поступления. Партия в пути помогает прогнозировать будущее, но не закрывает покупательский спрос прямо сейчас. Даже прибытие машины ещё не равно моменту, когда товар станет доступен для заказа, поэтому в плане мне нужна именно последняя дата. Если цифры в кабинете выглядят противоречиво, сначала сверяю их смысл и момент обновления. Для этого пригодится мой разбор о том, как посмотреть остатки на складах Ozon и понять, какой товар ещё можно продать.
Как я считаю стоимость out of stock на Ozon
Стоимость разрыва я считаю не через потерянную выручку, а через недополученный маржинальный доход и дополнительные расходы. Из суммы несостоявшихся продаж нельзя забывать вычесть затраты, которых без этих продаж тоже не возникло. Постоянные расходы магазина я проверяю отдельно: они продолжают давить на денежный результат, но не должны повторно попадать в расчёт потерь от конкретного разрыва. Для расчёта мне нужны период недоступности, ожидаемый спрос, экономика продажи и фактические расходы на восстановление наличия. Если какого-то элемента нет, я оставляю оценку предварительной, а не заполняю пробел удобным числом.
Первым шагом я оцениваю, сколько товара могло бы продаться за время отсутствия. Беру сопоставимые периоды, когда товар был доступен, и проверяю, совпадали ли цена, рекламная активность, география доставки и характер спроса. Дни без остатка не включаю в расчёт обычной скорости продаж, иначе отсутствие товара само занизит прогноз потребности. Затем умножаю ожидаемый спрос за день на продолжительность разрыва, а при заметных колебаниях считаю спрос отдельно по дням. Из полученного количества вычитаю продажи, которые всё же состоялись через доступный запас, и отдельно учитываю подтверждённый перенос покупок на другие мои предложения.
Следующим шагом считаю маржинальный доход с продажи, которую магазин предположительно потерял. Из выручки продавца по выбранной базе расчёта вычитаю себестоимость, комиссию, связанные с продажей логистические услуги, упаковку и остальные переменные затраты. Затем учитываю налоговую нагрузку по своей системе и обычные затраты на привлечение заказа, если они нужны для такого объёма продаж. Каждую статью беру из собственных данных и проверяю, не была ли она уже вычтена в исходной сумме поступления. Полученный маржинальный доход умножаю на оценку потерянного количества — это денежный результат, который мог принести товар при сохранении наличия.
После этого добавляю расходы, которые возникли именно из-за разрыва. У срочной перевозки беру превышение над обычной стоимостью, а не весь счёт, потому что плановую доставку партии пришлось бы оплачивать в любом случае. Рекламные списания без возможности получить заказ учитываю по факту, а дополнительные затраты на восстановление продаж — только относительно сопоставимого обычного режима. Если после поставки часть отложенного спроса вернулась, корректирую первоначальную оценку потерь, не считая весь всплеск автоматически возвращёнными покупателями. В результате у меня отдельно видны недополученный доход, реальные дополнительные списания и неопределённость прогноза.
Не складывайте потерянную выручку, недополученную маржу и весь исторический рекламный бюджет в общий убыток от отсутствия товара. Такой расчёт повторно учитывает одни и те же деньги и делает срочную поставку выгоднее на бумаге, чем она есть. Я сравниваю дополнительную стоимость ускорения с маржинальным доходом, который оно предположительно сохранит за сокращённый период разрыва. Уже потраченная реклама сама по себе не оправдывает новую убыточную продажу.
Когда запускать следующую поставку, чтобы не ждать обнуления
Точку запуска следующей поставки я считаю от времени, необходимого для возвращения товара в продажу. В этот срок включаю подготовку партии, ожидание отгрузки, перевозку, приёмку и промежуток до появления доступного остатка. Базовая формула выглядит так: ожидаемый спрос за полный срок пополнения плюс страховой запас. Если спрос относительно ровный, его можно получить умножением ожидаемых продаж за день на срок пополнения. При акции, сезонном изменении или расширении рекламы я складываю прогноз спроса по соответствующим периодам, потому что старая скорость продаж уже может не подходить.
Полученный порог я сравниваю с запасом, который действительно способен покрыть этот спрос. Для решения о новом заказе учитываю доступный остаток и подтверждённые поступления, вычитая обязательства, если они ещё не исключены из исходных данных. Но общая сумма здесь недостаточна: поставка после ожидаемого обнуления не спасает дни до своего прибытия. Поэтому я раскладываю остаток во времени — последовательно вычитаю прогноз продаж и добавляю поступления на дату ожидаемой доступности. Если прогноз показывает провал раньше пополнения, разбираюсь с ускорением, перераспределением или сокращением спроса, а не успокаиваюсь большим количеством товара в пути.
Страховой запас я подбираю по реальным отклонениям спроса и сроков поставки, а не по желанию видеть полный склад. Сначала смотрю, насколько фактическое потребление расходилось с прогнозом и где задерживалось пополнение. Затем сопоставляю цену дефицита с затратами на дополнительный запас, хранение и замороженные в товаре деньги. Точка запуска и размер партии при этом отвечают на разные вопросы: первая определяет момент действия, второй — сколько товара имеет смысл привезти. Увеличивать партию без проверки будущего спроса опасно, потому что избыток после всплеска может обойтись дороже короткого перерыва.
Как отличить нормальный разрыв от ошибки планирования
Конкретная ошибка в этом расчёте — принять срок доставки покупателю за срок собственного пополнения. Мои 2 дня медианной доставки и 4 дня, в которые укладываются 80% доставленных заказов, описывают путь уже заказанного товара к покупателю. Если поставить эти сроки в формулу следующей поставки, из неё выпадут подготовка партии, ожидание отправки и приёмка. Порог запуска окажется заниженным, и заказ поставщику будет уходить слишком поздно даже при точном прогнозе спроса. В деньгах ошибка проявится как недополученная маржа за непокрытый промежуток плюс переплата за попытку срочно его закрыть.
Нормальным я могу назвать разрыв, риск которого был виден заранее и который я осознанно принял. Например, спрос оказался нестабильным, а дополнительная закупка создавала слишком большой риск непроданного остатка. Другой вариант — товар выводится из ассортимента, поэтому отсутствие следующей партии соответствует плану. Даже неожиданная задержка сама по себе ещё не доказывает, что вся система закупок устроена плохо. Я проверяю, были ли разумные основания для выбранного запаса и меняется ли решение после появления новых данных.
Системную ошибку я вижу там, где один и тот же механизм регулярно приводит к обнулению, а параметры планирования остаются прежними. Например, срок пополнения считают до отгрузки, поставки в пути воспринимают как доступный остаток или скорость продаж усредняют вместе с днями отсутствия. Ещё один сигнал — общий запас выглядит достаточным, но разрывы постоянно возникают в регионах основного спроса. Для проверки сохраняю прогноз на момент решения и потом сопоставляю его с фактическими продажами и датой доступности партии. Так можно установить причину, а не каждый раз объяснять отсутствие товара внезапным спросом.
SellOps я сделал сам, потому что не нашёл готовой аналитики, которой мог бы доверять в работе со своими магазинами. Но сервис не отменяет необходимости понимать, какое число стоит в расчёте: доставленные заказы, доступный запас или будущая поставка. В описании того, как устроен SellOps, можно посмотреть логику работы сервиса, а для решения о закупке всё равно понадобятся проверенные исходные данные. Я не хочу, чтобы аккуратная таблица создавала уверенность там, где неизвестна дата приёмки или не учтён рекламный всплеск. Для спорных случаев мне полезнее видеть диапазон возможного результата, чем единственный прогноз без объяснения.
Завтра начните с товара, у которого запас уже вызывает сомнения, и выпишите доступный остаток отдельно от резервов и поставок в пути. Рядом укажите ожидаемую дату, когда следующая партия станет доступна покупателю, и прогноз спроса до этой даты. Посчитайте остаток по ходу этого промежутка, затем переведите возможный дефицит в недополученный маржинальный доход по шагам выше. После этого сравните цену ускорения с доходом, который оно может сохранить, и проверьте рекламу на период разрыва. Зафиксируйте новый порог запуска поставки и ответственного за действие, даже если этим человеком будете вы сами. Тогда обнуление станет проверяемым событием с понятной причиной, а не очередным поводом срочно искать деньги на доставку.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно