На базе платформы в X5 был запущен продукт «Управление товарной представленностью», который с помощью моделей машинного обучения позволяет определить нетипичное отсутствие продаж товара в конкретном магазине и уведомить об этом персонал. Это позволило повысить доступность товаров на полках и объемы продаж. Для детектирования нежелательных событий в магазинах, таких как отсутствие товара на полке, нарушение выкладки или отсутствие ценника, используется анализ чеков. В результате время обнаружения проблемы сегодня не превышает часа.

В рамках еще одной инициативы X5 был осуществлен переход с инструмента расчета прогноза продаж промотоваров, реализованного ранее на базе SAP BW, на собственное решение. При этом точность прогноза относительно старого решения в ряде случаев выросла на 40%, а A/Bтестирование подтвердило значительный рост товарооборота и маржи. Также новое решение позволило сократить распродажи после промоакций.

О реализации этих проектов рассказывает Елена Фатыхова, руководитель направления поддержки и сопровождения платформы прогнозирования X5 и номинант на премию Data Award 2023.

 

Какие задачи решает платформа прогнозирования X5 и какие технологии использует?

Платформа прогнозирования Х5 выросла из созданного в 2019 году продукта «Спрос», в рамках которого реализовывается прогноз продаж для логистики и коммерции, позволяющий точно знать, какое количество товара, в каком магазине и в какой день будет продано, чтобы поставки могли обеспечить продажи. Зная будущие продажи, можно понять, сколько товара закупать у поставщика под промо и регулярные продажи, чтобы удовлетворить спрос. По мере развития «Спроса» и добавления к нему новых функций сформировались общие, повторно используемые программные блоки, что сейчас позволяет нам быстро реализовывать новые бизнес-идеи и запускать новые продукты. Платформа прогнозирования реализована на базе стека Open Source: Hadoop, Airflow, Kubernetes и Spark.

 

Какие применения платформы сегодня наиболее актуальны?

Сейчас у нас фокус на долгосрочное прогнозирование (до полутора лет), а также повышение доступности товара. Наши инструменты позволяют определить, что продажи нетипично снизились в определенных торговых точках, и проанализировать факторы, которые к этому привели.

Совсем недавно фокус был на импортозамещение. Весной мы столкнулись с объективной необходимостью ускоренного перехода на собственные решения. Так, например, в торговой сети «Пятерочка» за два месяца был выполнен переход с инструмента прогноза промо, реализованного на решении западного вендора, на наш инструмент на базе машинного обучения. Это обеспечило не только поддержку критичных бизнес-процессов, но и повысило точность прогнозов, улучшило пользовательский опыт.

 

Каков был масштаб проблем исхода из России западного вендора?

В марте 2022 года нас предупредили о невозможности дальнейшей работы в облаке SAP. Штаб импортозамещения X5 начал активно прорабатывать вопрос: какие процессы могут быть затронуты, какие альтернативы есть и что необходимо предпринять. По большей части это коснулось отчетности — в SAP BW реализуется именно отчетность, а также функционал прогноза промопродаж. К этому моменту у нас уже год функционировало собственное решение для торговой сети «Перекресток» на базе платформы прогнозирования и, конечно же, у нас были планы перевести на него и торговую сеть «Пятерочка». Однако в этой сети существенно больше пользователей, и переход планировался в течение года. В новой ситуации не было сомнений, что переезжать нужно именно на наше решение: оно уже было готово, но пришлось ускориться.

Прошлый «промокалькулятор» имел очень простую логику — пользователь самостоятельно выбирал аналогичный период промоакции или товар-аналог и его период промо. Далее на базе прошлых продаж составлялся прогноз будущих продаж. Этот инструмент использовали категорийные менеджеры, они получали прогноз продаж на выбранные магазины и позиции по дням. Никакие другие возможности SAP BW не использовались, просто исторически инструмент, появившийся задолго до того, как в компанию пришли другие технологии по работе с данными, был реализован в этой системе — в нем содержались все нужные для расчетов данные.

Как мы видим, подходы к прогнозированию в старом инструменте были довольно тривиальные и учитывали лишь факт продаж в одной исторической точке, однако работа в современной конкурентной среде требует учета самых различных факторов: цена, сезон, расположение товара в каталоге и его предложение на кассе, предпраздничные дни. Кроме того, мы с 2018 года ведем учет динамики продаж и накапливаем историю — из этих данных можно получить очень много ценной информации для повышения точности прогноза.

 

Что собой представляет новое решение?

Новое решение по прогнозированию промопродаж представляет из себя сервис с пользовательским интерфейсом. Пользователь указывает, какие товары в каких магазинах и в какой период он хочет поставить в промоакцию, а также его параметры — например, цену. Далее сервис готовит расчет по этим параметрам и возвращает пользователю прогнозы объемов продаж. Расчет реализуется с помощью модели машинного обучения, которая обучена на исторических данных и учитывает на вход атрибуты будущих промо. Сам расчет происходит в онлайне, и у пользователя есть возможность быстро получить расчеты по разным условиям и выбрать оптимальные.

 

На экране пользователь видит время срабатывания уведомления, наименование и код товара и может ответить на сигнал: указать корректный он или нет, а если проблема подтверждается — выбрать причину

Если вернуться к проблеме доступности товара на полке, почему вообще происходят «нежелательные события» и как вы раньше с ними боролись?

У нас есть модель, которая в режиме времени, близком к реальному, определяет, что продажи нетипично отсутствуют в магазине по конкретной товарной позиции. Это означает, что динамика этого товара в прошлом в этом магазине, динамика продаж категории, динамика продаж в похожих торговых точках говорят о том, что продажи должны осуществляться с высокой вероятностью, но их нет. Вероятно, случилось какое-то событие, которое помешало посетителю магазина сделать покупку: отсутствие товара на полке, нарушение выкладки, отсутствие ценника. Мы не знаем, что именно произошло, но точно знаем, что возник фактор снижения доступности товара для покупателя. В этот момент мы проверяем остатки товара, которые также доступны в онлайне, и если товар есть на остатках, шлем уведомление магазину проверить полку и устранить проблему.

Потери от таких событий могут быть значительны, хотя сложно провести их точную оценку из-за невозможности валидации, ведь факта «как могло бы быть» у нас нет. Тем не менее наши оценки доходят до 20% оборота по отдельным категориям товаров, и экспертный анализ показывает, что на этот показатель вполне можно ориентироваться.

Есть два подхода устранения проблем с доступностью. Первый — жесткий контроль за наличием товара на полках, что требует больших человеческих ресурсов. Второй — автоматическая проверка данных и выставление заданий по информационной базе.

Еще совсем недавно компания использовала простые эвристики. Например, по наиболее продаваемому ассортименту у магазина должна быть хотя бы одна продажа в день. Если этого не произошло, то персоналу предписывалось выявить причину и устранить ее. Проблема заключается в том, что в этот список так или иначе могли попасть позиции, которые не продавались по другим причинам — например, именно в конкретном магазине на них просто нет спроса в данный период времени, однако сотрудникам добавлялась работа по проверке. Поэтому нам было важно максимально точно идентифицировать случаи, где проблема действительно есть, и не нагружать магазин лишней работой, а наоборот — помогать более точечно находить проблемы и наращивать товарооборот.

 

Почему для бизнеса важна доступность товара на полке, помимо минимизации упущенной прибыли?

Во-первых, это лояльность наших покупателей и имидж торговой сети. Если покупатели не находят то, за чем пришли, то могут и не вернуться, особенно если в шаговой доступности расположены другие торговые точки. Для нас важно, чтобы посетители находили на полке нужный им товар и возвращались снова и снова.

Во-вторых, устранение проблемы отсутствия товаров напрямую влияет на рост продаж. Если есть проблема с товаром на полке, то его и не покупают.

В-третьих, если продажа не случилась, то мы не понимаем потенциал товарной позиции в будущем, а, исходя из заниженной оценки, прогнозируем более скромные показатели и везем в магазин меньше товара.

Наконец, система прогнозирования в конечном счете влияет на сокращение трудозатрат персонала. Сотрудникам не нужно проверять все полки и весь ассортимент — они лишь точечно проходятся по нашим заданиям, а остальное время уделяют общению с покупателями, приемке товара и другим задачам. Для нас очень важно упростить работу сотрудников магазинов, помочь им достигать свои цели по показателям.

 

Какие рассматривались варианты решения задачи?

Анализ чеков — довольно очевидное решение. Анализировать данные из чеков нам все равно нужно для прогноза продаж, восстанавливать продажи тоже нужно для понимания потенциала спроса, так что это стало естественным развитием системы прогнозирования для повторного использования наработок в других функциях. Кроме того, данные по чекам используются и в других продуктах, например, в подразделении управления потребительской ценностью (Customer Value Management, CVM) их применяют для создания таргетированных маркетинговых акций.

Альтернативный способ — видеоаналитика. Нельзя сказать, что это конкурирующий способ: видеоаналитику можно применять при разметке для обучения моделей. Да и в целом решения могли бы дополнять друг друга. Но проблема видеоаналитики в том, что у нас очень много магазинов, а оборудование для такого подхода дорогое — нецелесообразно устанавливать его во все магазины. К тому же у нас широкая ассортиментная матрица, и задача по распознаванию товаров на полке тоже становится довольно объемной. Поэтому использование подхода с чековыми данными стало рациональным решением проблемы с точки зрения бюджета, качества и сроков.

 

Елена Фатыхова: «Между появлением нежелательных проблем с товаром и первыми сигналами о необходимости определения их причин сейчас проходит не более часа»

Чеки появляются, когда клиент уже покинул магазин. Как на основе чеков можно оперативно выявить проблему на полке?

У нас чек оказывается не позднее чем через полчаса после того, как он был сформирован на кассе. Разумеется, мы уже не успеем предложить товар покупателю, который не смог его найти, но мы узнаем о проблеме и устраним ее для наших следующих посетителей. Мы видим, как после наших сигналов продажи возобновляются, и это отличный эффект.

Каждый час в течение дня мы формируем сигналы и отправляем их в магазины. Их получают директора и администраторы. На старте проекта для пилота мы разработали телеграмм-бота, где регистрировался персонал — сотрудники получали оповещения и шли их отрабатывать. На каждый сигнал по своему магазину они в ответ указывали нам, действительно ли есть проблема, и называли причину, из-за которой она возникла, либо отвечали, что все в порядке и система «ошиблась». На основе этой обратной связи мы оценивали качество модели и работали над тем, чтобы повысить точность прогнозов. Когда точность показалась достаточной, мы запустили A/B-тестирование. В пилотной группе было 300 магазинов, которые получали сигналы, а в контрольной — 300 магазинов, которые сигналы не получали. По результатам мы произвели точечную оценку прироста товарооборота. Мы увидели хороший статзначимый прирост даже при том, что уведомления в тестовом режиме рассылались ограниченно, а не по всем товарным позициям.

Далее мы интегрировали нашу платформу со стандартными системами магазина и отказались от телеграмм-бота. Теперь сотрудники отрабатывают наши задания в своих привычных инструментах — это специальное оборудование: мобильные устройства, которые выдают сотрудникам, и кассовое ПО. При этом если задание отработано в одном инструменте, то и в другом оно отмечается как выполненное. Очень важно, чтобы решением было удобно пользоваться. На экране пользователь видит время срабатывания уведомления, наименование и код товара, также есть возможность ответить на сигнал: указать, корректный он или нет, а если проблема подтверждается — выбрать причину.

Сейчас между появлением проблемы и первыми сигналами о том, что «что-то не так», проходит от получаса до часа.

Раньше до момента обнаружения проблемы могли проходить сутки и более. Конечно, сотрудник мог проходить между полками и заметить нехватку товара. Но зачастую среди всех своих задач сотрудник может несколько раз в день проконтролировать выкладку, а какие-то позиции просто пропустить.

 

Каковы результаты работы системы предупреждения о проблемах с доступностью?

Упущенные продажи мы оцениваем на базе А/В-тестирования — это самый достоверный способ выяснить, что изменение продаж произошло именно за счет воздействия конкретного инструмента, а не каких-то других факторов. Такой тест показал прямое влияние на товарооборот, и его рост оказался значительным.

 

Каковы дальнейшие направления развития проекта?

Мы продолжаем развивать наши модели в сторону повышения точности. Это касается и детектирования нежелательных проблем, и прогноза продаж. Предел по качеству прогнозирования еще не достигнут, и мы будем дальше развивать подходы к математическому моделированию для повышения эффективности. Также для нас актуально долгосрочное прогнозирование, и мы будем расширять горизонт прогноза с текущих 16 недель до горизонта планирования (обычно полтора года) со стороны категорийных менеджеров и закупок.

Сервис для прогноза промо позволяет осуществлять анализ what-if — проводить оценку сценариев по прогнозу продаж в зависимости от различных параметров: позиции, цены, наличия рекламы и пр. Данный инструмент планируется развивать и для других направлений.

Важным фокусом является определение причин снижения доступности товара. Это происходит не только из-за нарушения процессов в магазине — сотрудник может повлиять на них, только если товар числится в остатках: нет смысла отдавать задание в магазин, если в нем нет остатка товарной позиции. В целом по цепочке может быть много факторов: нарушение уровня сервиса поставщика, некорректные параметры в системе и т. п. Мы активно движемся в сторону их идентификации и развиваем инструменты для функций, отвечающих за эти процессы.

На базе того, что уже реализовано, есть достаточно большое количество процессов, которые могут быть оптимизированы и автоматизированы, и мы планируем продолжать активное развитие наших инструментов для повышения эффективности наших бизнесов.

Николай Смирнов (nsmirnov@osp.ru) — независимый автор (Москва)