Менеджер по закупкам открывает Excel и пишет в столбец «заказ»: «как в прошлом месяце плюс 10%». Так формируется 60% закупок российских компаний — оценка ВШЭ и Logistics Forum 2024. Результат: SKU класса A в дефиците 2-3 раза в год, склад забит неликвидом класса C, страховой запас раздут на 30-40%.

Прогноз спроса (demand forecasting) меняет правило игры. Он отвечает на вопрос «сколько единиц SKU купят за 30, 60 и 90 дней» с измеримой точностью и заменяет интуицию формулой. Этот гайд разбирает базовые и ML-модели, метрику MAPE, связку с ABC/XYZ и страховым запасом, выбор инструмента и стартовый чек-лист внедрения.

<!-- callout-1 -->

<!-- kpi-1 -->

Зачем прогноз спроса: 4 решения, которые он принимает

Прогноз спроса — не отчёт «для красоты». Это вход в 4 операционных решения, каждое из которых стоит денег.

Закупки. Сколько единиц SKU заказать у поставщика на следующий месяц-квартал. Ошибка в большую сторону — замороженный оборотный капитал и переплата за хранение. Ошибка в меньшую — out-of-stock и упущенная выручка. Для среднего ритейлера с оборотом 500 млн ₽/год ошибка в 10% по 200 SKU класса A означает 12-18 млн ₽ ежегодных потерь.

Точка заказа (ROP). Когда отправить заказ поставщику, чтобы товар успел приехать до исчерпания запаса. Формула ROP = средний дневной спрос × срок поставки + страховой запас работает только при достоверной оценке среднего спроса. На стабильных SKU (категория X) ошибка минимальна, на нестабильных (Y, Z) — растёт до ±30-50%.

Страховой запас. Защита от двух рисков: всплеска спроса и срыва поставки. Без прогноза страховой запас задают по нормативу 30-50% от среднего месячного спроса. С прогнозом — по формуле страхового запаса с фактором k и среднеквадратичным отклонением. Снижение страхового запаса на 18-25% при сохранении уровня сервиса 95-98% — типичный эффект внедрения.

Сезонные и промо-пики. Закупка под Чёрную пятницу, 8 марта, новогодний ассортимент. Без прогноза — переборщили на 40% и торгуете остатками до апреля; недоборщили на 30% — упустили 25% годовой выручки. Прогноз с учётом сезонности и календаря акций даёт коридор ±10-15% даже на пиковых периодах.

5 групп пользователей прогноза внутри компании:

РольЧто используетГоризонт
Категорийный менеджерОбъём закупки на SKU30-60 дней
СнабженецROP, страховой запас14-30 дней
ФинансистПлан оборота, бюджет закупок90 дней
Склад/логистикаЗагрузка зон, штат30 дней
МаркетингДоступность под промо14-45 дней

Каждая роль смотрит на тот же прогноз под своим углом. Поэтому модель должна выдавать не одно число, а распределение: median + 25-й и 75-й перцентили (база для страхового запаса).

Базовые модели: скользящая средняя и сглаживание

Базовая модель — та, что считается в Excel за 15 минут без аналитика. Точность ±15-25% на горизонте 30-60 дней. Это нижняя планка: если ML не даёт лучше — внедрять его не нужно.

Простая скользящая средняя (SMA). Прогноз на следующий период = среднее за последние N периодов. Обычно N = 3 или 6 месяцев. Подходит для стабильных SKU без сезонности и тренда. Главный минус: SMA «отстаёт» от тренда на N/2 периодов. Если спрос растёт на 5% в месяц, SMA-3 покажет прогноз на 7-8% ниже реального через полгода.

Пример: SKU «Перчатки рабочие нитриловые», продажи в шт./мес. за полгода: 1200, 1280, 1350, 1410, 1480, 1550. SMA-3 на июль = (1410 + 1480 + 1550) / 3 = 1480. Фактический июль (по тренду +5%) = 1628. Ошибка: −9,1%.

Взвешенная скользящая средняя (WMA). Старшим периодам — меньший вес. Например, веса 0,1/0,3/0,6 для трёх последних периодов. WMA быстрее реагирует на изменения тренда, чем SMA. Точность улучшается на 2-4 п.п. MAPE для растущих SKU.

Экспоненциальное сглаживание (ES). Прогноз = α × факт_прошлого_периода + (1 − α) × прогноз_прошлого_периода, где α — коэффициент сглаживания 0,1-0,3. Преимущество перед SMA: не требует хранить N периодов, использует только последний прогноз и факт. Точность на горизонте 30 дней: ±12-18% для X-категории, ±20-28% для Y. Для Z-категории применять не имеет смысла — модель не справляется с высокой вариативностью.

Сравнение базовых моделей на 6-месячной истории SKU средней стабильности (CV 15-20%):

МодельMAPE 30 днейMAPE 60 днейMAPE 90 днейСложность настройки
Простая скользящая средняя SMA-318-22%22-28%28-35%Низкая
Простая скользящая средняя SMA-615-20%20-26%26-32%Низкая
Взвешенная WMA14-18%18-24%24-30%Средняя
Экспоненциальное сглаживание (α=0,2)13-17%18-23%23-29%Средняя
Наивный прогноз (как в прошлом периоде)22-30%28-38%35-45%Минимальная

Наивный прогноз («заказывай как в прошлом месяце») — нижняя планка, относительно которой меряют все остальные модели. Если ваша модель не лучше наивной — выкидывайте.

Базовая модель решает 60-70% задач на 30-дневном горизонте. Внедрение занимает 2-4 недели: выгрузка истории из 1С/ERP, расчёт по 200-500 SKU класса A и B в Excel или Power BI, согласование с категорийными менеджерами.

ML-модели: Holt-Winters, ARIMA, Prophet, LightGBM

Машинное обучение начинается там, где базовые модели ломаются: сезонные пики, тренд + сезон, праздники, акции, кросс-эффекты между SKU. Точность ±8-12% MAPE на горизонте 30-90 дней при истории от 18-24 месяцев.

Holt-Winters. Расширение экспоненциального сглаживания с тремя компонентами: уровень, тренд, сезонностьholt-winters. Подходит для SKU с явной сезонностью (одежда, отопление, садовый инвентарь). Точность 30 дней: ±8-12%, 90 дней: ±12-16%. Требует истории минимум 2 полных сезонных цикла (для годовой сезонности — 24 месяца). Реализация в Python: statsmodels.tsa.holtwinters.ExponentialSmoothing, время обучения на одном SKU — 0,1-0,3 секунды.

ARIMA (AutoRegressive Integrated Moving Average). Классическая модель временных рядов, учитывает автокорреляцию и интегрирование. Подходит для SKU с трендом без сильной сезонности или для коротких горизонтов до 30 дней. Минус: подбор параметров (p, d, q) требует аналитика, на тысячах SKU — нерационально. SARIMA добавляет сезонную составляющую. Точность на горизонте 30 дней: ±9-13%, на 90 дней: ±15-22%.

Prophet. Open-source библиотека от Metaprophet. Главное преимущество — устойчивость к пропускам в данных и автоматический учёт праздников по календарю. Подходит для розницы с явной недельной/годовой сезонностью и календарными пиками. Точность: 30 дней ±9-13%, 90 дней ±13-18%. Сложность настройки: средняя. Минус: плохо ловит резкие изменения и аномалии.

LightGBM / XGBoost. Градиентный бустинг на табличных данных. Принимает на вход не только историю продаж, но и внешние фичи: цена, остатки конкурентов, погода, маркетинговые акции, цена топлива. Точность ±6-10% на 30 днях, ±10-14% на 90 днях. Требует команду аналитиков и инфраструктуру (MLflow или аналог). Подходит для компаний с оборотом от 1-2 млрд ₽/год и штатом аналитиков 2-3 человека.

Сравнение ML-моделей на категории X (CV <10%, 24 месяца истории):

МодельMAPE 30 днейMAPE 90 днейИсторияКоманда
Holt-Winters8-12%12-16%24 месАналитик 0,5 ставки
ARIMA/SARIMA9-13%15-22%18-24 месАналитик 1 ставка
Prophet9-13%13-18%18 месАналитик 0,5 ставки
LightGBM/XGBoost6-10%10-14%24+ мес + фичиАналитик + DE 2 ставки
Ансамбль (среднее 3 моделей)6-9%9-13%24+ месАналитик + DE 2 ставки

Ансамбль (усреднение нескольких моделей) даёт прирост 1-3 п.п. MAPE против лучшей одиночной модели. Стоимость — двойное время обучения. Внедряют ансамбль на топ-100-500 SKU класса A, остальное считают одной моделью.

Важно: на категории Z (CV >25%) ни одна ML-модель не даёт MAPE <25%. Спрос непредсказуем по природе — внезапные единичные продажи. Для Z применяют не прогноз, а правило страхового запаса фиксированного размера (1-2 единицы на SKU) и пересмотр квартально по факту движения.

MAPE и другие метрики качества прогноза

Без метрики качества прогноз — гадание. MAPE (Mean Absolute Percentage Error) — основная метрика в индустрииmape, норма ≤20%.

Формула MAPE. MAPE = (1/n) × Σ |факт − прогноз| / факт × 100%. Считается по периодам (дням или неделям) и усредняется. Пример: прогноз 1500 шт., факт 1380 — ошибка |1500−1380|/1380 = 8,7%. По 12 неделям получаем среднее значение MAPE.

Целевые значения MAPE по категориям XYZ:

Категория XYZНорма MAPEХорошоОтлично
X (CV <10%)≤15%10-12%<8%
Y (CV 10-25%)≤25%18-22%<15%
Z (CV >25%)≤40%30-35%<25%
Без классификации≤25%18-22%<15%

Bias (смещение). Систематическая ошибка в одну сторону. Bias = Σ (прогноз − факт) / Σ факт × 100%. Если bias > +5% — модель регулярно завышает прогноз (раздуваете запасы). Bias < −5% — занижает (дефициты). Норма: −3% ≤ bias ≤ +3%.

WAPE (Weighted Absolute Percentage Error). Взвешенная по объёму версия MAPE. WAPE = Σ |факт − прогноз| / Σ факт × 100%. Применяется, когда нужно учесть, что ошибка на крупном SKU важнее, чем на мелком. WAPE = MAPE × (1 − коэффициент_неравномерности).

RMSE и MAE. Среднеквадратичная и средняя абсолютная ошибки в абсолютных единицах. Используют, когда MAPE неприменим — например, для SKU с регулярными нулевыми периодами (деление на 0). Для редко продающихся товаров категории Z RMSE/MAE дают более интерпретируемый результат.

Замер качества проводят на отложенной выборке (holdout): обучают модель на первых 18 месяцах истории, проверяют на последних 6. Метрики из обучающей выборки не считаются — модель «знает» эти данные и оптимистично переоценивает точность. Это правило часто нарушают: считают MAPE на тренировочных данных и видят 5%, а в продакшене получают 25%.

Что делать при плохом MAPE:

  • MAPE >40% при норме 20% — пересмотреть, тот ли вы прогнозируете SKU. Возможно, это Z-категория, для которой прогноз не работает в принципе.
  • MAPE 25-40% — попробовать другую модель (Holt-Winters вместо ES) или добавить фичи (промо, акции, погода).
  • MAPE 20-25% — поправить параметры текущей модели (α, окно скользящей).
  • MAPE <20% — оставить и мониторить раз в неделю на дрейф.

Связка с ABC/XYZ: для X-категории прогноз даёт +30%

ABC/XYZ-анализabc-xyz определяет, какие SKU вообще имеет смысл прогнозировать, а какие — нет. Это сито перед моделью.

ABC классифицирует по обороту (A — 80% выручки от 15-20% SKU, B — 15%, C — 5%). XYZ — по стабильности спроса (X — CV <10%, Y — 10-25%, Z — >25%). Сочетание даёт матрицу 3×3, в которой каждой ячейке соответствует своя стратегия прогноза. Подробнее — в материале ABC/XYZ-анализ для выбора модели прогноза.

Матрица «стратегия прогноза» по ABC/XYZ:

ЯчейкаДоля SKUСтратегияЦелевой MAPEМодель
AX5-10%Точный прогноз + ML≤12%Holt-Winters/Prophet/LGBM
AY10-15%ML + страховой запас≤20%Holt-Winters/ARIMA
AZ5%Прогноз бессмысленен, max страх. запасПравило
BX10-15%Базовая модель ES/SMA≤15%ES (α=0,2)
BY15-20%Базовая + страховой запас≤25%ES + правило
BZ5-10%Только страховой запасПравило
CX10-15%Простая SMA≤20%SMA-6
CY10-20%Min-max или КанбанПравило
CZ5-10%Заказ под заявкуНе хранить

Для категории X (стабильный спрос) ML-модель даёт +25-35% к точности относительно базовой. На категории Y прирост ML — +10-15% MAPE. На Z прироста нет.

Реальный пример из дистрибуции электроники: после внедрения ABC/XYZ и Prophet для AX, ES для BX и SMA-6 для CX компания снизила страховой запас на 22%, out-of-stock по A-категории — на 60%, а число пересмотров плана закупок упало с еженедельных «пожаров» до плановой работы. Срок внедрения — 4 месяца с командой из аналитика, категорийного менеджера и снабженца. Подробнее о выборе подхода — в материале система управления запасами как фундамент прогноза.

Прогноз для категории Z обычно не делают вовсе. Вместо этого — фиксированный страховой запас 1-2 шт. на SKU и квартальный пересмотр перечня: если SKU не продавался 3-6 месяцев, его выводят из ассортимента.

Прогноз и страховой запас: −18-25% за счёт точности

Страховой запас (safety stock) защищает от двух рисков: всплеска спроса и срыва поставки. Формула страхового запаса с фактором обслуживания:

SS = k × σLT, где k — коэффициент уровня сервиса (1,28 для 90%, 1,65 для 95%, 2,33 для 99%), σLT — среднеквадратичное отклонение спроса за время поставки.

σLT = σd × √LT (если срок поставки стабилен) или √(LT × σd² + d̄² × σLT²) (если поставка тоже варьируется).

Качественный прогноз снижает σ_d — стандартное отклонение спроса вокруг прогноза, а не вокруг среднего. На X-категории σ относительно прогноза в 1,5-2 раза ниже, чем относительно среднего. Это и даёт снижение страхового запаса на 18-25% при сохранении уровня сервиса.

Пример расчёта. SKU «Перчатки нитриловые М», средний дневной спрос 50 шт., σ_d (относительно среднего) = 15 шт., срок поставки LT = 14 дней (стабильный). Целевой сервис 95%, k = 1,65.

  • Без прогноза: σ_LT = 15 × √14 = 56,1 шт. SS = 1,65 × 56,1 = 92,6 ≈ 93 шт.
  • С прогнозом MAPE 12%, σd относительно прогноза = 8 шт. σLT = 8 × √14 = 29,9. SS = 1,65 × 29,9 = 49,4 ≈ 50 шт.
  • Снижение: −46% страхового запаса. В деньгах при цене 8 ₽/шт.: 343 ₽ vs 743 ₽ на SKU, экономия 400 ₽. На 500 SKU: 200 тыс ₽ замороженного капитала.

Параллельно с страховым запасом пересматривают точку заказа (ROP). ROP = d̄ × LT + SS. Снижение SS автоматически снижает ROP, чаще запускает заказ, но меньшего объёма. Цикл оборачиваемости ускоряется на 12-18%. Подробнее о методике — в материале ROP и страховой запас с учётом прогноза и расчёт точки заказа на основе прогноза.

Эффект на P&L компании среднего размера (оборот 500 млн ₽, 2000 SKU, средний запас 80 млн ₽):

ПараметрДо прогнозаПосле прогнозаИзменение
Страховой запас30 млн ₽23 млн ₽−23%
Out-of-stock на A-категории4,5% дней1,8% дней−60%
Оборачиваемость, дней5849−15%
Излишки (slow-mover)12 млн ₽8 млн ₽−33%
Замороженный капитал7 млн ₽4 млн ₽−43%

Сезонность, тренды, праздники и промо

Без учёта сезонности и календаря прогноз ломается на каждом пиковом периоде. Российская специфика: 8 марта, 23 февраля, майские праздники, школьный сезон в августе, новогодние недели декабря-января. Плюс отраслевая сезонность: садовый инвентарь летом, отопление зимой, школьная форма к 1 сентября.

Учёт сезонности. Большинство моделей (Holt-Winters, Prophet, SARIMA) разлагают временной ряд на 3 компонента: тренд (долгосрочное движение), сезонность (повторяющиеся колебания), остаток (шум). Сезонность бывает аддитивной (постоянная амплитуда) и мультипликативной (амплитуда растёт с трендом). Для большинства SKU FMCG — мультипликативная.

Минимальная история для надёжного учёта годовой сезонности — 24 месяца (2 полных цикла). Если истории только 12 месяцев — модель не отличит сезонный пик от случайного и спрогнозирует завышенный объём на тот же месяц следующего года.

Тренды. Долгосрочное снижение или рост, на которое реагирует параметр β в Holt-Winters. Тренд возникает по причинам: смена потребительских привычек (например, сокращение спроса на CD-диски), изменение ценовой политики, выход новых конкурентов, общеэкономическая инфляция. Прогноз без учёта тренда даёт смещение (bias) в одну сторону, накапливающееся с горизонтом.

Календарь праздников. Prophet принимает на вход список праздников и автоматически моделирует их эффект. В Holt-Winters/ARIMA праздники добавляют как dummy-переменные (1 в дни праздника, 0 в остальные). Эффект российского Нового года на FMCG-категории: +60-180% к среднему недельному спросу за 2-3 недели до 31 декабря, +120% к среднему месячному за декабрь.

Эффект праздников на разные категории (по данным X5 Group, 2023):

КатегорияПериод пикаМножитель
Алкоголь25-31 декабря×3,8
Конфеты и сладости1-7 марта×3,2
Цветы1-7 марта×8,5
Шашлык/уголь1-9 мая×4,5
Школьные товары15-31 августа×6,2
Подарочные коробки14-28 февраля×5,1

Промо и акции. Маркетинговые активности — самый сложный фактор для прогноза. Регрессионные модели и градиентный бустинг принимают промо как фичу: тип акции (−15%, −30%, 1+1), длительность, канал коммуникации, история конверсии. Без учёта промо модель прогнозирует «как обычно», а получает всплеск +200-300% — и катастрофический MAPE на этой неделе.

Минимальное решение: вести календарь промо в общем файле, помечать прогнозные периоды флагом «promo» и пересчитывать вручную с поправкой ×1,5-3,0 (множитель калибруется по истории прошлых акций аналогичного типа). Это снижает MAPE на промо-периодах с 60-80% до 20-30%.

Инструменты: от Excel до Python

Выбор инструмента определяется не «модностью», а зрелостью данных, количеством SKU и наличием аналитика. Перебор по типам инструментов от простого к сложному.

Excel + Power Query. Подходит для 50-500 SKU и базовых моделей (SMA, WMA, ES). Стоимость: лицензия Office 365 (бизнес 600-1500 ₽/мес на пользователя). Время внедрения: 2-4 недели. Главный плюс — нулевой порог входа: любой категорийный менеджер настроит формулу скользящей. Минус: при 1000+ SKU файл становится неуправляемым (300+ МБ, открытие 5-10 минут).

Power BI или Tableau. Визуализация и базовый ML через встроенные функции (decomposition, forecast in Tableau, R/Python visuals в Power BI). Стоимость: Power BI Pro 1 100 ₽/мес/пользователь, Tableau Creator 70 USD/мес. Подходит для 500-3000 SKU и регулярных дашбордов руководству. Время внедрения: 4-8 недель с подрядчиком.

1С: Управление торговлей / 1С: ERP. Встроенные алгоритмы прогнозирования (наивный, скользящая средняя, экспоненциальное сглаживание). Подходит, если данные уже в 1С и не хочется дублировать выгрузку. Минус: ограниченный набор моделей, нет ML, точность на уровне базовых Excel-моделей.

Python (statsmodels, scikit-learn, Prophet, LightGBM). Полный спектр от классических временных рядов до градиентного бустинга. Бесплатно (open source), требует аналитика 0,5-1 ставка (зарплата 180-300 тыс ₽/мес в РФ, 2026). Подходит для 1000+ SKU и компаний с оборотом от 500 млн ₽/год. Время внедрения первой модели: 2-3 месяца, полноценный пайплайн — 4-6 месяцев.

Специализированные SaaS-платформы. Готовые решения с интеграцией в 1С/SAP. Стоимость: 50-300 тыс ₽/мес в зависимости от числа SKU и каналов. Подходит для компаний с оборотом 1-5 млрд ₽, которым нужен прогноз «здесь и сейчас» без построения внутренней команды. Минус: vendor-lock и сложность кастомизации под специфику.

Сравнение инструментов:

ИнструментSKUТочность (MAPE)CAPEXOPEX/месВремя внедрения
Excel + Power Queryдо 50018-25%0 ₽1-3 тыс ₽2-4 нед
Power BI / Tableau500-300015-22%80-200 тыс ₽4-15 тыс ₽4-8 нед
1С: УТ/ERP (встроенный модуль)до 500018-25%в составе ERP0 ₽2-4 нед
Python + ML1000+8-15%0-150 тыс ₽200-350 тыс ₽3-6 мес
SaaS-платформа forecasting1000+10-18%100-300 тыс ₽50-300 тыс ₽1-3 мес

Типичная траектория зрелости: год 1 — Excel для топ-200 SKU, год 2 — Power BI для 1000 SKU плюс ML на топ-100, год 3 — Python для всего ассортимента с интеграцией в 1С.

Когда внедрять прогноз: пороги и окупаемость

Прогноз — не панацея и не для всех. Внедрение оправдано при выполнении 3 условий, иначе деньги уйдут впустую.

Порог по обороту. Минимально оправданная цифра — 200-300 млн ₽/год оборота. При меньшем обороте экономия от прогноза (3-7% от оборота) не покрывает затраты на внедрение (300-800 тыс ₽) и поддержку (40-80 тыс ₽/мес).

Порог по числу SKU. От 100 активно движущихся SKU. На 30-50 SKU достаточно ручного контроля категорийным менеджером. От 500 SKU — прогноз обязателен, иначе менеджер не справится физически.

Порог по истории. Минимум 12 месяцев очищенной истории продаж (без отдельных выбросов и периодов out-of-stock). 18-24 месяца — для моделей с сезонностью. Без истории придётся 6-12 месяцев работать на базовых правилах и копить данные.

Окупаемость по разным сценариям:

СценарийCAPEXOPEX/месЭффект/месОкупаемость
Excel + базовая модель, 500 SKU300 тыс ₽0 ₽80-150 тыс ₽2-4 мес
Power BI, 2000 SKU600 тыс ₽15 тыс ₽200-450 тыс ₽3-4 мес
Python + ML, 5000 SKU, аналитик800 тыс ₽280 тыс ₽800-1500 тыс ₽6-9 мес
SaaS-платформа, 3000 SKU250 тыс ₽180 тыс ₽500-900 тыс ₽6-8 мес

Эффект складывается из 4 источников: снижение страхового запаса (−18-25%), снижение out-of-stock на A-категории (−40-60%), снижение излишков и неликвида (−20-35%), ускорение оборачиваемости (−10-18% к циклу).

Полная окупаемость пайплайна Python + ML наступает за 6-9 месяцев. До этого момента бизнес работает в режиме «параллельный счёт»: новая модель считается, но решения принимаются по старому процессу, пока не накопится статистика MAPE минимум за 3 месяца.

Процесс forecasting: 6 шагов от данных до решения

Качественный прогноз — результат не одной модели, а цикла из 6 шагов, повторяемого еженедельно или ежемесячно.

Шаг 1. Сбор и очистка данных. Выгрузка истории продаж (минимум 18-24 месяца), удаление аномалий: out-of-stock периоды (нулевые продажи не из-за отсутствия спроса), промо-периоды (отдельный учёт), возвраты, ошибки оператора. Замена аномалий — на среднее по периоду или интерполяцию. Без очистки модель «учится» на мусоре и выдаёт MAPE 35-50% вместо 12-20%.

Шаг 2. Сегментация SKU. ABC/XYZ-классификация. Для X — точная модель, для Z — отказ от прогноза в пользу правил. Подробнее в шаге про связку с ABC/XYZ.

Шаг 3. Выбор модели по сегменту. Базовая для C-категории, ES/Holt-Winters для AX/BX, ML для топ-200 AX. Параметры модели подбираются на отложенной выборке.

Шаг 4. Обучение и валидация. Разделение истории: первые 70-80% — обучение, последние 20-30% — валидация. Замер MAPE/Bias/WAPE. Если MAPE >25% на X-категории — модель или данные требуют доработки.

Шаг 5. Генерация прогноза и страхового запаса. Прогноз на 30/60/90 дней с распределением (median, p25, p75). Страховой запас — по формуле с k и σ. Точка заказа = средний дневной прогноз × LT + SS.

Шаг 6. Контроль и пересмотр. Еженедельно: замер фактического спроса против прогноза, обновление модели свежими данными. Ежемесячно: пересмотр параметров, добавление новых SKU, выведение Z-категории из активного прогноза.

Типичные ошибки и их стоимость:

ОшибкаСимптомЦена ошибки
Не очищены аномалииMAPE 30-50%Снижение точности на 8-15 п.п.
Используется одна модель на все SKUMAPE на X хорошо, на Z плохоПерерасход страхового запаса 25-40%
Прогноз не обновляется неделямиBias > +10% за месяцРаздутие запасов на 15-25%
Не учитываются промо и акцииMAPE на промо 60-90%Out-of-stock на 30-50% в пик акции
Нет валидации на holdoutЗаявленный MAPE 5%, реальный 25%Решения по ошибочному прогнозу

Цикл прогнозирования встраивают в общий процесс S&OP (Sales and Operations Planning): прогноз → план продаж → план закупок → план склада → план производства. Еженедельная синхронизация занимает 1,5-2 часа: 30 минут категорийный менеджер на пересмотр топ-SKU, 30 минут снабженец на ROP, 30 минут руководитель на согласование.

FAQ

Сколько истории нужно для прогноза 30/60/90 дней? Минимум 12 месяцев для базовых моделей (SMA, ES). 18-24 месяца для моделей с сезонностью (Holt-Winters, Prophet). 24+ месяцев плюс внешние фичи (промо, погода, праздники) — для ML-моделей градиентного бустинга. Без минимальной истории нельзя отделить сезонные пики от случайных — модель будет «выдавать прошлогодние всплески» как стабильный паттерн.

Можно ли использовать ML на 100 SKU? Технически — да, экономически — нет. Стоимость аналитика (180-300 тыс ₽/мес) и инфраструктуры (50-100 тыс ₽/мес) не окупится на 100 SKU. Для такого объёма достаточно Excel + ES с MAPE 15-20%. ML начинает давать эффект от 500-1000 SKU и оборота от 500 млн ₽/год.

Что считать целевым MAPE? Зависит от категории XYZ. Для X-категории норма ≤15%, для Y ≤25%, для Z ≤40%. По средневзвешенному значению по всему ассортименту — ≤20%. MAPE 8-12% возможен только на стабильных SKU с длинной историей и качественной моделью. MAPE <5% обычно означает ошибку в методике — модель «знает» тестовые данные.

Как часто обновлять прогноз? Еженедельно для AX и AY (топ-выручки). Раз в 2 недели для BX/BY. Раз в месяц для C-категории. Полный пересмотр моделей и параметров — раз в квартал. После крупных событий (запуск новинки, изменение цены на 10%+, маркетинговая акция) — внеплановый пересмотр в течение 3 рабочих дней.

Что делать с новыми SKU без истории? 3 подхода. Первый: использовать аналог — найти похожий SKU с историей (по категории, цене, бренду) и стартовать с его прогноза + корректировка на ожидаемое отличие. Второй: «холодный старт» 6-12 недель на минимальном складском запасе (1-2 единицы), активный замер фактических продаж, затем переход на полноценную модель. Третий: для коллекционных или сезонных линеек — экспертная оценка категорийного менеджера на основе bottom-up расчёта (план продаж по каналам, конверсия, средний чек).

Прогноз спроса — не магия и не отчёт-для-галочки. Это рабочий инструмент, который превращает «закажу как в прошлом месяце плюс десять» в обоснованное число с измеримой точностью. Старт — 2-4 недели на Excel и базовую модель для топ-200 SKU. Эффект уже через 2-3 месяца: −18-25% страховой запас, −40-60% out-of-stock на A-категории, ускорение оборачиваемости на 10-18%. Полный пайплайн с ML и аналитиком окупается за 6-9 месяцев на обороте от 500 млн ₽/год.

Дальше — расширение функциональности: учёт промо, праздников, погоды, кросс-эффектов между SKU. Через 12-18 месяцев работы с прогнозом компания получает зрелый процесс S&OP, где каждое закупочное решение основано на цифре, а не интуиции.