All articles
ФинансыАналитиксебестоимостьмаржазакупкафинансыимпорт

Себестоимость: партии, копейки, импорт Excel

Себестоимость — это то, во сколько вам реально обходится единица товара (закупка у поставщика, не цена продажи). Раздел «Себестоимость» — единственное место в платформе, где вы вводите эту цифру. Пока её нет — расчёты прибыли, маржи и «сколько денег заморожено на складе» показывают ноль или заведомо неверное число, даже если продажи идут отлично.

Зачем этот раздел

Выручка видна из данных маркетплейса сама по себе. Прибыль — нет: маркетплейс не знает, за сколько вы закупили товар у поставщика. Пока себестоимость не введена, платформа физически не может посчитать маржу и капитализацию склада (остатки × себестоимость) — это не примерная оценка, а буквально ноль в формуле. Поэтому «Укажите закупочные цены» — второй шаг чек-листа настройки на дашборде «Товарного учёта» (сразу после загрузки товаров). Пока шаг не закрыт полностью, дашборд честно показывает хинт «Цены есть у N из M. Прибыль пока показана не полностью» — вместо того чтобы молча выдать заниженную цифру.

Откуда данные

Себестоимость всегда вводит сам продавец — платформа не получает её ни от WB, ни от Ozon (это закупочная цена у вашего поставщика, маркетплейсу она неизвестна). Три способа ввода:

  • Простой режим — одна цена «на сейчас» по товару, с датой начала действия. Каждая новая запись начинает действовать с указанной даты и до следующей записи — это «ступенчатая» история цены: если 1 июня ввели 100 ₽, а 15 июля — 120 ₽, то с 1 по 14 июля действовала цена 100 ₽, с 15-го — 120 ₽. История видна по каждому товару через колонку «версий» — сколько раз менялась себестоимость.
  • Партионный режим — себестоимость привязывается к конкретной партии поставки (номер прихода, количество, цена, дата приёмки) — точнее для товаров, где закупочная цена скачет от партии к партии.
  • Импорт Excel/CSV — загрузка списком: колонки «артикул» (и штрихкод опционально) и «себестоимость». Загрузчик сам понимает, есть заголовок в файле или нет, распознаёт разделитель (запятая, точка с запятой, таб) и настоящий .xlsx, а не только .csv. По итогу импорта показывается, сколько строк сматчилось с товарами, сколько записано и сколько артикулов не нашлось в каталоге (их сначала нужно разметить в «Онбординге»).

Все денежные суммы в системе хранятся в копейках (целые числа) — на экране вы вводите рубли, округление и сама единица хранения вас не касаются.

Кнопка «Обновить отчёты»

После правки себестоимости витрины (маржа, капитализация) обновляются не мгновенно — фоновый синк подтягивает их в течение нескольких минут. Кнопка «Обновить отчёты» в правом верхнем углу раздела запускает пересчёт сразу, если нужно увидеть эффект правки без ожидания планового обновления.

Как читать экран

  • Себестоимость, ₽ — текущая действующая цена по товару (последняя версия истории).
  • Поставщик — к какому поставщику привязан товар (можно назначать и массово, выделив несколько строк чекбоксами).
  • Версий — сколько записей истории цены у товара; по клику открывается вся история с периодами действия («с … по …» либо «с … — по сейчас» для самой свежей записи).
  • Партий — сколько отдельных партионных записей у товара (если используете партионный режим).
  • Фильтр «Только без себестоимости» — быстро найти товары, где себестоимость ещё не заведена: это и есть тот список, который занижает маржу и капитализацию на дашборде.
  • Фильтр по поставщику — сузить список до товаров конкретного поставщика.

Спросите ИИ-ассистента

  • «У каких товаров ещё не заведена себестоимость?»
  • «Покажи историю цены по товару [название]».
  • «Насколько выросла себестоимость по [товар] за последние три месяца?»

Ассистент также умеет принимать файл с прайсом прямо в чате: прикрепляете Excel или CSV, он показывает превью — сколько товаров нашёл и у скольких изменится цена, — и применяет изменения только после явного подтверждения.

Кому что важно в этом разделе

  • Владельцу бизнеса — без себестоимости маржа буквально ноль в системе (см. персональную статью «для владельца»).
  • Менеджеру маркетплейсов — рутина ввода и еженедельная сверка счётчика «без цены».
  • Бухгалтеру — точность в копейках и история цены «с даты» без переписывания прошлых периодов.
  • Аналитику — как неполный охват себестоимости искажает среднюю маржу и как отследить рост цены закупки за период.

Для агентств, ведущих несколько кабинетов клиентов, ввод себестоимости в этом разделе намеренно не описан отдельной ролью: закупочная цена — конфиденциальные данные конкретного клиента, агентство обычно работает с готовыми витринами (см. «Финансы»), а не вводит закупку за клиента.

Боль: средняя маржа на дашборде может быть занижена, и на глаз это не видно

Карточка «Маржа за месяц» и капитализация склада на дашборде «Товарного учёта» считаются по формуле остаток × себестоимость. Если у части каталога себестоимость не введена, эта часть входит в расчёт с нулевой ценой закупки — то есть средневзвешенная маржа по всему ассортименту оказывается ниже реальной, и чем больше товаров без цены, тем сильнее искажение. Хуже всего то, что на глаз это неотличимо от «маржа действительно низкая» — оба случая выглядят как одна и та же просевшая цифра на карточке.

Для аналитика это означает: прежде чем делать вывод о снижении маржинальности («упала на 8% за месяц»), нужно сначала исключить более простое и частое объяснение — новые товары без себестоимости, которые тянут среднее вниз, а не реальное падение прибыльности бизнеса.

Пошаговое решение в продукте

Подробно: пошаговый разбор для аналитика

1. Проверьте индикатор охвата, прежде чем анализировать динамику маржи

На дашборде «Товарного учёта» шаг чек-листа настройки «Укажите закупочные цены» показывает хинт «Цены есть у N из M. Прибыль пока показана не полностью», пока охват неполный. Это не косметическая деталь — это прямое указание, что цифра маржи на карточке дашборда занижена и не сопоставима один в один с периодами, когда охват был выше (или наоборот). Прежде чем строить вывод о динамике маржинальности, сверьте, не изменился ли сам охват себестоимости между сравниваемыми периодами — рост маржи может быть не улучшением юнит-экономики, а просто более полным вводом цен закупки.

2. Найдите товары без себестоимости через фильтр или ассистента

В разделе «Себестоимость» фильтр «Только без себестоимости» даёт точный список позиций, которые сейчас искажают среднюю маржу. Тот же вопрос можно задать ассистенту напрямую в чате: «У каких товаров ещё не заведена себестоимость?» — быстрее, чем открывать таблицу и прокликивать фильтр вручную, особенно если вопрос возникает в середине другого анализа.

3. Проверьте, сколько именно товаров и какой доли оборота не хватает

Помимо количества товаров без цены важно понимать их долю в обороте — товар без себестоимости с минимальными продажами искажает среднюю маржу гораздо меньше, чем ходовая позиция без цены. Список из фильтра «Только без себестоимости» стоит сопоставить с данными по продажам (раздел «Продажи»), чтобы приоритизировать, какие пробелы закрывать в первую очередь для точности расчётов, а не закрывать хвост каталога с нулевым оборотом.

4. Проследите историю роста себестоимости за период

Каждая версия себестоимости в простом режиме имеет дату начала действия — это готовый временной ряд для анализа. Спросите ассистента: «Насколько выросла себестоимость по [товар] за последние три месяца?» — он поднимет историю версий и покажет изменение цены закупки во времени, без ручного пролистывания истории по каждому товару отдельно. Это полезно для анализа, какая доля роста себестоимости продавца объясняет изменение маржи за тот же период, в отличие от изменений в цене продажи или удержаниях маркетплейса.

5. Учитывайте партионный режим отдельно, если он используется

Если по части товаров ведётся партионный учёт (себестоимость привязана к конкретным приходам, а не к единой текущей цене), для анализа средней маржи используется именно «текущая» цена товара (последняя версия простой истории или актуальная партия), а не сумма всех исторических партий — не путайте фактическую закупочную стоимость конкретной поставки с ценой, участвующей в расчёте маржи по отчётам.

Ценность для аналитика

  • Неполнота названа явно, а не спрятана. Хинт «Цены есть у N из M» снимает риск ложного вывода о падении маржинальности там, где на самом деле не хватает данных по себестоимости.
  • Пробелы находятся за секунды, а не перебором каталога. Фильтр и вопрос ассистенту дают точный список без ручного просмотра сотен строк.
  • История цены закупки — готовый временной ряд. Дата действия каждой версии позволяет анализировать динамику роста себестоимости без дополнительной подготовки данных.
  • Разделение «текущая цена» и «партия в поставке» не даёт случайно смешать два разных числа при построении отчёта о марже.

Частые вопросы

  • Почему маржа на дашборде вдруг просела при неизменных продажах? Наиболее вероятная причина — появились новые товары без себестоимости (например, после массового добавления карточек), и они тянут средневзвешенную маржу вниз. Проверьте хинт «Цены есть у N из M» рядом с шагом настройки «Укажите закупочные цены», прежде чем делать вывод о реальном снижении прибыльности.
  • Как быстро оценить, насколько сильно искажена текущая цифра маржи? Сравните число товаров без себестоимости из фильтра «Только без себестоимости» с общим количеством SKU и с их долей в обороте продаж — чем выше доля оборота у товаров без цены, тем сильнее занижена средняя маржа.
  • Можно ли получить историю изменения себестоимости без ручного открытия карточки каждого товара? Да, спросите ассистента: «Насколько выросла себестоимость по [товар] за последние три месяца?» — он читает историю версий и отвечает динамикой, не требуя открывать раздел «Себестоимость» и пролистывать записи вручную.
  • Партионный учёт как-то отдельно учитывается в средней марже дашборда? Нет отдельного агрегирования по партиям для этого показателя — маржа считается по актуальной («текущей») цене товара. Партии дают точность на уровне конкретного прихода, но не заменяют текущую цену в общем расчёте маржи по отчётам.
  • Есть ли риск задвоения при импорте себестоимости из Excel — например, если файл загружали дважды? Нет: импорт матчит строки файла к товарам по артикулу или штрихкоду и обновляет запись на ту же дату, а не создаёт дубль версии истории — повторная загрузка того же файла с той же датой действия перезапишет значение, а не добавит вторую строку в историю.