← блог Paramiko
AI automation / business / Paramiko

Прогноз спроса и закупок для продавца WB/Ozon: как не замораживать деньги в остатках

Проблема закупок на Wildberries и Ozon редко выглядит как полное отсутствие данных. Обычно данных много: продажи, остатки, возвраты, товары в пути, акции, реклама, склады. Но решение все равно принимается по ощущениям: «этот товар хорошо идет, закажем еще тысячу» или «остаток пока есть, вернемся к поставке через неделю».

Так появляются две дорогие крайности.

Проблема закупок на Wildberries и Ozon редко выглядит как полное отсутствие данных. Обычно данных много: продажи, остатки, возвраты, товары в пути, акции, реклама, склады. Но решение все равно принимается по ощущениям: «этот товар хорошо идет, закажем еще тысячу» или «остаток пока есть, вернемся к поставке через неделю».

Так появляются две дорогие крайности.

В первой товар заканчивается раньше следующей поставки. Карточка теряет продажи и позиции, реклама ведет на остаток, которого хватит на несколько дней, а срочная доставка съедает маржу.

Во второй закупается слишком большая партия. Деньги оказываются в товаре, который будет продаваться четыре месяца. За это время меняется сезон, конкурент снижает цену, возникает платное хранение или приходится выходить в акцию с нежелательной скидкой.

Рабочий прогноз нужен не для того, чтобы угадать продажи с точностью до штуки. Его задача — вовремя показать, по каким товарам нужно заказать, сколько именно и на какой срок хватит текущего запаса.

> ## Коротко > > Для планирования закупок недостаточно посмотреть средние продажи за месяц. По каждому SKU нужно учитывать: > > - фактические продажи без отмен и возвратов; > - текущий доступный остаток и товар в пути; > - скорость продаж за несколько периодов; > - сезонность, акции, цену и рекламную активность; > - срок производства, оплаты, доставки и приемки; > - страховой запас на задержки и колебания спроса. > > На выходе система должна давать не «прогноз ради отчета», а конкретную рекомендацию: заказать 280 единиц до 25 августа, иначе при текущем темпе товар закончится примерно 12 сентября. > > Автоматизировать расчет можно, но подтверждение закупки, изменение цены и крупные поставки лучше оставлять человеку.

Почему обычного среднего недостаточно

Простейший расчет выглядит логично: за последние 30 дней продано 300 единиц, значит средний спрос — 10 единиц в день. Если поставка занимает 20 дней, надо держать минимум 200 единиц.

Для ровного товара без акций и сезонности это может работать. На маркетплейсе такая стабильность встречается не всегда.

Продажи могли быть ограничены остатком

Если товар отсутствовал семь дней, продажи за месяц занижены. Нельзя делить месячный объем на 30 и считать результат реальным спросом.

Например, продавец продал 230 единиц за месяц, но карточка была без остатка последнюю неделю. Среднее по календарю — 7,7 единицы в день. Среднее по 23 дням, когда товар был доступен, — 10 единиц.

Ошибка кажется небольшой, но при сроке поставки 45 дней она дает разницу более 100 единиц.

В заказах есть шум

Созданный заказ еще не равен продаже. Часть заказов отменят, часть товаров вернут. Для закупки важно разделять:

  • заказы — ранний сигнал изменения спроса;
  • выкупы или завершенные продажи — основа финансового прогноза;
  • возвраты и отмены — поправка на качество спроса;
  • остатки в резерве и товары в пути — запас, которым пока нельзя свободно распоряжаться.

Если смешать эти показатели, система может принять временный всплеск заказов за устойчивый рост.

Продажи меняются из-за цены и продвижения

Рост продаж после снижения цены на 15% нельзя автоматически переносить на следующий месяц, если скидка закончится через три дня.

То же относится к рекламе и акциям. Если карточка участвовала в распродаже или получила дополнительный рекламный бюджет, базовый спрос и промоспрос нужно считать отдельно. Иначе следующая закупка будет рассчитана под условия, которые уже не действуют.

Один товар может продаваться по-разному на разных складах

Общий остаток по кабинету не всегда показывает реальную доступность. На одном складе товар есть с запасом, на другом он заканчивается, а поставка между регионами невозможна или экономически невыгодна.

Поэтому зрелая модель считает покрытие не только по SKU, но и по схеме работы, складам и регионам — настолько детально, насколько это оправдано оборотом.

Какие данные нужны для прогноза

Начинать лучше не с нейросети и не со сложной математической модели. Сначала нужен надежный слой данных.

Для каждого SKU полезно собирать:

  • заказы и продажи по дням;
  • отмены и возвраты;
  • доступный, зарезервированный и находящийся в пути остаток;
  • цену, скидку и участие в акциях;
  • рекламные расходы и периоды активного продвижения;
  • даты отсутствия товара;
  • срок производства или закупки у поставщика;
  • срок доставки до склада;
  • срок приемки и возможные задержки;
  • минимальную партию, кратность короба и бюджет закупки;
  • себестоимость, маржинальность и стоимость хранения.

Данные WB и Ozon лучше приводить к единой модели. У площадок отличаются статусы заказов, структура складов, отчеты и правила учета возвратов. Если просто склеить выгрузки в одну таблицу, одинаково названные показатели могут означать разные этапы движения товара.

Нужен словарь: что считается заказом, продажей, доступным остатком, товаром в пути и возвратом для каждой площадки.

Как построить рабочий прогноз спроса

Шаг 1. Очистить историю продаж

Из ряда продаж нужно выделить периоды, которые искажают обычный спрос:

  • дни без товара;
  • резкие всплески во время акций;
  • ошибки цены;
  • массовые отмены;
  • разовые корпоративные или подозрительные заказы;
  • запуск новой карточки без достаточной истории.

Такие дни не всегда надо удалять. Их нужно пометить, чтобы модель понимала причину изменения.

Если акция повторяется каждый месяц, это часть планирования. Если цена случайно стала вдвое ниже на два часа, это ошибка, а не новый уровень спроса.

Шаг 2. Посчитать базовую скорость продаж

Для начала достаточно нескольких скользящих средних:

  • за 7 дней — показывает текущую динамику;
  • за 28 или 30 дней — сглаживает недельные колебания;
  • за 60–90 дней — показывает устойчивый уровень;
  • за аналогичный период прошлого года — помогает увидеть сезонность, если история уже накоплена.

Допустим, товар продавался со скоростью 8 единиц в день за 90 дней, 11 единиц за 30 дней и 14 единиц за последнюю неделю.

Это сигнал роста, но еще не повод сразу считать будущий спрос равным 14. Нужно проверить, что изменилось: сезон, цена, реклама, позиция карточки или наличие у конкурентов.

На практике прогноз можно собрать как взвешенное среднее, где свежие данные имеют больший вес. Но веса должны зависеть от товара. Для стабильных расходников полезна длинная история, для сезонной одежды важнее текущая динамика и аналогичный сезон.

Шаг 3. Учесть сезонность и события

Сезонность — это не только Новый год и лето. На спрос влияют:

  • начало учебного года;
  • праздники;
  • погодные изменения;
  • выплаты и зарплатные периоды;
  • распродажи маркетплейсов;
  • собственные акции продавца;
  • выход товара из рекламы;
  • изменение цены;
  • появление сильного конкурента.

Для товара с историей сезонный коэффициент можно получить из прошлых периодов. Если в сентябре продажи обычно на 30% выше среднего, базовый прогноз умножается примерно на 1,3 — с поправкой на текущую цену, рекламу и доступность.

Для нового SKU истории нет. Тогда используют аналоги: товары той же категории, ценового диапазона, бренда или назначения. Такой прогноз менее надежен, поэтому стартовую партию и страховой запас лучше ограничить, а расчет обновлять чаще.

Шаг 4. Рассчитать полный срок пополнения

Продавцы часто учитывают только доставку и забывают остальные этапы.

Полный срок пополнения включает:

  1. согласование и оплату заказа;
  2. производство или сборку партии;
  3. доставку от поставщика;
  4. маркировку и подготовку;
  5. запись на склад;
  6. перевозку до маркетплейса;
  7. приемку;
  8. размещение товара в доступном остатке.

Если производство занимает 20 дней, доставка — 8, подготовка — 3, ожидание приемки — 5, полный срок равен не 8, а 36 дням.

Именно на этот горизонт нужно обеспечивать запас.

Шаг 5. Определить точку заказа

Базовая формула:

Точка заказа = средний спрос за день × полный срок пополнения + страховой запас.

Если товар продается по 12 единиц в день, пополнение занимает 30 дней, а страховой запас равен 80 единицам:

12 × 30 + 80 = 440 единиц.

Когда доступный запас с учетом надежно подтвержденных поставок опускается ниже 440 единиц, пора размещать новый заказ.

Важно не считать товар в пути дважды. Если 150 единиц уже едут на склад, они учитываются отдельно от текущего доступного остатка. Если поставка задерживается и дата не подтверждена, системе стоит понизить ее надежность или показать два сценария.

Шаг 6. Рассчитать объем закупки

Точка заказа отвечает на вопрос «когда», но не отвечает на вопрос «сколько».

Один из практичных вариантов:

Объем закупки = целевой запас на горизонт планирования − доступный остаток − подтвержденный товар в пути.

Предположим:

  • прогноз — 12 единиц в день;
  • продавец хочет обеспечить 60 дней продаж;
  • страховой запас — 80 единиц;
  • доступно 260 единиц;
  • подтверждено в пути 140 единиц.

Целевой запас:

12 × 60 + 80 = 800 единиц.

Рекомендованная закупка:

800 − 260 − 140 = 400 единиц.

Затем расчет корректируется под минимальную партию поставщика, кратность упаковки, бюджет и ограничения склада. Если товар продается коробами по 24 единицы, итоговая рекомендация должна быть не 400, а 408 или 384 — в зависимости от допустимого риска дефицита.

Не всем товарам нужен одинаковый запас

Одинаковое правило «держать два месяца продаж» быстро замораживает оборотный капитал.

Полезно разделить ассортимент по двум признакам:

  • вклад товара в выручку или прибыль;
  • предсказуемость спроса.

ABC-анализ показывает экономическую значимость. XYZ-анализ — стабильность продаж.

Товар с высоким вкладом и стабильным спросом можно пополнять чаще и точнее. Для него дефицит особенно дорог.

Товар с низким вкладом и хаотичным спросом не стоит закупать на несколько месяцев только ради наличия. Для него разумнее маленькая партия, заказ под подтвержденный спрос или вывод из ассортимента.

Но ABC/XYZ нельзя использовать механически. SKU с небольшой текущей выручкой может быть новым перспективным товаром, а лидер продаж — временно разогнанной акцией позицией. Сегментация помогает принять решение, но не заменяет контекст.

Как выглядит полезная рекомендация, а не просто отчет

Плохой отчет сообщает:

> Остаток товара — 312 единиц. Средние продажи — 10,4 единицы в день.

Хорошая рекомендация сообщает:

> При текущем темпе товар закончится через 30 дней. Полный срок пополнения — 38 дней, поэтому риск дефицита уже возник. Рекомендуемый заказ — 360 единиц с учетом 70 единиц в подтвержденной поставке и страхового запаса на семь дней. Продажи за последнюю неделю выросли на 18%, но рост совпал со снижением цены, поэтому прогноз помечен как нестабильный.

У такой рекомендации есть причина, расчет, срок действия и уровень уверенности. Закупщик может проверить ее, а не принимать решение вслепую.

В ежедневный контроль стоит выводить только исключения:

  • товара не хватит до следующей поставки;
  • прогноз резко изменился;
  • поставка задерживается;
  • запас превышает целевой уровень;
  • продажи упали, но закупка уже размещена;
  • планируемая партия не помещается в бюджет;
  • рост спроса связан с акцией, которая скоро закончится.

Это сокращает время на просмотр сотен строк и направляет внимание туда, где решение действительно нужно сегодня.

Что дает автоматизация и как оценить результат

Польза прогноза измеряется не красотой дашборда, а изменением запасов и качества поставок.

До внедрения стоит зафиксировать:

  • среднюю оборачиваемость по SKU и категории;
  • сумму денег в остатках;
  • долю товаров без продаж за 30, 60 и 90 дней;
  • количество дней отсутствия ключевых товаров;
  • долю срочных поставок;
  • потери от хранения, уценки и вынужденных скидок;
  • время сотрудника на сбор отчетов и расчет закупок;
  • точность прошлых прогнозов.

После запуска сравнивают те же показатели.

Для небольшого продавца сбор данных из кабинетов, сверка остатков и обновление таблицы могут занимать несколько часов каждую неделю. Автоматизация убирает ручное копирование и пересчитывает рекомендации ежедневно. Но основная экономия часто находится не во времени сотрудника, а в оборотном капитале.

Если запас на 5 млн рублей удается без роста дефицита сократить хотя бы на 10%, из товара высвобождается 500 тысяч рублей. Это деньги, которые можно направить на ходовые позиции, рекламу или новый ассортимент.

При этом нельзя оптимизировать только оборачиваемость. Слишком агрессивное сокращение запасов увеличит отсутствие товаров и потерю продаж. Нужна пара показателей: сколько капитала находится в запасе и насколько хорошо обеспечен спрос.

Что можно отдать AI-агенту

AI-агент полезен поверх расчетной системы, а не вместо нее.

Формулы, продажи, остатки и сроки должны считаться обычным кодом с воспроизводимым результатом. Языковая модель может:

  • объяснить, почему изменилась рекомендация;
  • собрать ежедневную сводку в Telegram;
  • выделить аномалии среди сотен SKU;
  • сравнить сценарии при разных бюджетах;
  • подготовить вопросы закупщику;
  • найти конфликт: реклама увеличивается, а остатка хватит на пять дней;
  • сформировать проект заявки поставщику.

Например, утром ответственный получает в Telegram не таблицу на 800 строк, а сообщение:

> По 11 SKU нужен контроль. Три товара закончатся раньше подтвержденной поставки. По двум позициям запас превышает прогноз на 90 дней. У четырех товаров спрос вырос после старта акции — увеличивать закупку пока рано. Для подтверждения подготовлены рекомендации и ссылки на расчеты.

Все исходные цифры должны оставаться доступными. Если агент пишет, что нужно заказать 500 единиц, пользователь должен открыть расчет и увидеть продажи, горизонт прогноза, поставки в пути и страховой запас.

Подробнее о таком подходе можно прочитать в статье «AI-агент для бизнеса: что это такое и как работает».

Риски автоматического планирования

Некачественные данные

Если API не загрузил часть продаж или остаток обновился с задержкой, рекомендация станет неверной. Поэтому интеграция должна контролировать полноту данных: время последнего обновления, пропуски, дубли и резкие расхождения с предыдущим днем.

Автоматическая закупка без лимитов

Разрешать системе самостоятельно размещать крупный заказ опасно. Ошибка в цене, единицах измерения или сроке поставки может превратиться в реальную оплату.

Безопасная схема:

  1. система рассчитывает рекомендацию;
  2. показывает исходные данные и предупреждения;
  3. человек подтверждает объем;
  4. действие записывается в лог;
  5. для крупных сумм действует дополнительное согласование.

Ложная точность

Прогноз «1 247 единиц» выглядит убедительно, но не обязательно точнее прогноза «1 150–1 300». Для нестабильных SKU лучше показывать диапазон и несколько сценариев: базовый, осторожный и сценарий роста.

Игнорирование денежных ограничений

Даже правильные рекомендации могут превышать доступный бюджет. Тогда задача превращается в оптимизацию портфеля: какие товары профинансировать в первую очередь с учетом маржи, риска дефицита, оборачиваемости и надежности прогноза.

Слишком широкие права доступа

Сервису прогнозирования обычно достаточно чтения продаж, остатков, цен и поставок. Право менять цены, рекламу или создавать документы нужно выдавать только при реальной необходимости. Ключи API следует хранить отдельно, ограничивать по правам и регулярно менять.

Как внедрить систему без большого проекта

Начать можно с 20–50 значимых SKU, а не со всего каталога.

Первый этап: единая таблица данных

Подключите WB, Ozon, учетную систему или CRM и приведите показатели к общим определениям. Настройте ежедневное обновление и проверку пропусков.

Второй этап: прозрачные правила

Рассчитайте скорость продаж, дни покрытия, полный срок пополнения, страховой запас, точку заказа и рекомендуемую партию. Все формулы должны быть видны ответственному сотруднику.

Третий этап: уведомления по исключениям

Отправляйте в Telegram только критичные ситуации и рекомендации, требующие решения. Для каждой рекомендации добавьте ссылку на подробный расчет.

Четвертый этап: сценарии и ограничения

Учтите сезонность, акции, бюджет, кратность коробов, минимальные партии и приоритет товаров. Добавьте диапазон прогноза и уровень уверенности.

Пятый этап: контролируемая автоматизация

AI-агент может готовить сводки, объяснять отклонения и формировать черновики действий. Закупки, изменения цен и другие финансово значимые операции должны проходить подтверждение.

Если сбор отчета и расчет поставок уже занимают несколько часов, процесс подходит для автоматизации. Признаки и порядок оценки разобраны отдельно в статье «Как понять, что бизнес-процесс пора автоматизировать».

Чек-лист продавца WB/Ozon

Перед следующей закупкой проверьте:

  • продажи рассчитаны только по дням, когда товар был доступен;
  • заказы, выкупы, отмены и возвраты не смешаны;
  • текущая динамика сравнена с более длинным периодом;
  • всплески из-за акций и рекламы отмечены отдельно;
  • учтен полный срок от оплаты поставщику до доступности на складе;
  • товар в пути не посчитан дважды;
  • для задерживающихся поставок предусмотрен отдельный сценарий;
  • страховой запас зависит от стабильности спроса и срока поставки;
  • партия укладывается в бюджет и кратность упаковки;
  • медленные товары не закупаются по тем же правилам, что лидеры;
  • крупное решение подтверждает человек;
  • источник каждой цифры и история изменений сохраняются в логах.

FAQ

Насколько точно можно прогнозировать продажи на Wildberries и Ozon?

Точность зависит от стабильности спроса, качества истории и количества внешних изменений. Для ходового товара с регулярными продажами прогноз обычно надежнее, чем для нового или сезонного SKU. Практичнее оценивать диапазон и регулярно пересчитывать его, а не ждать одной «идеально точной» цифры.

За какой период брать средние продажи?

Одного универсального периода нет. Сравнивайте 7, 28–30 и 60–90 дней. Короткий период показывает текущую динамику, длинный — устойчивый спрос. Для сезонных товаров дополнительно нужен аналогичный период прошлого года.

Как прогнозировать новый товар без истории?

Используйте продажи похожих SKU, данные категории, цену, сезон и небольшой тестовый запас. Прогноз нового товара имеет низкую уверенность, поэтому лучше чаще пересматривать его и не закладывать большую партию без подтвержденного спроса.

Нужно ли учитывать товар в пути?

Да, но отдельно от доступного остатка. У поставки должна быть ожидаемая дата и статус надежности. Если срок нарушен или приемка не подтверждена, нельзя считать этот товар равным запасу на складе.

Как определить страховой запас?

Он зависит от колебаний спроса и задержек поставки. Чем нестабильнее продажи и длиннее срок пополнения, тем больше нужен запас. Для начала можно задать запас в днях продаж, а затем перейти к расчету на основе фактических отклонений спроса и сроков доставки.

Может ли AI сам управлять закупками?

Технически может, но финансово значимые действия безопаснее подтверждать человеком. AI стоит использовать для анализа, выявления аномалий, объяснения рекомендаций и подготовки черновика закупки. Лимиты, права доступа и журнал действий обязательны.

Что автоматизировать первым: прогноз, отчет или создание поставки?

Сначала сбор и проверку данных, затем расчет рекомендаций и уведомления. Автоматическое создание поставок имеет смысл только после того, как правила несколько циклов отработали в режиме рекомендаций и команда убедилась в качестве данных.

Что делать дальше

Начните не с выбора сложной модели, а с одного вопроса: по каким товарам сегодня нужно принять решение, чтобы через месяц не получить дефицит или лишний запас?

Соберите по этим SKU продажи, остатки, поставки в пути и реальный срок пополнения. Настройте понятный расчет точки заказа. Проверьте его на нескольких прошлых периодах и только потом добавляйте сезонность, сценарии и AI-пояснения.

Разберём 10–20 SKU и покажем, где теряются деньги: в цене, рекламе, остатках, возвратах или закупках. Напиши Дмитрию в Telegram @dmkosik.

marketplace diagnostic

Покажем, где селлер теряет деньги

Разберём 10–20 SKU и проверим цену, рекламу, остатки, возвраты и закупки. На выходе — список конкретных утечек и действий по приоритету.

Разобрать 10–20 SKU