От MAPE к деньгам: как превратить прогноз спроса в продукт, а не в красивую цифру
Компания только что закончила «большой проект по прогнозированию спроса». Полгода датасайентисты собирали данные, спорили про CatBoost и нейросети — и наконец показали на слайде:
🎯 WAPE = 12%
Все довольны: у руководства есть одна понятная цифра, у команды данных — ощущение хорошо сделанной работы. Модель выкатывают в прод, подключают к витринам, рисуют графики. А дальше начинаются будни.
По одним SKU — хронический out-of-stock. По другим — перезаказ и забитые склады. Закупки и логисты продолжают «править руками» — модель то попадает, то промахивается, и неясно, где ей можно доверять. Через пару месяцев звучит неудобный вопрос:
А можно в деньгах показать, что нам дала точность 12%? Сколько мы сэкономили или заработали?
И тут выясняется, что ответа нет. Есть MAPE, WAPE, красивые графики — но нет связи с P&L. Это ситуация, которую мы в Insight AI видим у многих зрелых компаний: модель есть, метрики есть, бизнес-эффекта по факту — не очень.
Проблема не в том, что «бизнес не доверяет модели». Проблема в том, что прогноз оценивают метриками, которые почти ничего не говорят о реальных рисках и потерях.
🔺Треугольник «прогноз – метрика – решение»
В центре истории с прогнозированием спроса всегда стоит решение: сколько заказать, куда отвезти, на какой риск out-of-stock компания готова пойти. Вокруг этого решения живут три элемента, которые должны быть связаны между собой.
Прогноз — что выдаёт модель: ожидание, диапазон или распределение спроса по SKU, магазину, каналу на горизонт день–неделя–месяц.
Метрика качества — как измерять, хорошо ли предсказали: MAPE или WAPE, но с учётом весов и стоимости ошибок, а не просто «средний по больнице».
Бизнес-риски — чего компания боится сильнее: недопоставки и упущенной выручки или излишних запасов и списаний.
Если эти части живут раздельно, любая цифра точности превращается в шум. Модель может быть «точной», но система — слепой. Именно поэтому в проектах по demand forecasting мы всегда начинаем не с выбора алгоритма, а с расшивки этого треугольника: какие решения принимаются, чего боятся, какие ошибки дороже.
Почему «точность 10%» мало что гарантирует
Классический сценарий: обучили модель, посчитали MAPE или WAPE по всему ассортименту, получили одну аккуратную цифру. Она неплохо смотрится на слайде, но скрывает всё, что важно.
Средний MAPE по всем SKU маскирует то, что происходит в топ-категориях и в длинном хвосте. Модель может нормально работать по товарам, дающим 70% оборота, и проваливаться по остальным. Для отчёта это «ошибка 15%», а для операционки — постоянные OOS по важным SKU и замороженный хвост.
Часто смешивают горизонты: «точность» закидывают в один котёл для прогноза на завтра, неделю и месяц вперёд. Хотя ошибка 10% на завтра и на месяц — совершенно разные риски: сегодня это риск пустых полок, через месяц — риск неправильного планирования производства и складов.
Любят смотреть только агрегаты: метрики по категориям, брендам, регионам. На этих уровнях всё сглаживается — провал одного магазина компенсируется успехом другого. Бизнес же живёт на уровне SKU×точка, там, где ошибки и болят.
Не различают шум и bias. Одинаковый MAPE может означать, что модель иногда чуть завышает, иногда чуть занижает спрос — это шум, с ним можно жить, заложив safety stock. Или может означать, что модель стабильно недооценивает спрос по части ассортимента — это систематический перекос, который приводит к хроническому недозаказу и прямым потерям.
Во всех этих случаях одна и та же «ошибка 10–12%» для P&L означает совершенно разное.
Decision-aware метрики: считать не проценты, а потери
Ключевой сдвиг — перестать воспринимать MAPE как цель. Хороший прогноз — это не минимальный процент ошибки, а минимум денег, которые компания теряет из-за этой ошибки.
Возьмём два товара. Товар A продаётся по 1000 штук в месяц, маржа 200 ₽ за штуку. Товар B продаётся по 10 штук, маржа 20 ₽. Компания недооценила спрос на 10% по каждому: по Товару A не довезли 100 штук — упущенная маржа 20 000 ₽, по Товару B не довезли 1 штуку — упущенная маржа 20 ₽.
С точки зрения MAPE — одинаковая ошибка 10%.
С точки зрения денег — ошибка по Товару A в тысячу раз болезненнее.
Дальше добавляем реалистичный момент: асимметрия ошибок. Для многих категорий недозаказ объективно хуже, чем перезаказ: клиент ушёл к конкуренту — вернуть его сложнее, чем распродать пару лишних коробок с дисконтом. Если для сегмента компания оценивает, что недозаказ в 3 раза страшнее, чем перезаказ, то ошибка по Товару A превращается в «стоимость ошибки» 60 000 ₽.
Именно в таком виде имеет смысл сравнивать модели и настройки: не по «MAPE лучше на 2 п.п.», а по суммарной стоимости ошибок в деньгах по портфелю. Decision-aware метрика взвешивает ошибки по марже, объёму, приоритету SKU, учитывает разный штраф за недозаказ и перезаказ, и на выходе даёт не процент, а условный «убыток от ошибок прогноза».
Это уже не декоративный показатель, а язык, на котором можно разговаривать с коммерческим директором и CFO.
От одной цифры к распределению и уровню сервиса
Точечный прогноз «продадим 100 штук» выглядит удобно, но на самом деле это очень грубое упрощение. В реальности компания может продать 80, может 120, иногда 150. И честнее описать будущее так: «С вероятностью 90% продадим от 80 до 120 штук».
Из такого прогноза уже можно выбирать стратегию. Если компания говорит: «Мы хотим, чтобы out-of-stock по этой группе был не чаще, чем в 2% случаев», — это на языке статистики означает выбор конкретного квантиля распределения спроса. Боимся OOS — берём верхний квантиль (например, 95-й), заказываем ближе к верхней границе. Боимся излишков и замороженного капитала — берём меньший квантиль, жертвуем частью спроса, но избавляемся от завалов.
На практике это превращается во внятные инструменты: safety stock, привязанный к разбросу спроса и целевому уровню сервиса; разные профили риска для разных групп товаров — быстрые и критичные получают один уровень, медленные и дорогие — другой.
Во многих компаниях сейчас как раз идёт переход от одной цифры к probabilistic forecasting — моделям, которые выдают распределения и квантили. Для бизнеса это означает простую вещь: им можно осознанно управлять риском, а не реагировать постфактум.
Forecasting как продукт, а не сервис «дайте MAPE»
У любой системы прогнозирования есть живые пользователи: закупки, производственники, логисты, маркетинг, финансы. Им не нужны MAPE, RMSE и распределения сами по себе. Им нужно понимать: сколько заказать и куда, где на горизонте двух недель максимальный риск OOS, какие позиции «забетонируют» склад, если спрос не подтвердится, что будет с запасами и выручкой, если включить промо.
Хороший forecasting-продукт отвечает на эти вопросы в терминах действий и денег, а не «вот вам ещё один дашборд». Вместо сухого forecast = 100 пользователь видит:
📦 Рекомендуемый заказ: 90–110 штук
- Вероятность OOS при заказе 90 — 10%, при 110 — <1%
- Ожидаемая потеря при недозаказе ≈ 15 000 ₽
- Ожидаемое замораживание капитала при перезаказе ≈ 8 000 ₽
Форма может быть любой: дашборд, отчёт в почте, алерт в ERP. Суть одна: над ML-моделями нужен продуктовый слой, который переводит их вывод на язык управленческих решений. В Insight AI мы фактически всегда проектируем такой слой вместе с бизнес-командами: иначе даже самая умная модель превращается в «ещё один отчёт, который никто не смотрит».
Устойчивость к смене режимов
Всё вышесказанное подразумевает, что будущее хоть как-то похоже на прошлое. Но мир любит ковид, санкции, новые каналы и резкие изменения ассортимента. Классическая логика «натренировали один раз на всей истории» в такие моменты ломается.
Устойчивые системы прогнозирования умеют работать с разными режимами поведения спроса. Они помечают периоды как «обычный спрос», «промо», «аномалия/шок» и по-разному учитывают их в обучении. Группируют SKU по паттернам — быстрые, медленные, промозависимые, новинки — и не пытаются описать всех одной формулой. Мониторят не только MAPE, но и дрейф данных: меняются ли распределения спроса, остатков, фичей.
Если мир явно «сломался», система может сознательно перейти в более консервативный режим: повысить safety stock по критичным SKU, чаще переобучать модели, временно менять политики заказов. Важно, что и здесь сохраняется decision-aware логика: компания управляет не точностью как таковой, а риск-профилем решений.
Эксперименты поверх прогнозов
Прогноз — это всегда гипотеза о будущем. В нормальном бизнесе гипотезы принято проверять. Зрелая система прогнозирования спроса должна быть не только «генератором чисел», но и платформой для экспериментов. Сравнивать разные модели и профили риска на реальных решениях — на части ассортимента или сети. Тестировать разные политики запасов: выше или ниже safety stock, разные уровни сервиса по категориям. Измерять не только точность, но и фактические потери, выручку, оборачиваемость.
Технически это могут быть A/B-тесты, пилоты на части магазинов, пошаговые изменения. Важно, что прогнозы и управленческие решения постоянно получают обратную связь и донастраиваются. Так forecasting перестаёт быть статичным сервисом «WAPE за прошлый месяц» и превращается в живую экспериментальную систему.
Кейс: что меняется в реальном ритейлере
У крупного ритейлера с сотнями магазинов система прогнозирования уже была: раз в неделю датасайентисты выгружали точечный прогноз по SKU×магазин, считали общую MAPE 14%, показывали отчёт. На бумаге всё выглядело прилично. В операционке — классический набор: по части ассортимента хронический недозаказ и out-of-stock, по другой части перезаказы и утилизация, закупки и логистика массово правят заказы вручную, потому что «моделям верить нельзя».
После перехода к decision-aware подходу мы сделали несколько вещей. Пересчитали точность в деньги: вместо одной MAPE посчитали стоимость недозаказа и перезаказа по группам товаров. Оказалось, что основная боль сидит в ограниченном наборе категорий. Именно под них переобучили модели и поменяли политику запасов.
Перешли к вероятностному прогнозу. Для ключевых SKU задали целевой сервисный уровень, для длинного хвоста — более осторожный профиль. Safety stock начали считать из разброса прогноза и уровней риска.
Пересобрали интерфейсы. В отчётах и системах для закупок появились рекомендуемые заказы с оценкой риска OOS и денежной стоимостью ошибки. Логисты получили список «горячих точек», финансы — прозрачную картину замороженного капитала и списаний. Добавили мониторинг режимов: при резких сдвигах спроса система автоматически переходила к более «безопасным» политикам и ускоренному переобучению.
📊 Результат за четыре месяца:
- Списания по критичным категориям снизились на 18%
- Доля OOS по ключевым SKU упала на 34%
- Объём ручных правок сократился на 41%
При этом формальные метрики типа WAPE улучшились с 14% до 12% — не драматично, но система в целом стала куда здоровее и прозрачнее.
От точности к управлению риском
Прогноз спроса — это не цифра в отчёте, а сервис для принятия решений под неопределённостью
Модель сама по себе мало что значит, если не понятно, какие решения на ней основаны и какие риски она несёт. MAPE и WAPE полезны, но только как часть большой картины. По-настоящему важны потери и риск, которые возникают из ошибок: out-of-stock, списания, замороженный капитал, недовольство клиентов.
Инновация не только в очередной архитектуре нейросети, а в связке: ML-модели дают вероятностный прогноз, из него считается стоимость ошибок, всё это упаковывается в продуктовый слой, который работает с экспериментами и переобучением.
🚀 С чего начать прямо сейчас
Даже если у вас уже есть модель с приличной точностью, можно сделать три шага:
Шаг 1. Пересчитать ошибки в деньги
Возьмите текущий прогноз, посмотрите на фактические отклонения за последний квартал и посчитайте: сколько упущенной маржи по недозаказам, сколько замороженного капитала в перезаказах, сколько списаний. Сгруппируйте по категориям и найдите, где боль самая острая.
Шаг 2. Запустить пилот с интервалами
Выберите 50–100 SKU из проблемной категории. Вместо точечного прогноза начните выдавать интервал с вероятностями: «продадим от X до Y с вероятностью 90%». Дайте закупкам выбрать уровень риска и посмотрите на реальные результаты через месяц.
Шаг 3. Честно обсудить с бизнесом приоритеты
Соберите коммерческого директора, закупки, логистику и финансы. Задайте прямой вопрос: что для нас хуже — недозаказ или перезаказ? Во сколько раз хуже? По каким категориям готовы рискнуть OOS ради меньших запасов, а по каким — наоборот?
Главное
Когда эти три элемента сойдутся — понимание стоимости ошибок, вероятностный прогноз и согласованные приоритеты — вы получите не просто модель с хорошей точностью, а систему, которая помогает принимать решения и зарабатывать деньги.
Именно к такой модели мы подводим клиентов: чтобы разговор про прогнозы превращался в вопрос «Мы используем данные и алгоритмы так, чтобы принимать более умные решения и меньше терять?»
Когда ответ на этот вопрос становится «да», проценты точности перестают быть самоцелью и становятся всего лишь одним из инструментов в большой системе управления спросом.