Прогноз остатков по модели FBO

Заказчик
Международный бренд канцелярских товаров с 29-летней историей и присутствием в 65 странах мира, один из самых узнаваемых на российском рынке
Задача
Дисбаланс запасов: одни SKU уходят в OOS и теряют выручку, другие замораживают деньги. Сервис прогнозирует спрос/поставки FBO и даёт рекомендации по отгрузкам на Ozon и WB.

Цель

Обеспечить устойчивую товарную доступность для отгрузок на склады маркетплейсов при минимальных запасах: снизить OOS и потери выручки, минимизировать финансовые потери от дисбаланса запасов и сократить операционные издержки за счёт автоматизации аналитики / прогнозирования, разгрузив категорийных менеджеров.

Задачи

  1. Сбор и анализ данных. Обработка исторических и текущих данных о продажах, заказах и поставках по модели FBO (Fulfillment by Operator) из БД клиента.

  2. Выявлять сезонность и аномалии для коррекции прогнозов.

  3. Построить точные автопрогнозы спроса (до 90%) и поставок по каждому SKU×склад. Настроить расчет прогноза складских поставок и спроса/продаж по выбранному маркетплейсу и кластерам/регионам. Прогноз должен основываться на истории продаж, коэффициентах роста, маркетинговой деятельности, географическом распределении спроса.

  4. Реализовать модуль прогноза спроса с учётом ручных корректировок клиента (период, маркетплейс, кластер/регион, товары «в пути») и автоматическим пересчётом. Предусмотреть очистку данных: выявлять и исключать аномальные всплески заказов без фактического выкупа.

  5. Реализовать модуль бизнес-анализа: каждому SKU присваивать категорию по двухфакторному ABC-анализу (выручка ? количество заказов). Использовать категорию для интерпретации качества прогноза (разные пороги/допуски по классам) и выводить её в отчётах / таблице результатов.

  6. Разделить товары на группы на основе их вклада в выручку и стабильности/частоты продаж с помощью ABC-анализа.

  7. Реализовать модуль управления данными: сохранять результаты расчётов в БД.

  8. Автоматизировать пороги срабатывания алертов. Подсветка и/или сигнализация угрозы OOS (Out Of Stock) и перетаривания склада.

  9. Генерировать рекомендации для категорийных менеджеров и логистов по пополнению складов.

  10.  Реализовать модуль визуализации результатов: выводить таблицу с полями SKU, ITEMID, прогноз поставок на маркетплейсы, прогноз продаж, оборачиваемость и рекомендованная поставка. Обновлять данные в таблице после пересчёта прогноза.

Что сделали

Мы разработали и внедрили сервис прогнозирования спроса на базе ML-модели, которая еженедельно строит прогнозы для ~11 000 SKU на горизонте от 2 недель до 1 года. Модель учитывает: 

  • риски, 

  • эластичность спроса, 

  • остатки на складах, 

  • продажи, 

  • сезонность,

  • тренды.

Сервис применяет ML-подходы к данным о продажах и остатках на Ozon и Wildberries, позволяет клиенту задавать параметры (период прогноза, маркетплейс, кластер/регион) и вручную корректировать значения поставок, а также автоматически формирует рекомендации по пополнению, снижая объём ручной работы. Для консолидации источников предусмотрено сопоставление полей и приведение отчётов маркетплейсов к единому формату; данные регулярно обогащаются новыми выгрузками по реализациям, заказам и историям остатков. Результаты отображаются в веб-сервисе с дашбордами и табличным выводом.

Этапы проекта

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

Этап 1. Создание прототипа и утверждение точности

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

Мы использовали механизмы машинного обучения для детального анализа исторических и текущих данных о продажах. Цель этого анализа — выделить ключевые триггеры, сезонность и аномальные всплески продаж, чтобы на них формировать прогнозы спроса/продаж и высчитывать необходимое количество SKU для поставки на склады маркетплейсов. Данные мы брали из базы клиента (остатки, продажи, заказы).

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

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

Этап 2. Промышленный запуск и обязательный функционал 

Этот этап был ключевым, поскольку обеспечивал достижение основной бизнес-цели — максимально эффективного управления складскими запасами. Мы довели модель и модули расчёта и рекомендаций до готовности к промышленной интеграции.

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

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

Пример

Клиент вводит ручные корректировки (период прогноза, маркетплейс, кластер/регион поставки и количество товаров в пути). После нажатия кнопки «СДЕЛАТЬ ПРОГНОЗ» система рассчитывает прогноз поставок.

Кроме того, мы внедрили двухфакторный АВС-анализ (по выручке и количеству заказов), чтобы присвоить каждому товару категорию. Это необходимо для правильной интерпретации точности прогноза, поскольку позволяет придать больший вес товарам, которые максимально влияют на общий результат.

В результате мы получили табличный вывод в веб-сервисе, который включает: 

  • SKU, 

  • ITEMID, 

  • прогноз поставок на склады, 

  • прогноз продаж, 

  • оборачиваемость товара (сколько дней осталось до OOS), 

  • рекомендации по поставке. 

Все результаты расчетов обязательно сохраняются в базе данных.

Этап 3. Выстроили прогнозирование OOS и пополнение запасов. 

Настроили единую систему алертов и детекции аномалий: сервис автоматически выявляет угрозу OOS (если запас < X дней), перетаривание и «зависшие» остатки (если запас > Y дней), а также возможные ошибки в заказах и нетипичные всплески/провалы. Пороги алертов автоматизированы, уведомления отправляются в рабочие каналы. Это снижает риск OOS, сокращает недополученную выручку и экономит время категорийных менеджеров. Для категорийных менеджеров и логистов формируются объяснимые рекомендации — сколько и когда пополнить, с возможностью принять решение в один клик.

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

Этап 4. Спланировали масштабирование

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

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

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

Кроме того, улучшим систему фильтрации результатов, включая фильтрацию по оборачиваемости и угрозам.

На следующем этапе расширения мы углубим интеграцию и аналитику. 

Добавим:

  • интеграцию с календарем маркетплейсов для подсветки периодов акций;

  • дополнительные поля данных о продажах, такие как средние уровни заказов, текущий остаток, сток в пути и процент выкупа SKU, с корректировкой поставки на этот показатель;

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

  • отдельный интерфейс с интеграцией в CRM/ERP заказчика.

В результате получим ещё более прозрачные и прогнозируемые бизнес-процессы, практически полное исключение ручных операций по формированию поставочных файлов и глубокую аналитику, учитывающую внешние факторы и эффективность выкупа товара.

Аналитика

После получения прогноза спроса от модели машинного обучения мы применили ABC-анализ, чтобы с учётом влияния товаров на выручку и частоты продаж корректно расставить приоритеты и корректно дать рекомендации по поставкам на склад.

Шаг 1. Подготовили данные

Собрали данные за определённый периоды по каждому SKU со всех каналов маркетплейсов.

Шаг 2. Провели два независимых ABC-анализа отдельно для каждого критерия

Анализ по Выручке

  • Отсортировали все товары по убыванию выручки.

  • Рассчитали накопительную долю выручки от общего итога.

  • Присвоили категории:

    • A-Выручка: товары, дающие первые ~80% совокупной выручки.

    • B-Выручка: следующие ~15% совокупной выручки.

    • C-Выручка: оставшиеся ~5% совокупной выручки.

Анализ по Количеству Заказов:

  • Отсортировали все товары по убыванию количества заказов.

  • Рассчитали накопительную долю от общего количества заказов.

  • Присвоили категории по тому же принципу:

    • A-Заказы: товары с наибольшим количеством продаж (часто покупаемые).

    • B-Заказы: товары со средним количеством продаж.

    • C-Заказы: товары, которые продаются редко.

Шаг 3. Присвоили комбинированные категории

Мы создали матрицу, где по вертикали — категория по Выручке (A, B, C), а по горизонтали — категория по Заказам (A, B, C). В результате получилось 9 групп.

А-ЗАКАЗЫ (ЧАСТЫЕ) В-ЗАКАЗЫ (СРЕДНИЕ) С-ЗАКАЗЫ (РЕДКИЕ)
А-Выручка (Высокая) АА AB AC
В-Выручка (Средняя) BA BB BC
С-Выручка (Низкая) CA CB CC

Каждый товар получил двухбуквенный код в зависимости от своих позиций в двух анализах. Например, товар с высокой выручкой (A), но средним количеством заказов (B) попадает в категорию AB.

Критерии и интерпретация категорий товаров

  • AA: самые ценные товары. Дают основную выручку и стабильно продаются. Ключевые для бизнеса.

  • AB: высокая выручка, но продаются не так часто, как AA. Это могут быть товары с высокой ценой.

  • AC: высокая выручка, но достигается за счет редких, но очень крупных заказов. Спрос нестабилен и сложен для прогнозирования.

  • BA: средняя выручка, но высокий оборот. Основа ассортимента по стабильности.

  • BB: стандартные товары со средними показателями по обоим критериям.

  • BC: средняя выручка и низкая частота. Кандидаты на удаление из ассортимента.

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

  • CB: низкая выручка, средняя частота.

  •  CC: товары с минимальным вкладом. Основные кандидаты на распродажу и вывод из ассортимента.

Пример проведения двухфакторного ABC-анализа

Stack

  • Back-en: Python, Pydantic, FastAPI, SQLAlchemy, openpyxl, 

  • Frontend: React, TypeScript, Vite, Chart.js

  • ML: CatBoost, Prophet, MLflow, Apache Airflow, Pandas

  • Хранение данных: PostgreSQL, Redis, Alembic

  • Хостинг: On-premise

     

Метрика Стало
Точность прогнозов 91%
Снижение OOS 28%
Экономия оборотных средств Меньше «замороженного» капитала
Равномерная отгрузка по складам и снижение логистических издержек
Экономия времени категорийных менеджеров за счёт автоматизации

Перейти на сайт

В карточку агентства

Письмо автору кейса

Пользуйтесь реальным опытом в IT и следите за успехами потенциальных подрядчиков и конкурентов
Подпишитесь на рассылку
Читайте также
Кейсы по теме#Товары народного потребления

©2007-2025

Проекты компании Proactivity Group
Нажмите «ОК», если вы соглашаетесь с условиями обработки cookie и ваших данных о поведении на сайте, необходимых для аналитики. Запретить обработку cookie можете через браузер