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