ПРОГНОЗ ОСТАТКОВ
Сервис прогнозирования поставок на склады маркетплейсов по модели FBO для международного бренда канцелярских товаров
О проекте
Международный бренд канцелярских товаров с 29-летней историей и присутствием в 65 странах мира, один из самых узнаваемых на российском рынке
Бизнес сталкивается с дисбалансом запасов: одни SKU быстро уходят в Out of Stock и теряют выручку, другие «зависают» на складе и замораживают оборотные средства. Нужен сервис, который прогнозирует продажи и спрос, поставки на склады маркетплейсов и формирует рекомендации для категорийных менеджеров и логистов. Это инструмент управления запасами, автоматизирующий расчёты и планирование поставок на Ozon и Wildberries
топ РФ
Один из самых узнаваемых брендов в РФ
65 стран
присутствие в странах мира
29 лет
непрерывного развития бренда
Подходит для:
e-commerce / b2c-,b2b-маркетплейсов / промышленности / стройматериалов / оборудования / электронных компонентов / FMCG / дистрибьюторы /компании с собственными складами
Возможности
-
ИНТЕЛЛЕКТУАЛЬНОЕ УПРАВЛЕНИЕ ЗАПАСАМИ
Прогноз по связке SKU×склад/канал сбыта, баланс между отсутствием товара (OOS) и перетариванием для любых категорий продукции.
-
ОПТИМИЗАЦИЯ ОБОРОТНОГО КАПИТАЛА И ЛОГИСТИКИ
Выровненное планирование поставок, снижение доли «замороженного» капитала на складе и сокращение логистических затрат в разных регионах и каналах.
-
ТОЧНОЕ ML-ПРОГНОЗИРОВАНИЕ И АВТОМАТИЗАЦИЯ АНАЛИТИКИ
Учёт сезонности, акций и рыночных трендов в планах поставок, авторасчёты и автосверки вместо Excel и ручных сводных таблиц.
-
АВТОАЛЕРТЫ И АНОМАЛИИ
Своевременная подсветка угроз OOS, перетаривания и «зависших» остатков по любому складу или каналу продаж.
-
МАСШТАБИРОВАНИЕ И ИНТЕГРАЦИЯ В СУЩЕСТВУЮЩУЮ ИНФРАСТРУКТУРУ
Единая масштабируемая витрина данных. Продажи, остатки и прогнозы из разных систем и маркетплейсов в одном интерфейсе для управления тысячами SKU и множеством каналов сбыта.
Цель
Обеспечить устойчивую товарную доступность для отгрузок на склады маркетплейсов при минимальных запасах: снизить OOS и потери выручки, минимизировать финансовые потери от дисбаланса запасов и сократить операционные издержки за счёт автоматизации аналитики / прогнозирования, разгрузив категорийных менеджеров.
Задачи
- Сбор и анализ данных. Обработка исторических и текущих данных о продажах, заказах и поставках по модели FBO (Fulfillment by Operator) из БД клиента.
- Выявлять сезонность и аномалии для коррекции прогнозов.
- Построить точные автопрогнозы спроса (до 90%) и поставок по каждому SKU×склад. Настроить расчет прогноза складских поставок и спроса/продаж по выбранному маркетплейсу и кластерам/регионам. Прогноз должен основываться на истории продаж, коэффициентах роста, маркетинговой деятельности, географическом распределении спроса.
- Реализовать модуль прогноза спроса с учётом ручных корректировок клиента (период, маркетплейс, кластер/регион, товары «в пути») и автоматическим пересчётом. Предусмотреть очистку данных: выявлять и исключать аномальные всплески заказов без фактического выкупа.
- Реализовать модуль бизнес-анализа: каждому SKU присваивать категорию по двухфакторному АВС-анализу (выручка × количество заказов). Использовать категорию для интерпретации качества прогноза (разные пороги/допуски по классам) и выводить её в отчётах / таблице результатов.
- Разделить товары на группы на основе их вклада в выручку и стабильности/частоты продаж с помощью АВС-анализа.
- Реализовать модуль управления данными: сохранять результаты расчётов в БД.
- Автоматизировать пороги срабатывания алертов. Подсветка и/или сигнализация угрозы OOS (Out Of Stock) и перетаривания склада.
- Генерировать рекомендации для категорийных менеджеров и логистов по пополнению складов.
- Реализовать модуль визуализации результатов: выводить таблицу с полями SKU, ITEMID, прогноз поставок на маркетплейсы, прогноз продаж, оборачиваемость и рекомендованная поставка. Обновлять данные в таблице после пересчёта прогноза.
Что сделали
Мы разработали и внедрили сервис прогнозирования спроса на базе ML-модели, которая еженедельно строит прогнозы для ~11 000 SKU на горизонте от 2 недель до 1 года.
Модель учитывает:
— риски,
— эластичность спроса,
— остатки на складах,
— продажи,
— сезонность,
— тренды.
Сервис применяет ML-подходы к данным о продажах и остатках на Ozon и Wildberries, позволяет клиенту задавать параметры (период прогноза, маркетплейс, кластер/регион) и вручную корректировать значения поставок, а также автоматически формирует рекомендации по пополнению, снижая объём ручной работы.
Для консолидации источников предусмотрено сопоставление полей и приведение отчётов маркетплейсов к единому формату; данные регулярно обогащаются новыми выгрузками по реализациям, заказам и историям остатков. Результаты отображаются в веб-сервисе с дашбордами и табличным выводом.
Этапы проекта
Начали с создания надежного математического ядра и постепенно довели систему до полноценной промышленной интеграции, минимизируя ручной труд и максимизируя прибыль..
#1 Создание прототипа и утверждение точности
-
Начальный этап проекта посвящен валидации математической модели и бизнес-логики. Мы разработали и протестировали прототип, который позволяет анализировать результаты расчетов.
-
Мы использовали механизмы машинного обучения для детального анализа исторических и текущих данных о продажах.
-
Цель этого анализа - выделить ключевые триггеры, сезонность и аномальные всплески продаж, чтобы на них формировать прогнозы спроса/продаж и высчитывать необходимое количество SKU для поставки на склады маркетплейсов. Данные мы брали из базы клиента (остатки, продажи, заказы).
-
Прототип позволил провести эксперименты и выбрать оптимальные ML-модели для промышленного внедрения, обеспечивающие максимально точный прогноз спроса и продаж.
-
Это гарантировало, что система готова к промышленному внедрению и способна сформировать надежные прогнозы на срок до 1 года, который, в свою очередь, строится на основании прогноза продаж и спроса.
#2 Промышленный запуск и обязательный функционал
-
Этот этап был ключевым, поскольку обеспечивал достижение основной бизнес-цели — максимально эффективного управления складскими запасами. Мы довели модель и модули расчёта и рекомендаций до готовности к промышленной интеграции.
-
Техническая команда обеспечила сопоставление полей из разных отчетов маркетплейсов для приведения данных к единому виду. При расчете прогноза система учитывала аномальные всплески по заказам, не завершившимся выкупом, чтобы «вычистить» их из общего прогноза продаж и корректно рассчитать потребность.
-
Кроме того, мы внедрили двухфакторный АВС-анализ (по выручке и количеству заказов), чтобы присвоить каждому товару категорию. Это необходимо для правильной интерпретации точности прогноза, поскольку позволяет придать больший вес товарам, которые максимально влияют на общий результат.
-
Мы настроили регулярное обогащение данных новыми отчетами о реализациях, заказах и историями остатков, а также учитывали исторические остатки по каждому SKU на протяжении всего анализируемого периода.
-
Пример: Клиент вводит ручные корректировки (период прогноза, маркетплейс, кластер/регион поставки и количество товаров в пути). После нажатия кнопки «СДЕЛАТЬ ПРОГНОЗ» система рассчитывает прогноз поставок.
-
Экспорт результатов уже доступен и на этом этапе: реализована первичная выгрузка в Word и Excel.
#3
-
В третий месяц работ мы завершили функционал: добавили валидацию и редактирование, доработали справочники, реализовали сверку АПО и экспертизы и экспорт ведомостей.
-
Вышли на целевые метрики качества на валидации F1 по дефектам и работам выше 0,90, интегрировались с «Техзором» для создания дефектов из системы с целевым SLA API не более 1 секунды на дефект.
-
Провели аудит и настроили ретраи, выполнили нагрузочные и проверки безопасности на объёмах порядка 350 документов в месяц и пиках свыше 30 документов в час, а также настроили журналирование.
-
Реализовали передачу сформированных и подтверждённых пользователем дефектов в «Техзор» через АРІ для автоматического создания карточек и загрузки информации в карточку квартиры.
-
Финально провели отладку и сдачу: пилотировали решение на реальных данных из ~10 документов, сформировали отчёт по SLA (доступность > 99%) и закрыли инциденты
-
Подготовили руководства пользователя и администратора, регламенты обновления словарей и ML, план оп-рrет-развёртывания (Helm/Docker, сети, БД) и ввели систему в промышленную эксплуатацию.
Аналитика
#1 Подготовили данные
Собрали данные за определённый периоды по каждому SKU со всех каналов маркетплейсов.
#2 Провели два независимых ABC-анализа отдельно для каждого критерия
Анализ по Выручке
- Отсортировали все товары по убыванию выручки.
- Рассчитали накопительную долю выручки от общего итога.
-
Присвоили категории:
- А-Выручка: товары, дающие первые ~80% совокупной выручки.
- В-Выручка: следующие ~15% совокупной выручки.
- С-Выручка: оставшиеся ~5% совокупной выручки.
Анализ по Количеству Заказов
- Отсортировали все товары по убыванию количества заказов.
- Рассчитали накопительную долю от общего количества заказов.
-
Присвоили категории по тому же принципу:
- А-Выручка: товары с наибольшим количеством продаж (часто покупаемые)
- В-Выручка: товары со средним количеством продаж.
- С-Выручка: товары, которые продаются редко.
#3 Присвоили комбинированные категории
Мы создали матрицу, где по вертикали — категория по Выручке (А, В, С), а по горизонтали — категория по Заказам (А, В, С). В результате получилось 9 групп.
| А-ЗАКАЗЫ (ЧАСТЫЕ) | В-ЗАКАЗЫ (СРЕДНИЕ) | С-ЗАКАЗЫ (РЕДКИЕ) | |
|---|---|---|---|
| А-Выручка (Высокая) |
AA
|
AB
|
AC
|
| В-Выручка (Средняя) |
BA
|
BB
|
BC
|
| С-Выручка (Низкая) |
CA
|
CB
|
CC
|
Каждый товар получил двухбуквенный код в зависимости от своих позиций в двух анализах. Например, товар с высокой выручкой (А), но средним количеством заказов (В) попадает в категорию АВ.
Критерии и интерпретация категорий товаров
- AA: самые ценные товары. Дают основную выручку и стабильно продаются. Ключевые для бизнеса.
- AB: высокая выручка, но продаются не так часто, как АА. Это могут быть товары с высокой ценой.
- AC: высокая выручка, но достигается за счет редких, но очень крупных заказов. Спрос нестабилен и сложен для прогнозирования.
- BA: средняя выручка, но высокий оборот. Основа ассортимента по стабильности.
- BC: средняя выручка и низкая частота. Кандидаты на удаление из ассортимента.
- CA: много мелких заказов, но в сумме выручка низкая. Могут создавать высокую операционную нагрузку при низкой отдаче.
- CB: низкая выручка, средняя частота.
- CC: товары с минимальным вкладом. Основные кандидаты на распродажу и вывод из ассортимента.
| АРТИКУЛ | ПРЕДМЕТ | СУММА ПРОДАЖИ | КОЛ-ВО УПАКОВОК | КАТЕГОРИЯ |
|---|---|---|---|---|
| 123456 | Тетрадь 48 л | 50 000 | 500 | AA |
| 234567 | Карандаши набор | 30 000 | 100 | AB |
| 345678 | Пластилин | 5 000 | 300 | CA |
Stack
| Слой / Компонент | Инструменты и сервисы |
|---|---|
| Back-end |
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% |
| Экономия оборотных средств | меньше «замороженного» капитала |
| Равномерная отгрузка по складам и снижение логистических издержек | снизилось |
| SLA | 99% |
| Экономия времени категорийных менеджеров за счёт автоматизации | снизилось |
Со стороны OSMI IT проект вели
МШ
Михаил Шрайбман
CEO OSMI IT
фасилитировал взаимодействие и проектную логику
АФ
Алексей Фролов
Менеджер проекта
координировал работу команды, выстраивал процесс, контролировал сроки и качество исполнения
ДН
Денис Нагаев
CTO OSMI IT
обеспечивал, контролировал технические и архитектурные решения и реализацию
Отзывы клиента
Мы рады, что OSMI IT стали нашим партнёром в проекте АПО. Команда прошла наш отбор, предложила продуманное решение и сразу впечатлила своим вниманием к деталям.
Мы почувствовали, что ребята действительно хотят сделать сильный результат вместе с нами. Впереди было более 6 месяцев плотной работы: аналитика, проработка сценариев, тестирование и точная настройка логики. Команда постоянно была на связи, поддерживала нас и работала как единое целое.