Задача: закупали на глаз — теряли на списаниях
Распределительный склад Flor2u закупал цветы с запасом — по экспертной оценке и в Excel, без прогноза. Цветок — скоропорт: часть товара не уходит до конца свежести и списывается, а оборотные средства замораживаются в остатках, которые не продаются.
- ≈ 1 000 000 ₽ списаний в месяц;
- 5% оборота уходило в списания.
Цель: заменить интуицию на прогноз спроса
- Прогноз спроса по каждому SKU на горизонте 1–12 недель вперёд;
- рекомендация закупки — сколько и когда заказывать, готовой цифрой;
- меньше потерь: снизить overstock, списания и out-of-stock.
Инструмент для закупщика вместо таблиц — конкретная рекомендация по каждой позиции каждое утро.
Что сделали: путь от анализа до production
- Анализ процесса. Разобрали закупку от заявки до поставки, нашли причины overstock.
- Требования к модели. Прогноз по SKU на 1–12 недель плюс расчёт страхового запаса.
- Подготовка данных. Продажи, остатки, поставки, сроки свежести, lead time, праздники и промо.
- Обучение модели. Тестировали варианты, выбрали CatBoost — стандарт ритейла на табличных данных.
- Запуск в production. Рекомендации в интерфейсе закупщика, обновление каждую ночь.
Как это работает: данные → модель → рекомендация
Источники данных: история продаж по SKU, остатки и поставки (WMS), сроки свежести по категориям, lead time поставщиков, праздники, промо и зарплатные дни.
Модель — CatBoost: градиентный бустинг на табличных данных. Признаки: лаги и скользящие средние, сезонность и день недели, промо и акции.
Рекомендация закупки считается детерминированно: Заказать = Прогноз + Страховой запас − Текущий остаток − Товар в пути. Например: 1000 + 100 − 300 − 200 = заказать 600 шт.
Что видит закупщик каждое утро
Не график, а конкретную цифру по каждому SKU — и статус, на что смотреть в первую очередь: «Срочно», «Заказать», «Достаточно», «Избыток». Прогноз на 1–12 недель, витрина обновляется в 06:00.
Результат: списания вниз, деньги — в оборот
- Списания: 1 000 000 ₽ → 650 000 ₽ в месяц, это −35%;
- экономия ≈ 4,2 млн ₽ в год при тех же продажах;
- окупаемость проекта — 3 месяца.
Поддержка: работает без ручного Excel
- Автозагрузка ночью. Airflow каждую ночь выгружает продажи и остатки из ERP, чистит данные и пересчитывает витрины.
- Переобучение и валидация. Модель обновляется на свежих данных и проверяется на качество перед публикацией.
- Мониторинг и откат. Падение точности — сигнал; версии в MLflow, откат к предыдущей за минуты.