Все кейсы
Retail · forecasting & promo

Demand Foresight

Hierarchical Bayesian-прогноз с reconciliation (промежуточные суммы должны сходиться) + causal-effect estimation для промо («что было бы без promo») и weather (lift от температуры). Не просто time-series — а causal time-series с честными confidence intervals.

MAPE 14%
4-нед прогноз FMCG (SKU-store)
79%
coverage 80% CI
<2%
reconciliation error
91%
CI promo-lift estimates
Что это даёт

Стандартный forecasting на SKU-day-store уровне даёт 100K+ независимых прогнозов, которые не сходятся в aggregates (sum-over-SKU ≠ store-level). Стандартные causal-claims на promo основаны на correlation. Demand Foresight делает hierarchical Bayesian model с reconciliation + causal-effects через DoWhy/EconML. На pilot FMCG сократили overstock на 23%.

Главное преимущество

Causal promo-lift с CI — конец «всем понравится наше промо»

Стандартный analytic: «промо подняло продажи на 35%». Но они же могли подняться и без промо (праздник, сезон, погода). Causal-estimation через DoWhy показывает: «net causal effect промо = +18% [95% CI: 12-24%]». Это значит: 17% подъёма было бы и так. CFO видит реальный ROI промо, маркетинг — какие промо стоят повторения.

Как работает

Пошаговая архитектура

01

Данные продаж + контекст

Daily sales per SKU-store + promo history + price changes + weather (OpenWeatherMap) + holidays + supplier-out-of-stock events.

02

Hierarchical structure

Bottom: SKU × store × day. Up: aggregations по category, brand, region, total. Hierarchical model в PyMC учитывает связи между уровнями.

03

Baseline forecast

Bayesian state-space model: trend + seasonality (weekly + yearly) + holidays. Output — prior без promo/weather effects.

04

Causal effect estimation (DoWhy)

Per-promo: estimate counterfactual «что было бы без promo» через do-calculus. Учитывает confounders (price, day-of-week, weather). Output — promo-lift с CI.

05

Weather coupling

Causal effect температуры на категории (мороженое, прохладительные напитки, отопление). Pre-computed model + realtime weather → дополнительный adjustment.

06

MinT reconciliation

Прогнозы на разных уровнях не сходятся механически. MinT (Minimum Trace) reconciliation корректирует так, чтобы суммы сходились, при этом минимизируя реальную ошибку.

07

Recommendations engine

На основе прогнозов: «закажите на следующую неделю X units», «risk overstock на промо Y», «out-of-stock vulnerable SKU». С приоритизацией по revenue/margin impact.

Под капотом

Стек, который не запирает

PyMC для Bayesian state-space models

Prophet для baseline (быстрый, robust на messy data)

M5-competition-winners (LightGBM-based) как ансамбль

DoWhy для causal effects estimation

EconML для uplift-modeling (promo response heterogeneity)

ClickHouse для миллионных историй продаж (per SKU-store-day)

Кому подходит

Идеально для

  • FMCG-производители (планирование производства + дистрибуции)
  • Retail-сети (заказы у поставщиков, run-out prevention)
  • E-com маркетплейсы (inventory planning, dynamic pricing)
  • Food-delivery (готовка-под-заказ vs прогноз)
Чего НЕ делает

Границы кейса

  • Не отвечает за supply-side (нехватка у поставщика — это другой контур)
  • Не делает pricing-optimization (только forecast — pricing требует elasticity-modeling)
  • Не работает с категориями без 12+ месяцев history (new product launches — отдельный кейс)
  • Не предсказывает черные лебеди — pandemic, supply chain disasters — это outliers
FAQ

Частые вопросы

Минимум 18 месяцев SKU-store-day. 36+ месяцев — оптимально. Меньше — нет надёжной seasonality estimation.

Demand Foresight

Покажем на ваших данных
за 1-2 недели

Подключаемся к ограниченной выборке, разворачиваем PoC на ваших реальных кейсах. Оценка качества, точности и UX — на вашей специфике, не на наших красивых демо.