Автоматизировали прогноз спроса, достигли точность 85%, снизили списания товара на 15–20% у федеральной продуктовой розничной сети
Клиент: Федеральный FMCG-ритейлер (Топ-10 РФ), управляющий сетью из более чем 1500 магазинов формата «у дома».
Проблематика: Необходимость оптимизации запасов в категориях с коротким сроком годности (Fresh/Ultra-Fresh) в условиях гетерогенного ИТ-ландшафта (централизованная ERP на базе 1С и децентрализованные WMS-системы).
Решение: Разработка и внедрение системы прогнозирования спроса на основе алгоритмов машинного обучения (ML). Проект включал пилотное внедрение на 50 торговых точках и распределительном центре (РЦ) с последующим тиражированием на всю сеть.
Результаты за 6 месяцев: Точность прогнозирования продаж достигла 85%, объем списаний скоропортящейся продукции снижен на 17%.
Боль клиента: гадание на кофейной гуще
До прихода алгоритмов процесс заказа товаров напоминал игру в рулетку. Директора магазинов каждое утро садились за Excel и, полагаясь на интуицию, решали, что заказывать. Точность таких прогнозов колебалась в районе 55–60%. Это приводило к классическим «качелям»:
- Overstock (перетарка) - магазин завален помидорами, которые гниют. Списания съедают маржу.
- Out-of-stock (дефицит) - покупатель приходит за молоком, видит пустую полку и уходит к конкуренту через дорогу.
Клиент поставил амбициозную цель - исключить человеческий фактор из рутинных заказов и снизить потери, не уронив при этом доступность товара на полке (OSA, On Shelf Availability).
Прежде чем учить модель, нам пришлось стать «цифровыми археологами». Данные хранились в разных системах, часто дублировались или противоречили друг другу.
Источники, которые мы завели в Data Lake:
- История чеков за 3 года: кто, что, когда и в комбинации с чем покупал.
- Справочники товаров: самая большая боль. Один и тот же сорт яблок в разных регионах мог называться по-разному. Пришлось проводить нормализацию справочников (Master Data Management).
- Промо-календарь: акции ломают стандартные паттерны спроса, поэтому данные о скидках стали критически важными.
- Внешние факторы: погода (через API метеосервисов), производственный календарь (праздники/выходные) и даже график выплат пенсий в конкретных локациях.
Вопрос безопасности решили созданием защищенного контура: данные о продажах обезличивались, модель видела паттерны, но не видела персональных данных покупателей.
Решение: Цифровой оракул от команды БизнесМатики
Мы не могли ломать существующую ERP, поэтому построили рядом интеллектуальную надстройку. Это микросервисная архитектура, которая работает как «второе мнение», а со временем - как основное. Система забирает данные из хранилища, прогоняет их через набор ML-моделей и выдает рекомендацию: «Закажи 15 пакетов кефира и 40 кг картофеля на завтра». Этот прогноз автоматически падает в систему автозаказа (автопополнения), и если он не превышает критические лимиты, заказ формируется без участия человека. Директор магазина вмешивается только в случае форс-мажора.
Работы и этапы: Марафон длиною в 9 месяцев
Проект шел не как спринт, а как планомерная осада крепости.
- Аудит и чистка данных (2 месяца): Самый скучный, но важный этап. Если на входе мусор - на выходе мусор, даже с самым умным ИИ.
- Разработка MVP (3 месяца): Выбрали одну категорию («Молочная продукция») и 10 тестовых магазинов. Обучили первые модели.
- Опытно-промышленная эксплуатация (2 месяца): Запустили «битву алгоритмов». Сравнивали заказы директоров и прогнозы ML на живых данных, но заказы пока делали люди.
- Тиражирование (2 месяца): Постепенное подключение всех категорий Fresh и всех регионов.
Команда: математики и товароведы
С нашей стороны работала команда из 7 человек: Project Manager, Tech Lead, два Data Scientist, Data Engineer, DevOps и бизнес-аналитик.
Со стороны клиента ключевую роль играл не только CDTO (директор по цифровой трансформации), но и владелец бизнес-процесса - операционный директор. Без его воли и участия категорийных менеджеров (которые объясняли, почему, например, перед Пасхой спрос на яйца взлетает по экспоненте) модель осталась бы оторванной от реальности игрушкой.
Мы использовали классический, проверенный в бою стек, избегая экзотики ради стабильности:
- ML-движок: Python. Для прогнозирования временных рядов мы отказались от тяжелых нейросетей в пользу градиентного бустинга. На табличных данных ритейла они работают быстрее и точнее, лучше интерпретируются.
- База данных: ClickHouse для быстрой аналитики больших массивов данных и PostgreSQL для хранения метаданных.
- Оркестрация: Apache Airflow управлял потоками данных (ETL).
- Инфраструктура: Все упаковано в Docker-контейнеры и управляется Kubernetes (K8s) на серверах клиента.
Результаты: Цифры, которые убедили всех
Мы считали эффект методом A/B-тестирования: сравнивали показатели «пилотной» группы магазинов с контрольной группой (где работали по старинке) в течение 3 месяцев.
- Точность прогноза выросла с 60% до 85% на горизонте 7 дней.
- Списания снизились на 17% в категории Fresh и на 20% в категории Ultra-Fresh.
- Упущенные продажи сократились на 5%. Товар стал всегда в наличии, даже в пятницу вечером.
- Директора магазинов освободили по 1,5–2 часа в день, которые раньше тратили на формирование заказов.
«Поначалу мы боялись, что система назаказывает нам вагоны скоропорта, который придется выкинуть. Но алгоритм оказался осторожнее и умнее нас. Главное изменение даже не в деньгах, хотя экономия колоссальная. Изменилась роль директора магазина. Раньше это был учетчик и закупщик. Теперь он - менеджер торгового зала. У него освободились руки, чтобы следить за сервисом, чистотой и работой кассиров. Машина считает, человек управляет атмосферой».
Теперь, когда фундамент заложен, аппетит клиента вырос. В планах на следующий год (Roadmap):
- Прогноз эластичности спроса по цене: чтобы ML подсказывал не только сколько заказать, но и какую скидку поставить, чтобы продать всё под ноль к концу срока годности.
- Внедрение компьютерного зрения: камеры в зале будут сами видеть пустую полку и давать сигнал на склад или сразу в систему заказа, минуя этап пересчета остатков.