Я могу продать товар с плюсом и всё равно потерять деньги на запасе этой позиции. В моих магазинах для проверки такого результата приходится смотреть дальше расчёта отдельного заказа: проданная единица уже принесла доход, а оставшиеся продолжают лежать на складе. Если учитывать расходы только рядом с продажами, хранение непроданного остатка легко потерять из виду. При этом деньги поставщику уже ушли за весь закупленный объём. Поэтому я проверяю отдельно заработок на заказах и то, во что обходится ожидание следующих продаж.
По запросу «комиссия озон за хранение» обычно хочется найти ставку и быстро подставить её в расчёт. Но одна ставка не отвечает на главный вопрос: сколько конкретная позиция забирает из заработка, пока ждёт покупателя. Нужны условия начисления, история остатков и расходы за тот же период, за который я считаю результат продаж. А ещё нужно отделить фактически списанные деньги от закупки, которая пока остаётся в товаре. Ниже я покажу порядок проверки без выдуманных тарифов и обещаний бесплатного размещения.
Когда хранение бесплатное и с какого момента становится платным
Сначала я выясняю, где физически находится запас, за который собираюсь считать расходы. При FBO товар размещается на складе Ozon, поэтому условия его хранения нужно искать среди услуг по этой схеме. При FBS основной запас хранится у продавца, и собственный склад не становится бесплатным от отсутствия соответствующего начисления площадки. Отдельные услуги, связанные с возвратами или задержкой вывоза, я проверяю самостоятельно, не смешивая их с обычным размещением запаса. Разницу в составе расходов я подробнее разобрал в статье о том, как сравнить полную стоимость продажи на FBO и FBS.
Бесплатное хранение в Ozon Seller я проверяю как условие для конкретного товара и периода, а не как постоянное свойство площадки. В действующих правилах нужно найти, предусмотрено ли освобождение от оплаты, на какие товары оно распространяется и какое событие прекращает льготу. Если условие связано со сроком после приёмки, понадобится дата, от которой этот срок отсчитывается. Если расчёт зависит от показателя оборачиваемости или другой характеристики, нужны именно её определение и порядок пересчёта из документа. Я не знаю действующих условий вашего кабинета и не стану подставлять вместо них срок из старой публикации.
Начало платного хранения я устанавливаю по действующим условиям и проверяю по детализации начислений. Дата поступления товара на склад сама по себе ещё не доказывает, что оплата начинается сразу или, наоборот, после какого-то бесплатного промежутка. Также нельзя считать, что новая поставка автоматически обнуляет возраст всего остатка: такое правило должно быть прямо предусмотрено условиями. Я сохраняю документ с периодом действия и сопоставляю его с датами, за которые выставлена услуга. Если вижу расхождение, отправляю в поддержку артикул, склад, даты и спорную строку начисления, а не общий вопрос о дорогом хранении.
Где проверить стоимость хранения в Ozon Seller
На вопрос «сколько стоит хранение на Ozon» я ищу разные ответы: по какому правилу должны начислить плату и сколько уже начислили фактически. Первый ответ дают действующие тарифные документы и применимые условия кабинета, второй — детализация услуг за выбранный период. Названия разделов интерфейса могут меняться, поэтому ориентируюсь на содержание документа, а не на запомненную последовательность кнопок. Мне нужны единица тарификации, ставка, расчётная база, даты и основания освобождения от оплаты. Без этих полей даже аккуратно переписанная сумма не позволяет проверить расчёт.
Дальше я восстанавливаю механику начисления ровно в тех единицах, которые указаны в документе. Если плата зависит от объёма и времени размещения, нужно применить ставку к тарифицируемому объёму за соответствующее время с учётом оговорённых исключений. Нельзя умножать ставку за объём на количество штук, пока не выполнен перевод единиц. Если в расчёт входят габариты, я сверяю использованные площадкой данные с фактической упаковкой и выясняю причину расхождений. Для меня это отдельная проверка: ошибка в исходных данных способна сделать неверным весь прогноз расходов.
Стоимость хранения в Ozon Seller я сопоставляю с продажами за тот же период оказания услуги. Дата появления начисления в отчёте может отличаться от периода, к которому оно относится, и это нужно проверить в детализации. Ещё я отделяю хранение от приёмки, доставки, возвратов и других услуг, даже если они показаны рядом. Иначе возникает желание снизить запас ради экономии на расходе, который вообще не зависит от времени нахождения товара на складе. О том, какие удержания стоит разделять, я написал в разборе комиссии Ozon и остальных расходов из выручки.
Отсутствие начисления в текущем отчёте ещё не подтверждает бесплатное хранение. Сначала проверьте условия освобождения от оплаты и период, за который уже отражены услуги. Если детализации пока нет, будущий расход лучше оставить отдельной оценкой, а не приравнивать к отсутствующему. Иначе закупка будет опираться на прибыль, которую ещё предстоит уменьшить.
Как посчитать, сколько хранения выдерживает конкретная позиция
Первым шагом я выбираю артикул, магазин и единый период расчёта. Собираю продажи, возвраты, расходы на заказы, начисленное хранение и движение остатков за эти даты. Остаток на конец периода нужен для оценки замороженной закупки, а история остатков — для проверки расходов на размещение. Это разные задачи, и один снимок склада их не заменяет. Если одинаковая позиция продаётся в нескольких моих магазинах, сначала считаю каждый отдельно: чужой запас и чужие начисления не должны случайно попасть в прибыль выбранного магазина.
Следующим шагом получаю доход от продаж позиции за выбранный период с учётом возвратов и корректировок. За основу беру отчёт, позволяющий отделить начисления за товар от удержаний за услуги. Выплата на расчётный счёт для этого неудобна: из неё уже могли вычесть расходы, которые я собираюсь учитывать ниже. Если начать с такой выплаты и повторно отнять те же услуги, прибыль окажется заниженной. Неясные компенсации и корректировки я сначала разбираю по назначению, а не автоматически добавляю к обычной выручке.
Затем из дохода вычитаю себестоимость проданных единиц и расходы, относящиеся к этим продажам: комиссию, логистику, упаковку и другие подтверждённые затраты. Рекламу учитываю по принятому способу распределения и отдельно помечаю случаи, когда точно привязать её к артикулу не получается. Налоги включаю согласно своей системе расчёта, без универсальной ставки для всех продавцов. Получается маржинальный доход позиции до хранения, а не чистая прибыль всего бизнеса. Закупочную стоимость непроданного остатка на этом шаге не вычитаю: она остаётся в запасе и будет рассмотрена отдельно.
После этого из маржинального дохода вычитаю хранение всего запаса выбранной позиции за тот же период. Лучше брать прямую детализацию по артикулу, если она доступна. Если расходы указаны только общей суммой, для распределения использую базу, максимально близкую к тарифной: например, объём размещения с учётом времени, когда именно он участвует в начислении. Деление по выручке для этой задачи опасно, потому что плохо продающийся товар может занимать склад и почти не получать расходов. Когда данных для обоснованного распределения нет, результат помечаю как оценочный и не делаю вид, что получил точную прибыль артикула.
Последним шагом рядом с результатом после хранения ставлю стоимость оставшегося запаса: количество непроданных единиц умножаю на их закупочную себестоимость по своему учёту. Полученную сумму не вычитаю повторно из прибыли, а показываю как деньги, которые пока не вернулись через продажи. Для контроля также делю расходы на хранение на положительный маржинальный доход до хранения за сопоставимый период. Так видно, какую часть заработка от продаж забирает ожидание покупателей. Если доход до хранения уже отрицательный или отсутствует, такое отношение теряет смысл: сначала разбираюсь с убыточной продажей либо отсутствием спроса.
Ошибка, из-за которой медленный товар выглядит прибыльным
Самая неприятная ошибка в таком расчёте — распределять хранение только между проданными товарами, оставляя непроданным позициям пустую строку расходов. В результате ходовой ассортимент оплачивает чужое ожидание, а залежавшийся запас выглядит безобидно. На основании такого отчёта легко продолжить закупку медленной позиции: последние продажи дали положительную маржу, значит, всё будто бы в порядке. Но после поставки денег в остатке станет больше, а обязательства по хранению будут определяться действующими условиями размещения. Денежный ущерб здесь складывается из уже понесённых расходов и нового закупленного запаса, вернуть который через продажи пока не получается.
Именно в этом смысле медленный товар платит дважды: за место на складе и за задержку возврата вложенных денег. Только я не записываю замороженную закупку в расходы целиком, иначе получится двойное списание себестоимости. Если закупка профинансирована кредитом, отдельно считаю фактические затраты на финансирование по своим условиям. Если использованы собственные средства, универсальной денежной оценки упущенной возможности у меня нет. Тогда я показываю сумму запаса и конкретное ограничение: какую следующую закупку или оплату приходится откладывать, пока эти деньги находятся в товаре.
Чтобы заметить проблему до закрытия месяца, я сравниваю не только накопленное хранение, но и его ожидаемую величину с оставшимся потенциалом заработка позиции. Для прогноза нужны актуальные условия, остаток и реалистичный темп продаж, очищенный от случайного всплеска акции. Если продажи идут нерегулярно, единственную дату распродажи я не обещаю: рассматриваю более медленный сценарий и проверяю, выдерживает ли его маржа. Отдельно отмечаю товары, у которых заканчивается подтверждённое освобождение от оплаты, если оно предусмотрено условиями. Такой список полезнее общего роста складских расходов: он показывает, где решение ещё можно принять до следующего начисления.
Что я меняю до того, как хранение попадёт в итог месяца
Сначала я останавливаю автоматическое пополнение подозрительной позиции и проверяю уже запланированные поставки. Это не означает немедленно обнулить запас: важно не создать дефицит там, где спрос действительно есть. Я сравниваю имеющийся остаток с ожидаемыми продажами и сроком следующего пополнения, используя собственные данные, а не чужой норматив оборачиваемости. Если запас избыточный, пересматриваю объём отправки на склад и проверяю доступные варианты размещения. Хранить часть товара у себя имеет смысл только после сравнения всех дополнительных расходов, а не потому, что строка Ozon исчезнет из отчёта.
Со скидкой я поступаю осторожнее, чем с остановкой новой поставки. Сначала считаю, сколько дохода потеряю из-за снижения цены с учётом изменения связанных расходов, а затем сравниваю это с ожидаемой экономией на хранении. Ускорение продаж нельзя считать гарантированным: снижение цены проверяю на реальном отклике, иначе можно просто продать привычный объём дешевле. Вывоз тоже сравниваю с продолжением размещения, включая стоимость самого вывоза, дальнейшего хранения и обработки, если эти расходы возникают. Уже начисленное хранение не исчезнет от принятого решения, поэтому варианты между собой сравниваю по будущим затратам, не пытаясь оправдать ими прошлую закупку.
SellOps я сделал для своих магазинов, потому что не нашёл готового сервиса аналитики, расчётам которого мог бы доверять без постоянной перепроверки. Подход к работе с данными описан на странице о том, как устроен сервис, но начать эту проверку можно и в обычной таблице. Завтра выгрузите остатки и доступную детализацию хранения, выберите позицию с редкими продажами и посчитайте её результат по порядку выше. Рядом поставьте стоимость непроданной закупки и отметьте, какие начисления ещё не подтверждены. После этого примите конкретное решение по следующей поставке этой позиции и назначьте повторную проверку по мере появления новых данных, не откладывая её до месячного отчёта.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно