Мы нашли у себя убыток на 50 тысяч рублей
Мы нашли у себя убыток на 50 тысяч рублей. Спойлер его не существовало
Полгода назад мы начали писать свою аналитику для маркетплейсов — потому что считать прибыль в чужих сервисах надоело, а в кабинетах площадок её нет вовсе. Одной из первых функций стала вкладка «Цена уехала»: она находила товары, где цена на сайте опустилась ниже себестоимости с учётом комиссий.
Вкладка нашла 125 позиций и посчитала скрытый убыток — 50 388 рублей.
Через неделю мы её удалили. Убытка не было ни на рубль.
Дальше — разбор двух ошибок, на которых мы обожглись. Обе сводятся к одному: цифра в отчёте площадки не всегда означает то, что написано в её названии.
Ошибка первая: выручка, которой мы не получали
В аналитике Ozon есть метрика revenue. Переводится как «выручка», лежит в разделе аналитики продавца, и первое, что приходит в голову — это деньги, которые получил продавец.
Это деньги, которые заплатил покупатель.
Разница кажется мелкой, пока не вспомнишь про соинвестирование. Площадка часто показывает покупателю цену ниже вашей, а разницу компенсирует сама — баллами на Ozon, деньгами на Wildberries. Покупатель видит 800 рублей, вы получаете свою тысячу, 200 рублей доплачивает площадка.
Теперь посчитайте: revenue, делённая на ordered_units — это средняя цена, которую платил покупатель. То есть сайтовая цена по построению. Не ваша.
Мы взяли эту цифру за выручку продавца и сравнили с себестоимостью. Получили 125 товаров, продающихся «в минус». На самом деле мы сравнили себестоимость с ценой, которая никогда не была нашей выручкой — она была ценой со скидкой площадки, которую площадка же нам и компенсировала.
Вкладку удалили. Правило записали: прежде чем считать метрику площадки своей выручкой, проверь, чья это сторона — покупателя или продавца.
Ошибка вторая: комиссия 48,5%, которой почти нет
Вторую ошибку мы сделали на Яндекс Маркете — и она была обратной по знаку.
Тариф за размещение в нашей категории — 48,5%. Цифра, от которой хочется закрыть ноутбук. Но в отчёте «Стоимость услуг» фактические удержания оказались копеечными, и мы решили, что тариф на бумаге, а живых денег площадка почти не берёт.
Вот живой заказ: наша цена — 10 771 ₽, покупатель заплатил — 5 813 ₽, размещение по тарифу — 5 224 ₽, скидка на услугу от Маркета — 5 172 ₽, к оплате осталось — 52 ₽.
Выглядит как подарок: комиссия пять тысяч превратилась в полсотни. На этом основании мы посчитали, что платная подписка с пониженным тарифом невыгодна вчетверо, и чуть не выкинули её из расчётов.
Ошибка в том, что скидку на комиссию Маркет даёт не просто так. Он снижает цену покупателю — с 10 771 до 5 813 — и ровно на столько же снижает себе комиссию. Это не подарок, это механика сделки: площадка делит с вами скидку для покупателя. Соинвестирование здесь не доход и не убыток, а часть конструкции.
И вот ключевое отличие, которое мы поняли не сразу. На Ozon и Wildberries выручка продавца равна вашей цене — разницу с витриной возвращает площадка. На Яндекс Маркете выручка равна платежу покупателя минус фактические услуги. Не полной цене и не «цене минус комиссия по тарифу».
Одно и то же слово «соинвестирование» означает на разных площадках разные деньги. Формулу, которая работает на Ozon, нельзя переносить на Маркет — и наоборот.
Почему нельзя вывести среднюю ставку
После второй ошибки мы сделали то, что кажется разумным: вывели средний процент удержаний и заложили его в расчёт цен. Получилось 55,1%.
Это тоже не сработало, потому что скидку на комиссию Маркет даёт неравномерно.
По кабелю площадка погасила комиссию почти полностью — от цены осталось 0,5%. По тросу из той же группы товаров — только половину, осталось 22%. Одна категория, один поставщик, разница в двадцать с лишним раз.
Результат на живой позиции: трос с себестоимостью 478 ₽. Модель со средней ставкой обещала «на руки 703 ₽». Фактически пришло 317 ₽. Это убыток, которого автоматический репрайсер не видел в упор — он считал по средней.
Предсказать эту скидку заранее нельзя. Значит, любая модель с фиксированным процентом удержаний будет врать — вопрос только в том, на каких товарах и в какую сторону.
Задержка, из-за которой цифры врут ещё месяц
Последняя ловушка, про которую стоит знать: начисления по Маркету приходят с задержкой до месяца. Пока акт не сформирован, в отчёте по заказу стоит N/A, и «на руки» выглядит завышенным.
То есть свежий заказ в отчёте всегда красивее, чем он есть. Если вы смотрите на последнюю неделю и радуетесь марже — подождите закрывающих документов.
Что мы в итоге делаем
Три правила, которые стоили нам одной удалённой вкладки и одного неверного вывода про подписку.
Смотреть, чья сторона. Любая цифра в отчёте площадки принадлежит либо покупателю, либо продавцу. Названия метрик об этом не говорят. Выручка, цена, сумма заказа — каждую нужно проверять отдельно, по фактической выплате.
Брать факт, а не модель. Ставка из тарифной сетки — это гипотеза. Фактическое удержание по конкретному заказу — это факт. Считать прибыль нужно по второму, даже если первое проще достать.
Не строить сигналов на сайтовой цене. Всё, что выглядит как «скрытый убыток» или «маржа уехала», нужно проверять дважды: чаще всего это не убыток, а соинвест, который вам вернут.
Мы пишем EasyMP — приложение для аналитики продаж на Ozon, Wildberries и Яндекс Маркете. Оно работает на компьютере продавца, а не в облаке: ключи API никуда не передаются, потому что передавать их некуда.
Эти три ошибки — из нашей собственной разработки, и каждая стоила недели работы. Выкладываем их здесь не ради морали, а потому что механика соинвестирования в документации площадок описана скупо, а цена ошибки — решения по ценам на весь каталог.
Если считаете прибыль руками в таблице — проверьте хотя бы одну позицию по фактической выплате. Мы на этом нашли расхождение в два раза.