За 90 дней выручка по моим магазинам составила 39 632 676 ₽, но сама эта сумма не отвечает на вопрос, какие товары стоило продавать. В ней смешаны позиции с разной закупочной ценой, расходами на продвижение и стоимостью обработки заказов. Товар может давать заметную часть оборота и при этом забирать деньги у остальных. Если смотреть только на продажи, такой артикул легко принять за опору магазина. Поэтому поиск убыточных товаров я начинаю не с вопроса «что плохо продаётся», а с другого: «что остаётся после расходов, связанных с этими продажами».
Я разделяю товар, который лежит без движения, и товар, который продаётся в минус. У первого деньги застряли в остатках, у второго новые продажи могут увеличивать убыток. Внешне второй часто выглядит благополучнее: есть заказы, растёт выручка, приходится думать о пополнении склада. Но закупать следующую партию до проверки экономики опасно, потому что вместе с оборотом можно расширять и источник потерь. Дальше покажу, как я собираю расчёт по артикулам, где проверяю сомнительные суммы и почему не отключаю товар только по красной ячейке в таблице.
Почему выручка по товару ничего не говорит о его прибыли
В моих данных из каждых 100 ₽ выручки на комиссию Ozon приходится 40,2 ₽, на логистику и прочие сборы — 10,4 ₽. Ещё 13,3 ₽ забирает реклама, 21,6 ₽ составляет себестоимость товара, а 3,5 ₽ приходится на налог. После этих статей остаётся 11,0 ₽. Это структура фактического расчёта по моим магазинам за указанный период, а не тарифная сетка площадки и не ориентир для чужого бизнеса. В частности, 40,2 ₽ нельзя просто перенести в карточку другого товара как его комиссию: для отдельного артикула нужно брать его собственные начисления.
Главная ловушка здесь — принять общий остаток за характеристику каждого товара. В сумме соседствуют позиции, которым почти не требуется реклама, и позиции, продажи которых приходится поддерживать платным трафиком. Стоимость логистики и закупки у них тоже может различаться. Поэтому общий положительный результат допускает ситуацию, когда часть ассортимента работает в минус, а другая часть закрывает этот убыток. По приведённым данным я не могу назвать конкретные убыточные артикулы: для этого нужна детализация, которой в сводной структуре расходов нет.
Выручку я всё же использую, но как показатель масштаба, а не качества продаж. Она помогает понять, какие позиции первыми отправить на проверку: ошибка в расходах по ходовому товару затрагивает больше заказов. Следом я смотрю результат в рублях и то, какая часть выручки остаётся после относимых расходов. При этом оставшиеся 11,0 ₽ в приведённом расчёте не называю автоматически чистой прибылью бизнеса: из них ещё могут покрываться затраты, которых нет среди перечисленных статей. Например, содержание самого бизнеса требует отдельного учёта, и прятать его отсутствие за красивой выручкой нельзя.
Куда уходит 100 ₽ выручки
Магазины автора, 90 дней
Какие данные нужны, чтобы найти убыточный товар
Основная строка моей рабочей таблицы — артикул в конкретном магазине за выбранный период. Я не склеиваю одинаковые товары из разных магазинов до проверки: закупочная партия, продвижение и условия продаж могут отличаться. К строке привязываю продажи, возвраты, начисления площадки, рекламные расходы и себестоимость выбывших единиц. Если названия в отчётах расходятся, сопоставляю записи через устойчивые идентификаторы товара и отправления, а не через похожий текст. Иначе часть расходов легко останется отдельно от продаж, и товар получит прибыль только благодаря ошибке в объединении данных.
Деньги, поступившие на расчётный счёт, я не использую вместо выручки по артикулу. Выплата может учитывать удержания и корректировки, относящиеся к разным операциям, поэтому из неё нельзя без расшифровки восстановить экономику товара. Сначала нахожу сумму продаж, отражённую в учёте продавца, затем проверяю возвраты, скидки и отдельные компенсационные начисления. По каждой корректировке выясняю, что она меняет и не учтена ли уже в исходной сумме. Мне нужна понятная цепочка от операции до итоговой строки, а не просто совпадение результата с банковским поступлением.
Для первоначальной проверки я беру сопоставимый период продаж и расходов, но отдельно отмечаю операции, которые ещё могут измениться. Свежая продажа иногда выглядит прибыльнее только потому, что связанные с ней возврат или корректировка появятся позже. Где возможно, я связываю такие события с исходным заказом; где связи нет, оставляю пометку об ограничении расчёта. Себестоимость тоже подтягиваю по принятому способу учёта партий, а не по последней цене поставщика. Подробно этот участок я разобрал в статье о том, как считаю себестоимость с доставкой, упаковкой и разными партиями, потому что неверная закупочная стоимость способна перевернуть результат всей проверки.
Как я считаю результат по артикулу шаг за шагом
Расчёт я строю так, чтобы на каждом этапе было видно, какой расход изменил результат. Не начинаю с готовой маржинальности и не пытаюсь угадать причину по итоговому проценту. Сначала получаю результат до рекламы, затем после неё, а общие расходы магазина проверяю отдельно. Такой порядок позволяет отличить товар с плохой экономикой самой продажи от товара, который уходит в минус из-за продвижения. Повторить его можно в обычной таблице, если у каждой суммы есть источник и понятное правило отнесения к артикулу.
- Собираю выручку по артикулу и корректирую её на возвраты и отмены, если исходный отчёт ещё не сделал этого. Проверяю, что повторно не уменьшил уже скорректированную сумму, а отдельные начисления не смешал с продажами без объяснения.
- Вычитаю себестоимость проданных единиц по принятому учёту партий. По возвратам смотрю фактическую судьбу товара: пригодный к дальнейшей продаже остаток и потерянный товар нельзя одинаково списывать в расходы.
- Вычитаю фактическую комиссию и связанные с товаром расходы площадки. Логистику, обработку возвратов, хранение и прочие начисления раскладываю по доступной детализации, а не заменяю общей средней долей магазина.
- Вычитаю налог, относимый к этим продажам по моей системе расчёта. Если окончательная сумма зависит от результата периода, помечаю распределение как предварительное и позже сверяю его с общим налоговым расчётом.
- Фиксирую остаток до рекламы, затем вычитаю рекламные расходы, которые можно отнести к товару. Расходы общих кампаний распределяю по заранее выбранному основанию и сохраняю это правило рядом с результатом.
- Получаю результат после относимых расходов и отдельно показываю распределённые общие затраты бизнеса. Проверяю, сходятся ли суммы по артикулам с исходными отчётами, и выношу нераспределённые расходы в отдельную строку, а не теряю их.
На моих сводных данных последовательность выглядит так: из 100 ₽ выручки вычитаются 21,6 ₽ себестоимости, 40,2 ₽ комиссии, 10,4 ₽ логистики и прочих сборов, 3,5 ₽ налога и 13,3 ₽ рекламы. Остаётся 11,0 ₽ после перечисленных расходов. Для поиска убыточного товара я повторяю эту логику на его собственных суммах, а не раскладываю сводные доли по всему ассортименту. Затем делю результат после относимых расходов на соответствующую выручку, если она положительная, чтобы сравнить товары разного масштаба. Но решение принимаю с оглядкой на рубли: одинаковая доля убытка у небольшого и ходового артикула означает разные потери для магазина.
Не считайте товар прибыльным, пока существенные расходы по нему остаются нераспределёнными. Пустая ячейка рекламы, логистики или себестоимости не означает отсутствия затрат. Я помечаю такой результат как неполный и возвращаюсь к источнику данных. Иначе таблица будет поощрять именно те позиции, по которым хуже всего собран учёт.
Ошибка, которая прячет убыточные товары на Ozon
Самая опасная для такого расчёта ошибка — распределить рекламу пропорционально выручке и дальше обращаться с получившейся суммой как с установленным фактом. Допустим, один товар продаётся преимущественно без платного продвижения, а другой постоянно участвует в рекламных кампаниях. Если разнести общие расходы только по обороту, часть затрат рекламируемого товара попадёт на соседа. Первый станет выглядеть хуже, а второй — лучше, чем позволяет его собственная экономика. В результате продавец может урезать закупку позиции, которая приносит деньги, и продолжить финансировать товар, который их расходует.
В деньгах эта ошибка работает без всякой загадки: расход, ошибочно снятый с рекламируемого артикула, на ту же сумму завышает его расчётный результат. Общая прибыль магазина при этом может сходиться, поэтому проверка только итоговой строки проблему не обнаружит. В моих данных реклама забирает 13,3 ₽ из каждых 100 ₽ выручки, и оставлять распределение этой статьи без проверки я не готов. Сначала использую прямую привязку расходов к товару, если отчёт её даёт. Для общей кампании выбираю доступное основание распределения, например данные о расходах по рекламируемым позициям, а при недостатке детализации честно показываю оценку вместо точного результата.
Ещё я проверяю, не попала ли комиссия в расходы повторно, когда исходная сумма уже была взята после удержаний. Здесь ошибка обратная: товар может казаться убыточным из-за двойного вычитания, хотя его экономика этого не подтверждает. Поэтому у каждой исходной колонки фиксирую смысл — начисленная выручка, удержание или сумма к перечислению. Если результат резко меняется без изменения цены, закупки и продвижения, сначала проверяю состав данных, а уже потом ищу проблему в товаре. Подробнее различия между продажами, удержаниями и оставшимися деньгами я объяснил в статье о том, почему прибыль на Ozon меньше, чем кажется по продажам.
Какие товары приносят убыток и что с ними делать
После проверки данных я сортирую артикулы по результату после относимых расходов, начиная с самых больших потерь в рублях. Рядом оставляю выручку, проданное количество, результат до рекламы и отметку о полноте данных. Если товар убыточен ещё до продвижения, отключение рекламы само по себе не исправит экономику продажи. Тогда проверяю фактическую цену, закупочную стоимость, расходы площадки и возвраты, после чего пересчитываю возможные изменения. Если до рекламы деньги остаются, а после неё получается минус, отдельно проверяю кампании и не переношу этот диагноз автоматически на весь спрос по товару.
При этом минус после распределения общих расходов бизнеса и минус на дополнительной продаже — разные основания для решения. Товар может покрывать собственные расходы и вносить деньги в оплату общих затрат, но выглядеть убыточным после условного распределения содержания магазина. Если убрать его, эти общие затраты не обязательно исчезнут вместе с продажами. Поэтому перед остановкой я спрашиваю, какие именно расходы удастся избежать и какой денежный вклад пропадёт. Автоматически удалять из ассортимента всё, что оказалось ниже общей средней доходности, я бы не стал.
Для повторных проверок мне нужна одна и та же логика расчёта, иначе изменения в таблице невозможно отличить от изменений в бизнесе. Именно потребность видеть такую связку по своим магазинам подтолкнула меня сделать SellOps: готового сервиса, расчётам которого я был бы готов доверять, я для себя не нашёл. Подход к работе с данными я описал на странице о том, как устроен сервис, но сам метод не зависит от выбранного инструмента. Можно начать с выгрузок и таблицы, сохраняя источники сумм, правила распределения и спорные операции. Автоматизация полезна после этого, а не вместо проверки того, что именно вычитается из выручки.
Завтра я бы выгрузил продажи и связанные расходы за сопоставимый период, добавил себестоимость и собрал строки по артикулам отдельно для каждого магазина. Затем отсортировал бы результат по убытку в рублях и открыл начисления по самым проблемным позициям. Для каждого подтверждённого минуса записал бы причину и конкретное действие: пересчитать допустимую цену, изменить продвижение, проверить возвраты или пересмотреть закупку. После изменения сравнил бы результат при сопоставимом учёте расходов, а не только новую выручку. Цель такой проверки простая: не объявить товар плохим, а перестать повторять продажи, на которых магазин теряет деньги.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно