Бизнес сталкивается с дисбалансом запасов: одни SKU быстро уходят в Out of Stock и теряют выручку, другие «зависают» на складе и замораживают оборотные средства. Нужен сервис, который прогнозирует продажи и спрос, поставки на склады маркетплейсов и формирует рекомендации для категорийных менеджеров и логистов. Это инструмент управления запасами, автоматизирующий расчёты и планирование поставок на Ozon и Wildberries.
Клиент — международный бренд канцелярских товаров с 29-летней историей и присутствием в 65 странах мира, один из самых узнаваемых на российском рынке.
Нашей целью было — обеспечить устойчивую товарную доступность для отгрузок на склады маркетплейсов при минимальных запасах: снизить OOS и потери выручки, минимизировать финансовые потери от дисбаланса запасов и сократить операционные издержки за счёт автоматизации аналитики / прогнозирования, разгрузив категорийных менеджеров.
Мы разработали и внедрили сервис прогнозирования спроса на базе ML-модели, которая еженедельно строит прогнозы для ~11 000 SKU на горизонте от 2 недель до 1 года. Модель учитывает:
Сервис применяет ML-подходы к данным о продажах и остатках на Ozon и Wildberries, позволяет клиенту задавать параметры (период прогноза, маркетплейс, кластер/регион) и вручную корректировать значения поставок, а также автоматически формирует рекомендации по пополнению, снижая объём ручной работы. Для консолидации источников предусмотрено сопоставление полей и приведение отчётов маркетплейсов к единому формату; данные регулярно обогащаются новыми выгрузками по реализациям, заказам и историям остатков. Результаты отображаются в веб-сервисе с дашбордами и табличным выводом.
Начали с создания надежного математического ядра и постепенно довели систему до полноценной промышленной интеграции, минимизируя ручной труд и максимизируя прибыль.
Начальный этап проекта посвящен валидации математической модели и бизнес-логики. Мы разработали и протестировали прототип, который позволяет анализировать результаты расчетов.
Мы использовали механизмы машинного обучения для детального анализа исторических и текущих данных о продажах. Цель этого анализа — выделить ключевые триггеры, сезонность и аномальные всплески продаж, чтобы на них формировать прогнозы спроса/продаж и высчитывать необходимое количество SKU для поставки на склады маркетплейсов. Данные мы брали из базы клиента (остатки, продажи, заказы).
Прототип позволил провести эксперименты и выбрать оптимальные ML-модели для промышленного внедрения, обеспечивающие максимально точный прогноз спроса и продаж.
Это гарантировало, что система готова к промышленному внедрению и способна сформировать надежные прогнозы на срок до 1 года, который, в свою очередь, строится на основании прогноза продаж и спроса.
Этот этап был ключевым, поскольку обеспечивал достижение основной бизнес-цели — максимально эффективного управления складскими запасами. Мы довели модель и модули расчёта и рекомендаций до готовности к промышленной интеграции.
Мы настроили регулярное обогащение данных новыми отчетами о реализациях, заказах и историями остатков, а также учитывали исторические остатки по каждому SKU на протяжении всего анализируемого периода. Техническая команда обеспечила сопоставление полей из разных отчетов маркетплейсов для приведения данных к единому виду.
При расчете прогноза система учитывала аномальные всплески по заказам, не завершившимся выкупом, чтобы «вычистить» их из общего прогноза продаж и корректно рассчитать потребность.
Пример
Клиент вводит ручные корректировки (период прогноза, маркетплейс, кластер/регион поставки и количество товаров в пути). После нажатия кнопки «СДЕЛАТЬ ПРОГНОЗ» система рассчитывает прогноз поставок.
Кроме того, мы внедрили двухфакторный АВС-анализ (по выручке и количеству заказов), чтобы присвоить каждому товару категорию. Это необходимо для правильной интерпретации точности прогноза, поскольку позволяет придать больший вес товарам, которые максимально влияют на общий результат.
В результате мы получили табличный вывод в веб-сервисе, который включает:
Все результаты расчетов обязательно сохраняются в базе данных.
Этап 3. Выстроили прогнозирование OOS и пополнение запасов.
Настроили единую систему алертов и детекции аномалий: сервис автоматически выявляет угрозу OOS (если запас < X дней), перетаривание и «зависшие» остатки (если запас > Y дней), а также возможные ошибки в заказах и нетипичные всплески/провалы. Пороги алертов автоматизированы, уведомления отправляются в рабочие каналы. Это снижает риск OOS, сокращает недополученную выручку и экономит время категорийных менеджеров. Для категорийных менеджеров и логистов формируются объяснимые рекомендации — сколько и когда пополнить, с возможностью принять решение в один клик.
Результат — интеллектуальный сервис, который не просто предсказывает спрос, но и помогает менеджерам принимать решения по управлению запасами.
Этап 4. Спланировали масштабирование
Эти необязательные, но полезные дополнения повысят уровень автоматизации и аналитической глубины.
На первом этапе расширения мы добавим дополнительные ручные поля для корректировки прогноза, такие как «Страховой запас на случай форс-мажоров».
Также мы реализуем функцию «Скачать Excel», которая выгружает прогноз в формате, совместимом с шаблоном поставки маркетплейса, что позволяет сразу подгрузить файл в личный кабинет для создания поставки.
Кроме того, улучшим систему фильтрации результатов, включая фильтрацию по оборачиваемости и угрозам.
На следующем этапе расширения мы углубим интеграцию и аналитику.
Добавим:
В результате получим ещё более прозрачные и прогнозируемые бизнес-процессы, практически полное исключение ручных операций по формированию поставочных файлов и глубокую аналитику, учитывающую внешние факторы и эффективность выкупа товара.
После получения прогноза спроса от модели машинного обучения мы применили ABC-анализ, чтобы с учётом влияния товаров на выручку и частоты продаж корректно расставить приоритеты и корректно дать рекомендации по поставкам на склад.
Шаг 1. Подготовили данные
Собрали данные за определённый периоды по каждому SKU со всех каналов маркетплейсов.
Шаг 2. Провели два независимых ABC-анализа отдельно для каждого критерия
Шаг 3. Присвоили комбинированные категории
Мы создали матрицу, где по вертикали — категория по Выручке (A, B, C), а по горизонтали — категория по Заказам (A, B, C). В результате получилось 9 групп.
Каждый товар получил двухбуквенный код в зависимости от своих позиций в двух анализах. Например, товар с высокой выручкой (A), но средним количеством заказов (B) попадает в категорию AB.
Критерии и интерпретация категорий товаров