Ошибка прогноза спроса стоит денег в обе стороны. Переоценили — склад забит товаром, деньги заморожены, скоропортящееся списывается. Недооценили — пустые полки, очередь в чате, уставшие менеджеры и клиенты, ушедшие к конкурентам. В сервисных компаниях то же самое происходит с расписанием: мастеров вывели слишком много или слишком мало.
Долгое время прогноз строили в таблице по принципу «как в прошлом месяце плюс немного». Методы машинного обучения позволяют учитывать десятки факторов одновременно: сезонность, день недели, погоду, акции, праздники, рекламу, даже количество обращений в чате накануне. Разберём, как это работает на практике и где границы возможного.
Что именно прогнозируют
«Спрос» — понятие широкое. Прежде чем строить модель, нужно определить конкретную величину, горизонт и детализацию.
| Бизнес-задача | Что прогнозируем | Горизонт | Детализация |
|---|---|---|---|
| Закупки | Продажи в штуках | 2–8 недель | Товар × склад × неделя |
| Расписание персонала | Количество обращений и визитов | 1–2 недели | Филиал × день × час |
| Маркетинговый бюджет | Количество заявок | 1–3 месяца | Канал × неделя |
| Финансовый план | Выручка | Квартал | Направление × месяц |
Чем мельче детализация и длиннее горизонт, тем ниже точность. Прогноз выручки компании на месяц может быть точным в пределах нескольких процентов, а прогноз продаж конкретного товара в конкретном магазине на конкретный день — ошибаться на десятки процентов. Это нормально, и важно заранее договориться, какой уровень точности полезен для решения.
От скользящего среднего к машинному обучению
Наивные методы
Самый простой прогноз — «завтра будет как сегодня» или «следующая неделя будет как средняя за последние четыре». Эти методы нужны как точка отсчёта: любая сложная модель должна их обыгрывать, иначе она не нужна.
Статистические модели временных рядов
Экспоненциальное сглаживание и модели семейства ARIMA выделяют в ряде тренд, сезонность и шум. Они хорошо работают на стабильных рядах с понятной сезонностью, но плохо учитывают внешние факторы: акцию, погоду, запуск новой рекламной кампании.
Машинное обучение
Градиентный бустинг и нейросетевые модели обучаются на таблице, где каждая строка — период, а столбцы — признаки: день недели, номер недели, был ли праздник, шла ли акция, сколько потратили на рекламу, какая была температура, сколько заявок пришло за предыдущие дни. Модель сама находит, как эти признаки влияют на спрос, включая нелинейные эффекты: например, что жара повышает спрос на кондиционеры только начиная с определённой температуры.
Отдельное преимущество ML — обучение на многих рядах сразу. Модель, обученная на сотне товаров, переносит закономерности на новый товар, у которого истории пока почти нет.
Какие данные нужны
Качество прогноза определяется данными сильнее, чем выбором алгоритма. Минимальный и расширенный набор выглядят так:
- История продаж или обращений — минимум полтора-два полных сезонных цикла, иначе модель не увидит сезонность.
- Календарь — праздники, выходные, переносы, школьные каникулы.
- Промо и цены — когда шли акции, какие были скидки, когда менялись цены.
- Маркетинг — расходы на рекламу по каналам и датам.
- Наличие — дни, когда товара не было на складе. Без этого модель решит, что спроса не было.
- Внешние факторы — погода, события в городе, курс валют, если он влияет на цены.
- Сигналы интереса — количество диалогов, запросов цены, вопросов о наличии.
Последний пункт часто недооценивают. Вопросы клиентов в чате — опережающий индикатор: люди спрашивают о товаре или услуге за несколько дней до покупки. Если все диалоги на сайте и в мессенджерах размечаются по темам, рост вопросов о конкретной категории становится признаком для модели. Такие данные даёт аналитика диалогов.
Совет. Обязательно отмечайте дни дефицита. Если товара не было неделю и продажи были нулевые, это не нулевой спрос, а потерянные продажи. Модель, обученная без этой пометки, будет систематически занижать прогноз и воспроизводить дефицит снова.
Как измерить точность прогноза
Самая понятная бизнесу метрика — MAPE, средняя абсолютная процентная ошибка:
MAPE = среднее по периодам от |Факт − Прогноз| / Факт × 100%
Пример на пяти неделях продаж:
| Неделя | Факт | Прогноз | Ошибка | Ошибка, % |
|---|---|---|---|---|
| 1 | 420 | 400 | 20 | 4,8% |
| 2 | 380 | 410 | 30 | 7,9% |
| 3 | 510 | 460 | 50 | 9,8% |
| 4 | 450 | 440 | 10 | 2,2% |
| 5 | 400 | 430 | 30 | 7,5% |
MAPE = (4,8 + 7,9 + 9,8 + 2,2 + 7,5) / 5 = 6,4%. У MAPE есть слабость: при маленьких значениях факта ошибка в процентах взлетает. Для товаров с редкими продажами лучше использовать WAPE — сумму абсолютных ошибок, делённую на сумму факта. Здесь WAPE = 140 / 2 160 = 6,5%.
Помимо точности, смотрите на смещение — систематически ли прогноз выше или ниже факта. В примере сумма прогноза 2 140 против факта 2 160, смещение около −0,9%, то есть почти нулевое. Модель с MAPE 8% без смещения часто полезнее модели с MAPE 6%, которая стабильно занижает.
Сколько денег это даёт: расчёт на примере
Рассмотрим сеть из шести салонов красоты. Задача — планировать количество мастеров на смене. Средняя выручка с одного занятого часа мастера — 2 500 ₽, стоимость часа мастера для салона — 900 ₽.
При прогнозе «как на прошлой неделе» MAPE по часовым слотам составлял 28%. На практике это значило, что в одних слотах мастера простаивали, а в других клиентам отказывали в записи. По оценке салона, ежемесячно терялось около 260 часов из-за нехватки мастеров и оплачивалось около 300 часов простоя.
После перехода на модель, учитывающую день недели, праздники, акции и число заявок в мессенджерах за предыдущие трое суток, MAPE снизилась до 15%. Потери сократились примерно вдвое:
- Возвращённая выручка: 130 часов × 2 500 ₽ = 325 000 ₽ в месяц.
- Сэкономленный простой: 150 часов × 900 ₽ = 135 000 ₽ в месяц.
- Итого эффект: около 460 000 ₽ в месяц на сеть.
Цифры условные, но порядок показателен: для бизнеса с переменной нагрузкой точный прогноз окупается быстрее большинства маркетинговых инициатив.
Как внедрять прогнозирование пошагово
- Выберите одно решение. Не «прогнозировать всё», а, например, планировать смены операторов в одном филиале.
- Соберите историю и зафиксируйте базовую точность. Посчитайте MAPE текущего способа прогноза.
- Постройте модель и протестируйте её на прошлом. Обучите на одном периоде, проверьте на следующем, который модель не видела.
- Запустите параллельно. Несколько недель люди принимают решения по-старому, а прогноз модели записывается рядом для сравнения.
- Переключите решение на модель и продолжайте отслеживать точность и смещение каждую неделю.
- Масштабируйте на другие филиалы и задачи только после подтверждённого эффекта.
Ограничения, о которых стоит знать
- Модель не знает о том, чего не было в истории. Запуск принципиально нового продукта или резкое изменение рынка требуют экспертной поправки.
- Мало данных — слабый прогноз. Для молодого бизнеса с полугодовой историей сезонность выявить нельзя.
- Прогноз влияет на реальность. Если по прогнозу закупили меньше, продажи будут ограничены запасом, и модель увидит «подтверждение».
- Нужна поддержка. Модели переобучают регулярно, а качество данных контролируют постоянно.
Итоги
- Начинайте с конкретного решения и понятного горизонта, а не с абстрактного «прогноза спроса».
- Качество данных важнее алгоритма: отмечайте дефицит, акции и праздники.
- Используйте вопросы клиентов в чатах как опережающий сигнал.
- Измеряйте точность через MAPE или WAPE и обязательно следите за смещением.
- Сравнивайте модель с наивным прогнозом и переводите решения на неё только после теста.
Если вы хотите собрать данные об интересе клиентов из всех каналов в одном месте, начните с ИИ-сотрудника: он фиксирует каждое обращение, его тему и время, а эта история затем становится основой и для аналитики, и для прогноза.
По теме: узнайте больше на странице «Аналитика диалогов» или свяжитесь с нами — подберём решение под вашу задачу.