Модель прогноза динамическая — пересчитывается всякий раз при получении свежих данных.
Запуск через «Отчёты и выгрузки» → «Прогноз выручки» или ПЕРЕСЧИТАТЬ_ПРОГНОЗ.bat.
Каждый запуск перечитывает Excel «Аналитика ассортимента»: текущие остатки по каналам, отгрузки YTD, помесячная динамика, маржа, скидки.
Если структура стока меняется (например лето распродалось → выросла доля NON_SEASONAL), модель сама перераспределит бюджет в пользу gift-season Nov-Dec.
План закупок автофильтрует прошлые месяцы. В августе модель учтёт только Aug-Dec; в декабре — только Dec. Товар по прошлым месяцам уже в стоке.
YoY-тренд бренда считается по последним 3 закрытым месяцам vs тот же период прошлого года. Модель быстро реагирует на текущие изменения, не на старые январь-февральские данные.
Прогноз выручки H2 ₽62M = старый товар на складе (5 категорий по сезону) + новые закупки 2026 года + gift-season boost Nov-Dec (₽8M).
| Бренд | Статус | YTD | Прогноз H2 | Прогноз 2026 | × к YTD | Новые H2 | Остаток на 31.12 (полн. РЦ) |
|---|---|---|---|---|---|---|---|
| Wheat | 🟢 Активный | ₽23.9M | ₽9.6M | ₽33.5M | ×1.40 | ₽3.4M | ₽8.8M |
| MRS ERTHA | 📦 Дистрибуция | ₽12.3M | ₽7.0M | ₽19.3M | ×1.57 | ₽782K | ₽5.0M |
| Liewood | 🟠 Снимаемый | ₽12.7M | ₽1.9M | ₽14.6M | ×1.15 | ₽0 | ₽-453K |
| Bloomingville (incl. MINI) | 🇰🇿 Казахстан | ₽7.5M | ₽3.8M | ₽11.3M | ×1.51 | ₽1.2M | ₽8.2M |
| Konges Slojd | 🇰🇿 Казахстан | ₽5.5M | ₽3.7M | ₽9.2M | ×1.68 | ₽2.5M | ₽1.9M |
| KIDYWOLF | 📦 Дистрибуция | ₽5.9M | ₽3.3M | ₽9.2M | ×1.56 | ₽1.1M | ₽754K |
| Cam Cam Copenhagen | 🟢 Активный | ₽6.4M | ₽1.8M | ₽8.3M | ×1.29 | ₽530K | ₽1.6M |
| Kaloo | 📦 Дистрибуция | ₽4.0M | ₽3.8M | ₽7.8M | ×1.94 | ₽665K | ₽375K |
| Vanilla Copenhagen | 📦 Дистрибуция | ₽3.6M | ₽2.6M | ₽6.1M | ×1.73 | ₽429K | ₽373K |
| RATATAM | 📦 Дистрибуция | ₽3.5M | ₽2.5M | ₽6.0M | ×1.73 | ₽579K | ₽466K |
| That's Mine | 🟢 Активный | ₽3.9M | ₽1.8M | ₽5.7M | ×1.45 | ₽306K | ₽1.2M |
| Flöss | 🟢 Активный | ₽3.8M | ₽1.7M | ₽5.5M | ×1.46 | ₽451K | ₽768K |
| PETIT JOUR | 📦 Дистрибуция | ₽2.5M | ₽2.2M | ₽4.7M | ×1.89 | ₽453K | ₽312K |
| Fresk | 📦 Дистрибуция | ₽2.8M | ₽1.9M | ₽4.6M | ×1.67 | ₽498K | ₽314K |
| NUUROO | 📦 Дистрибуция | ₽3.0M | ₽1.6M | ₽4.6M | ×1.51 | ₽509K | ₽3.1M |
| Gingersnaps | 🟢 Активный | ₽2.7M | ₽1.8M | ₽4.5M | ×1.65 | ₽293K | ₽484K |
| HELLO HOSSY | 🟢 Активный | ₽2.9M | ₽1.2M | ₽4.1M | ×1.41 | ₽354K | ₽1.7M |
| Rockahula kids | 🇰🇿 Казахстан | ₽880K | ₽2.3M | ₽3.2M | ×3.64 | ₽2.0M | ₽3.1M |
| GRECH & CO | 🟢 Активный | ₽1.5M | ₽1.0M | ₽2.6M | ×1.69 | ₽114K | ₽666K |
| Baghera | 📦 Дистрибуция | ₽791K | ₽1.1M | ₽1.9M | ×2.34 | ₽503K | ₽1.1M |
| OMY | 🟢 Активный | ₽1.1M | ₽659K | ₽1.8M | ×1.59 | ₽206K | ₽1.0M |
| The New | 🟠 Снимаемый | ₽1.5M | ₽87K | ₽1.6M | ×1.06 | ₽0 | ₽236K |
| Igor | 🟢 Активный | ₽535K | ₽712K | ₽1.2M | ×2.33 | ₽31K | ₽656K |
| Nobodinoz | 🟠 Снимаемый | ₽1.1M | ₽123K | ₽1.2M | ×1.11 | ₽0 | ₽-43K |
| Olli Ella | 🟠 Снимаемый | ₽769K | ₽445K | ₽1.2M | ×1.58 | ₽0 | ₽-55K |
| búho | 🟠 Снимаемый | ₽1.1M | ₽135K | ₽1.2M | ×1.13 | ₽0 | ₽-39K |
| RUNBOTT | 📦 Дистрибуция | ₽793K | ₽407K | ₽1.2M | ×1.51 | ₽116K | ₽849K |
| PETIT MONKEY | 🟢 Активный | ₽680K | ₽423K | ₽1.1M | ×1.62 | ₽94K | ₽446K |
| LUND DESIGN HOUSE | 🟠 Снимаемый | ₽727K | ₽170K | ₽897K | ×1.23 | ₽0 | ₽-26K |
| Milledeux | 🟠 Снимаемый | ₽592K | ₽248K | ₽840K | ×1.42 | ₽0 | ₽-96K |
| BADAWII Beachwear | 🟢 Активный | ₽326K | ₽414K | ₽740K | ×2.27 | ₽20K | ₽217K |
| PLAY UP | 🟠 Снимаемый | ₽621K | ₽32K | ₽653K | ×1.05 | ₽0 | ₽-10K |
| Mimi&Lula | 🇰🇿 Казахстан | ₽188K | ₽457K | ₽645K | ×3.44 | ₽390K | ₽942K |
| Piupiuchick | 🟠 Снимаемый | ₽586K | ₽50K | ₽636K | ×1.09 | ₽0 | ₽-20K |
| Mr Maria | 📦 Дистрибуция | ₽304K | ₽305K | ₽608K | ×2.00 | ₽119K | ₽1.1M |
| NAILMATIC | 🆕 Новинка | ₽195K | ₽232K | ₽427K | ×2.19 | ₽161K | ₽805K |
| ducksday | 🟠 Снимаемый | ₽295K | ₽126K | ₽421K | ×1.43 | ₽0 | ₽-38K |
| BUKOWSKI | 🟠 Снимаемый | ₽311K | ₽104K | ₽416K | ×1.34 | ₽0 | ₽86K |
| Sebra | 🟠 Снимаемый | ₽250K | ₽12K | ₽263K | ×1.05 | ₽0 | ₽0 |
| Fabelab | 🟠 Снимаемый | ₽150K | ₽18K | ₽168K | ×1.12 | ₽0 | ₽342K |
| SAGA COPENHAGEN | 🟠 Снимаемый | ₽73K | ₽20K | ₽93K | ×1.27 | ₽0 | ₽214K |
| BEACH&BANDITS | 🆕 Новинка | ₽45K | ₽11K | ₽56K | ×1.23 | ₽10K | ₽1.4M |
| Poudre Organic | 🟠 Снимаемый | ₽18K | ₽6K | ₽24K | ×1.31 | ₽0 | ₽-1K |
| BABY BELLO | 🟠 Снимаемый | ₽8K | ₽2K | ₽10K | ×1.20 | ₽0 | ₽10K |
| petú petú | 🟠 Снимаемый | ₽5K | ₽803 | ₽6K | ×1.17 | ₽0 | ₽41K |
Весь товар на складе мы поделили на 5 коробочек:
Каждая коробочка продаётся со своей скидкой.
В прошлом году в августе мы продали игрушек на ₽20M. Значит и в этом августе продадим примерно столько же. Это базовое предположение — «в августе клиенты покупают как обычно в августе».
⚠️ Корректируем если бренд растёт или падает (см. шаг 3).
Сравниваем январь-апрель этого года с январь-апрелем прошлого.
Осенне-зимние новинки (FW коллекция — свитера, комбинезоны, куртки) приедут только к августу. До августа продаём то что уже на складе.
Летние новинки (SS — купальники, лёгкие платья) уже на складе с весны и продаются пиково Jun-Aug.
Внесезонные товары (пелёнки, игрушки) привозят 3 раза в год: в июне, сентябре и декабре. Каждая партия продаётся 3 месяца.
💡 В реальности продаётся ~70% завезённого товара. Оставшиеся 30% идут в overstock и управляются отдельно (списания, перекидки, скидки). Out-of-stock на хитах закрывается дозаказом.
📊 Бюджет новых поступлений у каждого бренда распределяется между SS / FW / FLAT по долям его текущего склада. Например бренд со стоком 60% SS + 40% NON_SEASONAL получит 60% бюджета на летнюю партию и 40% на внесезонную.
Применяется ТОЛЬКО к сезонным новинкам (FW/SS):
🧸 Несезонные товары (FLAT): первые 5 месяцев активных продаж — full price, никаких автоматических скидок. Если оборачиваемость бренда > 180 дней (6 мес) — overstock переводится в скидку отдельным процессом (вне модели прогноза).
Магазин не может работать без ассортимента — нужен операционный минимум ₽50M в полной РЦ-цене. Если модель «продала» так много что осталось меньше — мы пропорционально уменьшаем отгрузки всех товаров до тех пор, пока на 31 декабря не останется минимум ₽50M.
Раньше floor был ₽80M (исторический минимум). Снижен до ₽50M — цель оптимизировать капитал в стоке.
У каждого бренда свой ритм продаж:
❓ Что если у бренда обе коллекции (Wheat)? У Wheat есть и SS (лето), и FW (зима), обе сильные, но зимняя крупнее. Главное — что мы ЗАКУПАЕМ СЕЙЧАС: в мае-октябре закупаем FW 2026 (приедет в августе), в ноябре-апреле — SS 2027 (приедет к марту). Поэтому Wheat помечен SEASONAL — модель автоматически переключает FW↔SS по текущему месяцу. Не надо вручную менять каждый сезон.
🔄 Пропорции SS/FW/NON стока обновляются автоматически при каждом запуске. Если структура склада меняется (лето распродалось → выросла доля NON) — модель сама перераспределит бюджет в пользу gift-season Nov-Dec.
По каждому бренду получаем:
Складываем по всем 40 брендам — это прогноз 2026 года.
Итоговый остаток складывается из 2 частей: старый товар (₽23M) + новые закупки 2026 (₽25M). Ниже — 5 причин почему этот остаток именно такого размера.
Операционный минимум склада — нужен ассортимент чтобы магазин работал, нельзя распродать в ноль. Модель удерживает это значение принудительно. Раньше floor был ₽80M (исторический минимум), снижен до ₽50M для оптимизации капитала в стоке.
Закупаем товар с потенциалом ~₽124M (выручка × 0.43 / 1.3 × 2.8). Реально продаётся только 70% завезённого. Остальные 30% автоматически становятся overstock — управляются отдельно через скидки/перекидки.
Закупки октября-декабря физически приходят с задержкой 2-3 мес. Часть товара (Jan-Feb 2027 по schedule) уже на складе на 31.12, но ещё не продана — выручку даст в Q1 2027 (см. «Выручка → 2027 ₽17M»).
Δ факт − расчёт = +₽30M. План закупок (₽57.6M) распределяется по «Бюджет закупки на год €» (= ср.выкуп × 12 × 0.45 × коэф_переноса), а не по экстраполяции текущего YTD темпа. Это стратегический запас под FW-сезон + страховой.
Активные бренды получают +17% к рекомендованному бюджету — компенсация за уходящих снимаемых (Liewood и др., ~25% доли отгрузок). Если переход спроса будет меньше реальности — товар оседает в остатке.
Чтобы УМЕНЬШИТЬ остаток (= быстрее обернуть капитал):
Окончательного бюджета 2027 ещё нет — оцениваем «от выкупа» по коэффициенту 0.45 от прогнозируемой выручки 2027 (рост к 2026 ×1.00). Курс EUR/RUB живой из ЦБ РФ: 96.59.
Модель содержит несколько эмпирически подобранных констант — их нужно ревизовать раз в квартал чтобы прогноз оставался актуальным.
Полный чек-лист: Roadmap «🔄 Квартальная ревизия forecast» + memory-файл convention_forecast_quarterly_review.md