Хотите посмотреть систему изнутри и понять, насколько она применима для ваших задач?
С удовольствием проведем демонстрацию
 

Какая точность реалистична и из чего она складывается

Прогнозирование промо в ритейле

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

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

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

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

На все эти вопросы отвечает промо-прогноз. Как он устроен и из чего складывается его точность - рассказываем на опыте прогнозирования в крупном продуктовом ритейле.

Почему прогноз промо - непростая задача

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

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

Какая точность реалистична

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

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

Планку важно держать реалистичной. Стабильные ходовые товары вне промо прогнозируются с точностью до 80-90%. В промо же реалистичный рыночный коридор 60-75% при оценке через WMAPE. Точность 65-70% - уже хороший результат, к которому стоит стремиться. Ходовые позиции держатся у верхней планки, а на категориях с нерегулярным спросом ошибка выше - там, где исторических данных меньше, индивидуальная оценка нестабильна.
Из нашей практики прогнозирования в продуктовом ритейле средняя точность в пересчете из WMAPE - около 72%. В ходовых категориях и на отдельных магазинах прогноз выходит за 80%. За счет чего достигается такая точность - разберем на примере подходов, которые мы используем в Imprice.

Как собирается прогноз

1. Регулярный спрос
Сначала оценивается регулярный спрос - сколько товара продается в обычные дни, исходя из динамики его продаж, с учетом сезонности и тренда. В retail forecasting такой слой часто называют baseline-прогнозом, он описывает ожидаемые продажи без специальных промо-эффектов.
Для этой части могут использоваться скользящие средние, экспоненциальное сглаживание, модели временных рядов (такие как ETS, ARIMA/SARIMA, state-space models), а также регрессионные модели с календарными признаками: днем недели, праздниками, сезоном и локальными трендами. Главная задача этого слоя - отделить нормальный уровень продаж от всплесков, связанных с промо, дефицитом товара, разовыми аномалиями или внешними событиями.
В общем виде промо-прогноз можно представить как совокупность нескольких компонент.
3. Распределение спроса внутри ассортимента
Далее прогноз уточняется с учетом перетоков внутри ассортимента. В промо рост продаж конкретного SKU не всегда означает новый спрос, поскольку часть покупателей переключается с похожего товара на акционный. На практике этот эффект часто описывают как каннибализацию спроса.
Поэтому в сложных категориях прогноз строят не только на уровне отдельного SKU, но и на более устойчивом уровне: категории, потребности или сегмента похожих SKU, сформированного по товарным признакам. Если покупатель пришел за газировкой, скидка на один SKU не заставит его купить больше газировки в целом - он просто выберет другую бутылку внутри той же потребности.
При этом «потребность» - это не верхний уровень классификатора. Безалкогольные напитки распадаются на лимонады, холодный чай, энергетики - у них разные сценарии потребления и разная сезонность, хотя формально это одна категория. Уровень важно брать самый близкий к товару - и сезонность, и промо-эффект на нем точнее. Например, сначала оценивается общий спрос на группу взаимозаменяемых товаров, затем он распределяется между конкретными позициями с учетом цены, промо, наличия и роли товара внутри группы.

Для этой части могут использоваться иерархические модели прогнозирования, кластеризация товаров по признакам, модели распределения спроса между SKU, модели замещения, а также алгоритмы на графах или матрицах похожести товаров. Такой подход помогает не переоценивать эффект акции и учитывать ситуации, когда промо перераспределяет спрос внутри категории, а не создает его с нуля.
Дополнительно учитывается покупка впрок: если во время акции покупатели закупились заранее, после ее завершения спрос на товар может временно просесть. В промо-прогнозировании это обычно называют post-promotion dip. Без поправки на просадку uplift завышается. Полностью развести и тот, и другой переток от нового спроса - отдельная, более тонкая задача.
2. Промо-эффект
Затем рассчитывается влияние промо - как на спрос влияет наличие акции как таковой, размер скидки, механика акции, выкладка, способ анонсирования и опыт похожих промо в прошлом. В прикладных retail-системах эта часть часто описывается через promotion lift и ценовые эффекты.
В одних случаях промо-эффект оценивается через uplift-коэффициенты - во сколько раз продажи в акции обычно отличаются от регулярного спроса. В других - через модели ценовой эластичности, лог-линейные регрессии, GAM-модели, деревья решений, Random Forest или градиентный бустинг по табличным признакам, например CatBoost, LightGBM или XGBoost. Такие алгоритмы позволяют учитывать не только отдельные факторы, но и их сочетания. Например, одна и та же скидка может работать по-разному в разных категориях, сезонах и механиках промо.
В зависимости от категории, качества данных и задачи прогнозирования эти компоненты могут рассчитываться разными методами - от интерпретируемых коэффициентов и регрессионных моделей до ансамблей деревьев и иерархических моделей. Важен не конкретный набор формул, а сама логика: отделить регулярный спрос от промо-эффекта, учесть поведение похожих товаров и привести прогноз к реалистичному торговому сценарию.

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

Помимо точности, важна прозрачность расчета. Категорийному менеджеру или закупщику нужно не только видеть прогноз, но и понимать, из чего он складывается. Интерпретируемые модели позволяют по каждому прогнозу поднять расшифровку - какие данные и цены использовались, какой uplift и какие коэффициенты применялись. Точность остается приоритетной метрикой, но без объяснимости сеть не примет решение по прогнозу.

От чего зависит точность

На точность прогноза влияют консистентность данных и учет особых случаев.
#

Консистентность данных

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

Показательный пример из практики - куриное яйцо в период ажиотажного спроса. Из-за внешнего шока регулярная цена растет, и даже промо-цена оказывается выше прежней регулярной. Модель видит рост цены и предсказывает падение спроса, а продажи, наоборот, растут. Логика модели верна, но аномальные данные искажают прогноз.

Таких факторов может быть множество: конкурент у двери в ответ снижает цену, локальное событие рядом с магазином привлекает дополнительный трафик, тот же ситуативный ажиотаж спроса. Все они напрямую влияют на продажи, но исторические данные этого не покажут. Поэтому консистентность важно поддерживать в режиме постоянной сверки.
Мы работаем с этой задачей на двух уровнях:
  • При расчете модель опирается не только на средний спрос (EMA), но и на тренд продаж за последние месяцы. Так она менее восприимчива к отдельным сдвигам.
  • После каждого расчета идет разбор кейсов и дообучение модели. Прогоняются тестовые прогнозы, алгоритм находит проблемные товары, дает рекомендации, а дальше категорийный менеджер принимает финальное решение - аномалия это или системная проблема. Без таких разборов исключения остаются незамеченными и снижают общую точность.
#

Что еще важно, чтобы прогноз был рабочим

Редкие товары. Если товар продается редко, индивидуальная оценка будет нестабильной. Для компенсации нехватки данных используются fallback-подходы: показатель по тому же товару в других магазинах, по категории, по сети.

Товары на постоянном промо (EDLP). Когда товар месяцами стоит в акции, «чистого» базового периода нет - сравнивать не с чем. Для таких позиций работает отдельная ветка: проверяется, как часто товар попадает в акцию, и для постоянных промо-товаров за базу берется не регулярная, а промо-цена.

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

Регулярная проверка на факте. Прогноз нужно постоянно сверять с реальностью: следить за WMAPE и систематическим смещением (bias), разбирать ошибки по категориям, магазинам и промо-механикам.

Что такой подход дает бизнесу

4
3
2
1
Во многих сетях автозаказ работает только на регулярных продажах, а заказ под акцию менеджер магазина правит руками. Отсюда - недозаказ, OOS и потерянные продажи ровно в тот момент, когда трафик максимальный. Прогноз в разрезе «магазин - товар - день» позволяет формировать заказ под промо автоматически.
Коэффициент чувствительности к промо подсвечивает промо-независимые товары, которые не дают ощутимого прироста. Это работает как мягкий самозапрет - не нужно занимать акцию и грузить магазин запасом по товару, который как продавался по чуть-чуть, так и будет.
Сеть заранее видит, сколько даст конкретное промо, где возможен дефицит, а где план завышен.
Автозаказ в промо
Маркер для менеджера
Промокомитет до старта акции
Когда отдельно видно базовые продажи и отдельно прирост от промо, бизнес понимает реальную отдачу каждой акции и видит позиции, которые не дают сети нужного результата.
Разделение базы и эффекта

Заключение

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

Следующий уровень зрелости - когда прогноз и управление ценой живут в одном ML-контуре. В такой сборке модель не только рассчитывает прогноз по цене сети, но и рекомендует оптимальный уровень цены для достижения целей бизнеса: максимум выручки, валовой прибыли либо баланс между прибылью и продажами в штуках. Это направление мы в Imprice развиваем совместно с проектами динамического ценообразования в ритейле и e-commerce
Ищете способы повысить точность прогнозов?
Будем рады обсудить вашу задачу и поделиться опытом!