March 9

Автоматизировали прогноз спроса, достигли точность 85%, снизили списания товара на 15–20% у федеральной продуктовой розничной сети

Клиент: Федеральный FMCG-ритейлер (Топ-10 РФ), управляющий сетью из более чем 1500 магазинов формата «у дома».

Проблематика: Необходимость оптимизации запасов в категориях с коротким сроком годности (Fresh/Ultra-Fresh) в условиях гетерогенного ИТ-ландшафта (централизованная ERP на базе 1С и децентрализованные WMS-системы).

Решение: Разработка и внедрение системы прогнозирования спроса на основе алгоритмов машинного обучения (ML). Проект включал пилотное внедрение на 50 торговых точках и распределительном центре (РЦ) с последующим тиражированием на всю сеть.

Результаты за 6 месяцев: Точность прогнозирования продаж достигла 85%,  объем списаний скоропортящейся продукции снижен на 17%.

Боль клиента: гадание на кофейной гуще

До прихода алгоритмов процесс заказа товаров напоминал игру в рулетку. Директора магазинов каждое утро садились за Excel и, полагаясь на интуицию, решали, что заказывать. Точность таких прогнозов колебалась в районе 55–60%. Это приводило к классическим «качелям»:

  1. Overstock (перетарка) - магазин завален помидорами, которые гниют. Списания съедают маржу.
  2. 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):

  1. Прогноз эластичности спроса по цене: чтобы ML подсказывал не только сколько заказать, но и какую скидку поставить, чтобы продать всё под ноль к концу срока годности.
  2. Внедрение компьютерного зрения: камеры в зале будут сами видеть пустую полку и давать сигнал на склад или сразу в систему заказа, минуя этап пересчета остатков.