Бизнес-контекст: баланс между «перетовариванием» и «распродажей»
Управление запасами — одна из ключевых задач ритейла и дистрибуции. Слишком много товара на складе означает затраты на хранение, порчу и холдинг-издержки. Слишком мало — упущенные продажи, потерянные клиенты и обесцененные рекламные бюджеты, когда трафик «кладёт» пустой склад. Многие компании ведут прогноз вручную, анализируя прошлые продажи, но:
- Маркетинговые кампании разрывают связи. Запуск рекламной акции в Яндекс.Директ или на Wildberries резко меняет спрос, и прошлый тренд уже не работает.
- Сезонные колебания не учитываются. Никто не корректирует прогноз на рост спроса перед праздниками, Black Friday или новым сезоном.
- Реклама ломает прогноз. Если маркетинг резко увеличил ставку на окно стаканов, продажи подскакивают, а склад пустеет быстрее запланированного.
Традиционный подход «продажи прошлого года +10%» перестаёт работать, и компании рискуют либо «заморозить» оборотные средства, либо сорваться в моменты пикового спроса.
Концепция решения: связка маркетинг → спрос → запас
DemandSync объединяет три потока данных: маркетинговые сигналы, историю продаж и внешние факторы (погода, праздники, конкуренция). Система работает по следующей логике:
- Маркетинговая активность. Агент AI вытягивает информацию о запущенных рекламных кампаниях: бюджет, канал, креативы, CTR, CPC.
- История продаж. Интеграция с ERP/CRM/маркетплейсом позволяет получить фактические продажи по SKU за прошлые периоды и отклики на предыдущие акции.
- Внешние факторы. Метеоданные (для сезонных товаров), календарь праздников, динамика конкурентных цен через парсеры на Avito, Ozon, Wildberries.
На базе этих потоков модель обучается предсказывать спрос по каждому SKU с горизонтом 4–12 недель, а затем рассчитывает необходимый запас, учитывая lead time по закупкам.
Архитектура и поток данных
- Интеграция источников.
- Маркетинг: API Яндекс.Директ, VK Ads, кабинеты Wildberries/Ozon, Яндекс Метрика.
- Продажи: ERP/1C, отчёты маркетплейсов.
- Внешние данные: OpenWeather API, парсер цен конкурентов.
- Склад: WMS/ERP информация о текущих остатках, сроках годности, lead time от поставщиков.
- ETL и DWH.
- Airbyte/dbt: инкрементальная загрузка данных в ClickHouse.
- Слой «staging» для очистки и нормализации: удаляем «цепные» всплески, калибруем временные метки, очищаем дубли.
- Слой «analytics» объединяет данные в единую витрину «sales_marketing_ext», где каждая запись содержит SKU, дату, продажи, бюджет рекламы, внешний фактор.
- ML-модуль прогнозирования.
- Обучение модели: CatBoost с фичами:
- общие рекламные метрики за период (средний CPC, CTR, бюджет);
- сезонные признаки (месяц, день недели, праздники);
- внешний фактор (температура, конкурентные цены);
- исторический спрос (скользящие окна 7, 14, 30 дней).
- Выход: прогноз спроса Q̂_{t+1…t+H} (H = 4–12 недель) с доверительным интервалом.
- Валидация: back-testing на последних двух кампаниях; MAPE <12%.
- Обучение модели: CatBoost с фичами:
- Оптимизатор запасов.
- Рассчитывает оптимальный запас Safe Stock = max_{LeadTime} (прогноз × service level factor) + safety margin.
- Учитывает складские лимиты, сроки годности и условия хранения.
- Предлагает закупочную заявку с учётом EOQ (Economic Order Quantity) и оптимизации частоты заказа.
- Визуализация и отчёты.
- Dashboards в Superset: график прогноза vs фактические продажи, текущие остатки, «дни до нуля».
- Оповещения в Telegram/Slack: если остаток падает ниже оптимального уровня или возникнет дефицит в ближайшие недели.
- Автоматическая генерация заказа: Excel/CSV-файл со списком SKU и необходимых количеств для закупки.
4. Шаги внедрения
- Аудит и подготовка.
- Оценка наличия данных о маркетинговых кампаниях и продажах; определение lead time по поставщикам; оценка качества DWH.
- Согласование целевых показателей: допустимый уровень out-of-stock, желаемый процент покрытия спроса.
- Интеграция данных.
- Настройка коннекторов к рекламным кабинетам; разработка dbt-моделей для витрин «sales_marketing_ext», «inventory».
- Проверка корректности данных, очистка дубликатов, валидация временных рядов.
- Обучение модели.
- Формирование обучающей выборки: временные ряды продаж и рекламных метрик по SKU;
- Обучение CatBoost, подбор гиперпараметров;
- Валидация и визуализация ошибок, расчёт доверительных интервалов.
- Разработка оптимизатора.
- Настройка логики EOQ и расчёт safety stock;
- Интеграция с системой WMS для текущего статуса остатков.
- Тестирование сценариев «что‑если» по изменению рекламного бюджета.
- Визуализация и уведомления.
- Создание дашбордов прогноза и остатков в Superset;
- Настройка Telegram/Slack бота для оповещений с порогами;
- Генерация файла закупки и автоматическая рассылка ответственным.
- Обучение команды и Hyper-care.
- Воркшопы для аналитиков и закупщиков;
- Еженедельные митинги по анализу разницы факта и прогноза, корректировка модели.
Бизнес-выгоды и метрики
- Снижение дефицита на 30–50%. За счёт оповещений и точных прогнозов дефицитных позиций «доходит» в дашборде за 4–6 недель до момента, когда склад опустеет.
- Уменьшение overstock на 20%. Оптимизация запасов по EOQ и safety stock сокращает налоговые и складские издержки.
- Экономия оборотного капитала до 15%. Снижаются затраты на хранение и амортизацию, освобождаются денежные средства под маркетинг или развитие.
- Повышение уровня сервиса до 95%. Удержание уровня обслуживания клиентов, минимизация случаев отсутствия товара.
Кейс: крупный дистрибутор бытовой химии (1 500 SKU). До DemandSync de‑stock составлял 12% по топ-позициям; over‑stock — 18%. Через 3 мес de‑stock снизился до 6%, over‑stock — до 14%, экономия на хранении — 3,2 млн ₽ за квартал.
Сравнение с традиционным подходом
Традиционный прогноз
- Актуальность — Еженедельно/ежемесячно
- Учёт рекламы — Нет
- Сезонные колебания — Ручная подгонка
- Обработка внешних факторов — Нет
- Оптимизация заказа — Стандартный EOQ без прогнозов
DemandSync
- Актуальность — Ежедневно/почасово
- Учёт рекламы — Да, интеграция с рекламными метриками
- Сезонные колебания — ML-сезонный слой (Prophet)
- Обработка внешних факторов — Да, погода, цены конкурентов
- Оптимизация заказа — EOQ + safety stock на основе прогноза
Параметры сценария
Гипотеза — Если объединить сигналы маркетинга, историю продаж и внешние факторы, то ML-прогноз спроса позволит точно рассчитать запас и уменьшить дефицит и избыточные запасы на 30%.
Цель внедрения — 1) Снизить de‑stock на 30% в течение квартала; 2) уменьшить over‑stock на 15%; 3) улучшить покрытие спроса до 95%.
KPI и метрики
- Основные: de‑stock rate, over‑stock rate, WCS (weekly coverage score), inventory turnover.
- Вторичные: accuracy прогноза (MAPE ≤12%), days of inventory (DOI), cash‑to‑cash cycle time.
Технологический стек
- ETL: Airbyte, dbt; Storage: ClickHouse, PostgreSQL;
- ML: Python (CatBoost, Prophet, SHAP);
- Orchestration: Airflow;
- BI: Superset;
- API: FastAPI для оптимизатора;
- Notifications: Telegram Bot.
Шаги внедрения — Аудит → Интеграция → Моделирование → Оптимизатор → Визуализация → Обучение → Hyper-care.
Влияние на бизнес заказчика — Экономия издержек на хранение, рост продаж за счёт уменьшения дефицита, возврат инвестиций в виде освобождения оборотного капитала.
Влияние на CX — Клиенты реже сталкиваются с отсутствием товара, улучшается лояльность и повторные покупки.
Доп. идеи улучшения
- Подключить динамическое ценообразование при дефиците.
- Использовать reinforcement learning для оптимизации стратегий заказа.
- Добавлять прогноз по supplier reliability.
Вывод
Инструмент DemandSync меняет подход к управлению запасами: от грубой подгонки по прошлым продажам — к прогнозу, который учитывает рекламную активность и внешние факторы. В эпоху, когда клиенты перестают ждать товара, а конкуренты еще сильнее нагнетают спрос скидками и акциями, управление запасами становится не рутинной задачей бухгалтера, а стратегической функцией.
Что получает бизнес?
- Уменьшение дефицита. ML-прогноз за 4–6 недель до момента, когда склад опустеет, позволяет закупщикам оперативно реагировать: корректировать заказы, договариваться с поставщиками или запускать срочку. Это повышает уровень обслуживания клиентов до 95% и снижает потерю выручки.
- Сокращение избыточного запаса. Традиционная формула «продажи прошлого года + safety» не учитывает рекламные всплески и сезонные аномалии. DemandSync оптимизирует safety stock, освобождая до 15% оборотного капитала, который можно перекинуть на маркетинг, развитие или погашение кредита.
- Прогнозируемый cash-flow. Каждое заказанное количество просчитывается по EOQ и сейфти‑фактору, а значит закупки не бьют по кассе неожиданными крупными платежами. CFO получает прозрачный график движения средств и избегает кассовых разрывов.
- Адаптивность к рынку. Когда конкуренты снижают или повышают цены, DemandSync подхватывает эти сигналы через парсер и учитывает в прогнозе, предотвращая всплески дефицита. Аналитик сразу видит: «на Avito цена пошла вверх на 5%, спрос по нашему магазину упадёт на 3%», и в прогнозе запаса корректируется параметр X.
Почему AI и не Excel?
- В Excel сотни SKU превращаются в гигабайты таблиц, и каждое обновление рекламы требует ручной переработки формул.
- ML-модели автоматически обрабатывают тысячи фич, находят нелинейные зависимости и показывают доверительные интервалы.
- Оптимизатор EOQ+Sfty stock мгновенно пересчитывает закупки при любом изменении прогноза.