Как я считаю юнит-экономику товара на Ozon и проверяю, сколько остаётся с продажи
За 90 дней выручка по моим магазинам составила 36 518 776 ₽, а после учтённых расходов из каждых 100 ₽ осталось 11,0 ₽. Когда смотришь только на оборот, такой остаток легко переоценить. Деньги проходят через кабинет, часть приходит на расчётный счёт, закупки продолжаются — внешне всё выглядит нормально. Но решение о следующей поставке я не могу принимать по сумме поступлений. Мне нужно понимать, сколько оставляет проданная единица и какие расходы ещё не попали в расчёт.
В своих магазинах я разделяю расчёт до продажи и проверку после неё. До продажи у меня есть предполагаемая цена, закупочная стоимость и условия, которые нужно проверить в актуальных документах Ozon. После продажи появляются начисления, рекламные расходы, возвраты и расхождения с первоначальным ожиданием. Это разные задачи, хотя часто их пытаются решить одной строкой в таблице. Ниже покажу порядок, в котором я собираю юнит-экономику товара, чтобы за красивым остатком не прятались пропущенные затраты.
Что видно в расходах моих магазинов
В сводке за 90 дней каждые 100 ₽ выручки распределились так: комиссия Ozon — 39,3 ₽, логистика и прочие сборы — 11,4 ₽, реклама — 12,7 ₽. Себестоимость товара забрала ещё 22,1 ₽, налог — 3,5 ₽. После этих статей осталось 11,0 ₽. Это фактическая структура по совокупности моих магазинов, а не тарифная сетка площадки. Я использую её как проверку общей картины, но не переношу эти доли автоматически в карточку каждого товара.
Самая крупная статья в этой сводке — комиссия, однако из этого не следует, что у любого моего товара она занимает такую же долю. В общей сумме смешиваются продажи с разными условиями и разной экономикой. Логистика и прочие сборы здесь объединены, поэтому отдельную величину эквайринга по этим данным я назвать не могу. Для расчёта конкретной единицы эту группу придётся раскрыть по детализации начислений. Иначе я получу аккуратную таблицу, но не узнаю, какой именно расход изменил результат.
Остаток 11,0 ₽ с каждых 100 ₽ выручки показывает, сколько сохранилось после перечисленных статей. Называть его чистой прибылью без дополнительных данных я бы не стал. В переданной сводке нет отдельного раскрытия постоянных расходов, например оплаты сотрудников или сервисов. Если они не включены в перечисленные группы, оплачивать их предстоит из этого остатка. Поэтому хороший результат на уровне единицы я рассматриваю как основу для прибыли бизнеса, а не как её окончательное подтверждение.
Куда уходит 100 ₽ выручки
Магазины автора, 90 дней
Комиссия Ozon39,3 %
Логистика и прочие сборы11,4 %
Реклама12,7 %
Себестоимость товара22,1 %
Налог3,5 %
Осталось11,0 %
Доли посчитаны по доставленным заказам за 90 дней. Сумма всех статей — ровно 100%, поэтому видно, сколько остаётся на самом деле. Собственные магазины автора, 90 дней, выручка 36 518 776 ₽
Какие данные я собираю перед расчётом
Сначала я фиксирую, что именно считаю: конкретный товар, схему работы, период и состоявшуюся продажу. Для ретроспективной проверки беру выручку по продаже, а не текущую цену в карточке и не сумму банковской выплаты. Скидки продавца должны быть отражены в выбранной цене, иначе доход окажется завышенным ещё до вычитания расходов. Если в документах есть компенсации или корректировки, я отдельно проверяю их экономический смысл и связь с продажей. Прибавлять любую положительную строку к цене товара без такой проверки нельзя.
Затем я собираю начисления, которые относятся к выбранной продаже или группе продаж этого товара. Мне нужны комиссия, доставка, другие услуги площадки, рекламные расходы и собственная себестоимость. Для каждого источника записываю период и правило привязки к товару. Дата заказа, дата оказания услуги и дата отражения начисления могут различаться, поэтому совпадение календарного периода само по себе ничего не гарантирует. Если часть расходов ещё не появилась в документах, я помечаю расчёт как предварительный, а не считаю отсутствие строки отсутствием затрат.
Эквайринг я проверяю отдельно, даже когда в итоговой таблице он находится внутри общей группы сборов. Если в моей детализации есть отдельное начисление за обработку платежа, оно должно попасть в расходы. Если оно уже учтено в собранной сумме услуг, повторно вычитать его нельзя. Для предварительной модели условия комиссии, логистики и обработки платежей я беру из актуальных документов, применимых к моей схеме работы. Средняя доля расходов по магазину для этого не подходит: она описывает прошлые продажи, а не обещает условия будущей.
Как посчитать остаток с единицы по шагам
Первый шаг — поставить в начало расчёта доход от состоявшейся продажи единицы товара. Рядом я сохраняю источник этой суммы, чтобы потом не спорить с собственной таблицей. Следующий шаг — вычесть комиссию Ozon, относящуюся к той же продаже. В расчёте по факту я предпочитаю сумму начисления, а в прогнозе применяю актуальное правило расчёта к той базе, которая указана в условиях. Просто умножить цену из карточки на привычную ставку недостаточно, если сама цена или база комиссии выбраны неверно.
Дальше из остатка вычитаю логистику, эквайринг и остальные относящиеся к продаже услуги, проверяя, чтобы каждая строка учитывалась только однажды. После них вычитаю себестоимость проданной единицы. В неё я включаю закупочную стоимость и те затраты на доведение товара до продажи, которые решил учитывать именно в себестоимости, например подготовку и упаковку. Общую доставку партии распределяю по понятному основанию: количеству, весу или объёму, в зависимости от того, что формирует расход. Главное — не спрятать доставку в себестоимости, а затем повторно вычесть её отдельной строкой.
Следующий шаг — реклама, и здесь приходится выбрать правило распределения. Для средней фактической экономики товара я делю относящиеся к нему рекламные расходы на количество реализованных единиц за согласованный период с учётом возвратов. Если кампания продвигала несколько товаров, сначала распределяю расход между ними по доступным данным, а уже затем считаю нагрузку на единицу. Когда достоверной привязки нет, я прямо обозначаю распределение как оценку. Стоимость рекламного заказа тоже можно считать, но это отдельный показатель: подменять им средние рекламные расходы на каждую реализованную единицу нельзя.
После рекламы я вычитаю налог, рассчитанный по правилам моего режима налогообложения, а не по удобной для таблицы базе. Если налог зависит от доходов, нельзя автоматически считать его от остатка после услуг площадки; если учитываются расходы, нужно проверить условия их признания. Для проверки общей логики на моей сводке получается: 100 ₽ − 39,3 ₽ − 11,4 ₽ − 12,7 ₽ − 22,1 ₽ − 3,5 ₽ = 11,0 ₽. В этой записи эквайринг нельзя дописать сверху без проверки состава группы «логистика и прочие сборы». На своих данных читатель повторяет тот же порядок, но подставляет фактические суммы своего товара, а не мои средние доли.
Не начинайте расчёт с выплаты Ozon, если затем собираетесь вычитать все расходы площадки. Выплата может уже учитывать удержания и корректировки, поэтому такой подход способен повторно уменьшить результат на одни и те же суммы. Я начинаю с выручки и отдельно собираю расходы, а движение денег сверяю другим расчётом. Если исходная сумма непонятна, сначала нужно восстановить её состав, иначе дальнейшая точность таблицы ничего не исправит.
Где расчёт расходится с деньгами
Особенно неприятная ошибка — повторно вычесть рекламу, которая уже попала в общую выгрузку расходов. Продавец собирает все начисления площадки, получает промежуточный остаток, а затем добавляет рекламный кабинет как ещё один источник затрат. Если рекламные удержания уже были в первой сумме, прибыль искусственно уменьшается на весь повторно учтённый расход. На структуре моей сводки это означало бы лишнее вычитание 12,7 ₽ из каждых 100 ₽ выручки, если вся реклама действительно уже включена в исходные удержания. Такой расчёт способен показать убыточность там, где после перечисленных расходов оставались 11,0 ₽.
Другая ошибка возникает, когда рекламные расходы делят на заказанные единицы, а доход считают только по завершённым продажам. В знаменателе остаются отмены и возвраты, которые не дали соответствующей выручки, и рекламная нагрузка на проданный товар выглядит ниже. У возврата при этом могут сохраниться связанные с ним расходы, даже если сам товар вернулся в пригодном для продажи состоянии. В средней экономике я распределяю такие расходы на реализованные единицы по заранее выбранному правилу. Закупочную стоимость вернувшегося пригодного товара автоматически списывать как окончательную потерю тоже нельзя: нужно проверить его дальнейший учёт.
Налог часто теряется из-за того, что продавец смотрит на сумму к перечислению и воспринимает её как доход для всех расчётов. Но удержание комиссии само по себе не доказывает, что на ту же сумму уменьшается налоговая база. В моей сводке налог составляет 3,5 ₽ на каждые 100 ₽ выручки, однако это фактическая доля по моим данным, а не ставка для чужого магазина. Подставлять её в свою таблицу без проверки режима и базы нельзя. Я сверяю налоговую часть с учётными данными, а спорные правила уточняю у бухгалтера, вместо того чтобы подгонять налог под желаемую маржу.
Что я проверяю перед следующей поставкой
Когда расчёт готов, я умножаю средний результат по товару на количество реализованных единиц и сравниваю полученную сумму с итогом по тому же товару за период. Если цифры расходятся, проверяю состав выручки, количество продаж, возвраты и привязку расходов. Нераспределённые услуги оставляю отдельной видимой строкой, пока не выберу обоснованное правило распределения. Не нужно размазывать их по товарам только ради совпадения последней ячейки. Расхождение должно иметь объяснение, иначе средний результат на единицу нельзя уверенно использовать для закупки.
Для решения о следующей поставке я делаю отдельный прогноз, потому что прошлый остаток не гарантирует будущий. Подставляю ожидаемую цену продажи, новую себестоимость партии и актуальные условия площадки. Рекламную нагрузку проверяю при разных допущениях, не выдавая удачный прошлый период за постоянное условие. Отдельно смотрю, хватит ли суммарного остатка после продаж на постоянные расходы бизнеса. Товар может оставлять деньги с единицы, но при небольшом объёме продаж этого окажется недостаточно для покрытия общих затрат.
SellOps я сделал сам, потому что не нашёл готового сервиса аналитики, которому мог бы доверять в своих магазинах. Для меня доверие к расчёту начинается с возможности объяснить исходные суммы и порядок вычитания, а не с оформления отчёта. Посмотреть, как устроен сервис, имеет смысл после того, как понятна собственная логика учёта. Автоматизация не освобождает от проверки себестоимости, налоговой базы и состава расходов. Если исходные данные неверны, быстрее получится только неверный результат.
Завтра я бы начал с товара, по которому уже есть завершённые продажи и достаточно полные начисления, а не со всего ассортимента сразу. Соберите по нему выручку, комиссию, логистику, эквайринг, прочие услуги, себестоимость, рекламу и налог, сохранив рядом источники. Пройдите порядок вычитания из статьи и подпишите, какие суммы фактические, какие распределены, а какие пока остаются оценкой. Затем проверьте возвраты и убедитесь, что рекламные расходы или услуги площадки нигде не вычтены повторно. Только после сверки используйте остаток с единицы для решения о цене и закупке — тогда таблица будет отвечать на вопрос о деньгах, а не просто сходиться.