Блог AST-SoftPro
ИИ для прогнозирования спроса и управления запасами
ИИ для прогнозирования спроса и управления запасами
Дефицит товаров и пересортица — две стороны одной проблемы: неточного прогнозирования спроса. Когда на полке пусто, клиент уходит к конкуренту. Когда товара слишком много, компания теряет деньги на хранении и списаниях.
ИИ-модели анализируют историю продаж, сезонность, маркетинговые активности и внешние факторы, чтобы предсказать спрос и оптимизировать запасы. Результат — снижение потерь от пересортицы на 20–40% и предотвращение дефицита, который стоит бизнесу в среднем 4–6% выручки.
Компоненты точного прогноза
Точный прогноз спроса — это не гадание, а структурированный анализ множества факторов. Каждый фактор вносит свой вклад, и игнорирование даже одного может существенно исказить результат.
Простая формула задаёт направление:
Спрос = f(история продаж, сезонность, промо, цены, погода, конкуренты, макроэкономика)
На практике вес каждого фактора различается. История продаж формирует базовый паттерн и даёт самый надёжный сигнал. Сезонность добавляет предсказуемые пики и спады — зимняя одежда, праздничные товары, летние напитки. Промо-акции создают кратковременные всплески: скидка 30% может увеличить спрос на 150%, но только на период акции.
| Фактор | Влияние | Пример |
|---|---|---|
| История продаж | Высокое | Базовый паттерн, тренд |
| Сезонность | Высокое | Зима/лето, праздники |
| Промо-акции | Среднее | Скидка 30% → +150% спроса |
| Цены | Среднее | Рост цены 10% → -5% спроса |
| Погода | Низкое/среднее | Зонт, напитки, одежда |
| Конкуренты | Низкое | Акции конкурента, дефицит |
Ключевой вопрос для бизнеса — не собрать все возможные данные, а определить, какие факторы реально влияют на спрос в вашей категории товаров. Для продуктов питания погода может быть критичной, для электроники — практически незначимой.
Как работает прогнозирование на практике
Современные системы прогнозирования строятся в несколько шагов. Сначала собирается и очищается историческая выборка — нулевые продажи, выбросы и аномалии требуют отдельной обработки.
Пример подготовки данных для анализа:
df = история_продаж[история_продаж['количество'] > 0]
# фильтруем по товару и убираем нулевые продажи
Затем модель обучается на этих данных с учётом сезонности и известных событий — праздников, распродаж, запусков новинок. Простые модели вроде скользящего среднего работают быстро, но не учитывают внешние факторы. Продвинутые модели — Prophet, XGBoost, нейросети — справляются с нелинейными зависимостями, но требуют больше данных и вычислительных ресурсов.
Важный момент: модель настраивается под конкретный товар. Для стабильных товаров с длинной историей продаж достаточно базовой модели. Для новых или сезонных товаров — нужны дополнительные сигналы и более частый пересмотр прогноза.
Оптимизация уровня запасов
Прогноз спроса сам по себе не решает задачу управления запасами. Между прогнозом и реальным заказом у поставщика стоит ряд бизнес-решений: когда заказывать, сколько заказывать и какой запас держать на случай непредвиденного спроса.
Три ключевых показателя определяют политику запасов:
-
Точка заказа — уровень запаса, при достижении которого нужно разместить заказ. Рассчитывается как средний спрос за время поставки плюс страховой запас.
-
Страховой запас — буфер на случай непредвиденного роста спроса или задержки поставки. Размер зависит от требуемого уровня обслуживания.
-
EOQ (экономичный размер заказа) — оптимальный объём заказа, минимизирующий совокупные затраты на оформление заказов и хранение.
страховой_запас = Z * отклонение_спроса * sqrt(время_поставки)
# Z — коэффициент для уровня обслуживания (1.65 для 95%)
Например, при уровне обслуживания 95% коэффициент Z равен 1.65. Это означает, что в 95% случаев страхового запаса хватит для покрытия непредвиденного спроса за время поставки. Повышение уровня до 99% требует Z = 2.33 — почти на 40% больший запас.
Бизнес-решение здесь заключается в балансе: более высокий уровень обслуживания снижает потери от дефицита, но увеличивает затраты на хранение. Для товаров с высокой маржой стоит держать больший страховой запас. Для товаров с низкой маржой — оптимизировать в сторону меньших запасов.
Предотвращение дефицита
Дефицит — самая дорогая ошибка в управлении запасами. Потерянный клиент редко возвращается, а упущенная выручка не входит в финансовую отчётность — её просто не видно.
Системы раннего предупреждения отслеживают соотношение текущего запаса к прогнозируемому спросу:
дни_запаса = (наличие + в_пути) / прогнозируемый_спрос
if дни_запаса < 7: сигнал_о_риске
При этом важно учитывать не только наличие на складе, но и товар в пути — заказы, которые уже размещены, но ещё не доставлены. Без этого сигнала система может сгенерировать ложные предупреждения или, что хуже, пропустить реальный дефицит.
Рекомендуемая политика — градированная система оповещений:
-
Критический уровень (менее 3 дней запаса) — немедленный заказ, приоритетная обработка.
-
Предупреждение (3–7 дней запаса) — плановый заказ с учётом ближайших прогнозов.
-
Норма (более 7 дней) — мониторинг без действий.
Однако стоит помнить: автоматизация не заменяет экспертного суждения. Если модель прогнозирует резкий рост спроса, а маркетолог знает, что промо-кампания отменена, ручной пересмотр спасает от излишних закупок. И наоборот — если модель не учитывает ожидаемую рекламную кампанию, она может недооценить спрос.
Сравнение моделей прогнозирования
Выбор модели — компромисс между точностью, скоростью и доступностью данных. Не существует универсального решения, подходящего для всех категорий товаров.
| Модель | Точность | Скорость | Данные | Сложность |
|---|---|---|---|---|
| Moving Average | Низкая | Быстрая | История | Низкая |
| Exponential Smoothing | Средняя | Быстрая | История | Средняя |
| Prophet | Высокая | Средняя | История + события | Средняя |
| XGBoost/LightGBM | Высокая | Средняя | История + фичи | Высокая |
| Neural Networks (LSTM) | Очень высокая | Медленная | Большие данные | Высокая |
Для старта с прогнозированием достаточно скользящего среднего или экспоненциального сглаживания — они работают быстро и дают базовое понимание паттернов. Когда появляется необходимость учитывать промо-акции, праздники и внешние факторы, переходят к Prophet или градиентному бустингу.
Модели на основе градиентного бустинга (XGBoost, LightGBM) позволяют включать в прогноз десятки признаков: день недели, цену, скидку, погоду, действия конкурентов, лаги продаж за 7, 14 и 30 дней.
фичи = [день_недели, месяц, цена, скидка, промо, погода, лаг_7д, лаг_30д]
# модель обучается на 10+ признаках одновременно
Это даёт существенное преимущество перед простыми моделями, но требует качественной подготовки данных и регулярного обновления модели.
Нейросетевые модели (LSTM) показывают лучшие результаты на больших объёмах данных с сложными временными зависимостями, но их внедрение требует значительных ресурсов. Для большинства задач прогнозирования спроса уровень точности градиентного бустинга достаточен.
Ключевые метрики
Без метрик невозможно оценить, работает ли система прогнозирования или просто создаёт иллюзию контроля. Вот основные показатели, которые стоит отслеживать:
| Метрика | Формула | Норма |
|---|---|---|
| MAPE | Среднее |ошибка/факт| | < 15% |
| Stockout Rate | % времени без товара | < 2% |
| Inventory Turnover | Продажи / средний запас | 8–12 раз/год |
| Fill Rate | Выполненные заказы / все заказы | > 97% |
| Dead Stock | % товаров без продаж > 90 дней | < 10% |
MAPE (Mean Absolute Percentage Error) — универсальная метрика точности прогноза. Значение 15% означает, что в среднем прогноз отклоняется от факта на 15%. Для стабильных категорий товаров (FMCG) нормальным считается 5–10%, для моды и электроники — 20–30%.
Stockout Rate показывает, как часто товар отсутствует на полке. Даже 2% времени без товара могут означать потерю 5–10% выручки, потому что клиенты не ждут — они идут к конкуренту.
Inventory Turnover отражает эффективность использования капитала. Оборот 8–12 раз в год означает, что запас полностью оборачивается каждые 30–45 дней. Ниже 6 раз — сигнал к пересмотру политики закупок.
Dead Stock — товары, которые не продаются более 90 дней. Это замороженный капитал, который занимает место на складе и требует расходов на хранение. Значение выше 10% указывает на системную проблему в прогнозировании или закупках.
Риски автоматизации и скрытые угрозы
Внедрение ИИ в прогнозирование спроса — не волшебная палочка. Есть несколько рисков, о которых стоит помнить.
Качество данных. Модель работает только с теми данными, которые ей дали. Если история продаж содержит ошибки, пропущенные записи или неучтённые возвраты, прогноз будет неточным. Инвестиции в качество данных часто окупаются лучше, чем инвестиции в более сложную модель.
Слепое доверие автоматике. Тренд на «vibe-coding» — быстрое создание решений без глубокого понимания процессов — опасен и здесь. Модель, обученная на данных без понимания бизнес-контекста, может выдавать правдоподобные, но ошибочные прогнозы. Например, если в прошлом году была аномально высокая продажа из-за единичного события, модель может экстраполировать его на будущее.
Безопасность данных. Системы прогнозирования работают с коммерчески чувствительными данными: объёмы продаж, цены, маржинальность, действия конкурентов. При использовании облачных сервисов важно контролировать, где хранятся данные и кто имеет к ним доступ. Локальные решения или приватные облака часто предпочтительнее для критичных данных.
Масштабируемость. Модель, которая хорошо работает на 100 товаров, может столкнуться с проблемами на 10 000. Расчёт прогноза для каждой SKU требует значительных вычислительных ресурсов, особенно если модель пересчитывается ежедневно. Архитектура системы должна предусматривать масштабирование с самого начала.
Практические шаги внедрения
Начинать стоит с малого — выбрать 10–20 товаров с наибольшей маржой или оборачиваемостью и построить для них базовый прогноз. Это даст понимание, какие данные нужны, какие факторы влияют на спрос и как модель реагирует на изменения.
После того как базовая модель работает стабильно, можно расширять её на другие категории товаров, добавлять новые факторы (погоду, промо, конкурентов) и переходить к более сложным моделям.
Важно наладить регулярный пересмотр прогнозов — еженедельно для стабильных товаров, ежедневно для товаров с высокой волатильностью. И не забывать сравнивать прогноз с фактом: без обратной связи модель деградирует.
Заключение
ИИ в прогнозировании спроса снижает потери от пересортицы на 20–40% и предотвращает дефицит, который стоит бизнесу в среднем 4–6% выручки. Точный прогноз — это не гадание, а анализ данных: история продаж, сезонность, промо и внешние факторы в одной модели.
Ключ к успеху — не самая сложная модель, а качественная подготовка данных, понимание бизнес-процессов и регулярный пересмотр результатов. Модель, которая учитывает реальный контекст бизнеса, всегда лучше модели, которая просто обрабатывает числа.