Чому прогнозування попиту в ритейлі ламається на промо
Класична модель прогнозування попиту в ритейлі будується на історії продажів: ковзне середнє або експоненційне згладжування для кожного товару й точки. Поки тиждень схожий на попередній, точність прогнозу тримається на прийнятному рівні.
Щойно в календарі з’являється промо, модель продовжує тягнути тренд із «спокійних» тижнів і промахується повз пік у рази.
Разові акції — перший провал. Знижка, викладка на палеті й розсилка спрацьовують одночасно, попит зростає в кілька разів, а система закупівель читає це як новий стійкий рівень.
Далі — помилки в закупівлях: наступне замовлення йде під завищений прогноз, товар осідає на складі, терміни придатності спливають, полиця зайнята тим, що не продається.
Сезонні піки та локальні сплески влаштовані інакше. Тут важлива не величина підйому, а дата його початку й глибина по кожній точці: у магазині біля школи попит на соки йде вгору за два тижні до вересня, у сусідньому районі — не змінюється взагалі. Усереднений прогноз по регіону цей розрив не ловить і дає дефіцит саме там, де попит був справжнім.
Нові точки — окремий клас задач: історії немає, опертися нема на що, і перші тижні закупівлі йдуть за середніми по мережі. Підсумок однаковий з двох боків: десь порожня полиця й покупець, що пішов до конкурента, десь надлишки й списання. Розбираємо, як це закривається — якими даними та якими перевірками точності прогнозу на промо.
Менше списань, точніша закупівля: вимірювані ефекти системи
Прогноз будується не за середньою по мережі, а на рівні «магазин × товар × день» з горизонтом до двох тижнів: модель бачить акції, свята, погоду та локальні сплески. Планувальник отримує не абстрактний попит, а конкретну кількість до відвантаження по кожному магазину.
Перший вимірюваний ефект — частка списань за швидкопсувними товарами. Поки замовлення формується за нормативом «не менше полиці», надлишок осідає на складі й іде на утилізацію.
Коли замовлення рахує прогноз з поправкою на термін придатності, списання за категорією падають з 4–6% до 1,5–2% від обороту, а втрачені продажі скорочуються на 20–35% — модель заздалегідь піднімає замовлення під локальний сплеск.
Другий — оптимізація запасів і завантаження складу. Надлишок іде з палетомісць і з полиць, оборотність за категорією прискорюється, а частка товару, який лежить довше строку, скорочується в рази. Закупівля перестає бути страховкою від невизначеності й стає розрахунком.
Третій — час на ручне планування. Щоденний перерахунок і автозамовлення запускаються за розкладом в Apache Airflow, а планувальник приходить до готового чернетки й витрачає час на винятки, а не на зведення таблиць: з двох днів до 40–60 хвилин на тиждень на категорію.
Прогноз при цьому вимірюється, а не приймається на віру — точність на відкладеному періоді та зсув по магазинах видно у звіті.
Підходи до прогнозування: статистика, машинне навчання, гібрид
Вибір підходу визначається структурою даних, а не модою: довжиною ряду, глибиною історії, кількістю товарних позицій і тим, наскільки сильно попит спотворюють промо, дефіцит полиці та зміна асортименту.
Один і той самий метод дає різний результат на стабільному попиті й на товарі з коротким життєвим циклом.
Нижче — три варіанти, між якими реально обирають, з обмеженнями, які проявляються вже в експлуатації. Порівняння підходів прогнозування ми починаємо з вимірювань на вашій історії, а не з вибору улюбленого методу.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| Статистичні моделі прогнозу | Стабільний попит, довга історія, тисячі рядів, потрібна прозорість розрахунку | Слабо ловлять промо та різкі зсуви попиту, потребують ручного налаштування сезонності на кожну групу |
| Машинне навчання для прогнозу | Багато пов’язаних факторів: ціна, акції, залишки, погода, свята; короткі ряди | Потрібен обсяг історії та регулярне перенавчання; вищий ризик перенавчання, складніше пояснити відхилення за позицією |
| Гібридний підхід | Сезонна база й промо-сплески одночасно; широкий і швидко змінний асортимент | Дорожчий у супроводі: потрібні контроль якості даних і моніторинг застарівання моделі |
Гібрид закриває обидві крайнощі: статистична частина відповідає за тренд і сезонність, модель — за поправку на промо, ціну та зовнішні події.
Порівняння підходів ведемо на відкладеному періоді: дивимося, яка частка позицій укладається в допустиме відхилення й скільки ручних правок залишається в категорійного менеджера. Якщо просте рішення дає ту саму точність — беремо його, а не нейромережу.
Впровадження за кроками: аудит даних, налаштування, перевірка, передача
Робота йде ітераціями: спочатку розбираємо, що реально лежить у даних, і лише потім будуємо моделі. Історію продажів майже завжди доводиться чистити — у ній є дні без товару на полиці, переоцінки, склейки номенклатури та промо, оформлені заднім числом. Поки це не розв’язано, прогнозування попиту в ритейлі вчиться на спотвореній картині.
- Аудит даних і джерел — вивантаження з кас, облікової системи, програми лояльності; звірка номенклатури, пошук пропусків, оцінка глибини історії за категоріями.
- Вітрина ознак — календар, промо, ціни, залишки, погода; розмітка на рівні «магазин — товар — день» з урахуванням днів відсутності на полиці.
- Базова лінія як орієнтир: якщо модель не обходить простий сезонний розрахунок на ваших даних, впроваджувати нічого.
- Налаштування моделей під ієрархію — окремі контури для швидкопсувних і товарів тривалого зберігання, горизонти день і тиждень, узгодження прогнозів знизу вгору.
- Ретроспективна перевірка — ковзне вікно та відкладений період, помилка на рівні «магазин — товар — день», окремий розбір промо та свят.
- Приймання моделі — узгоджені пороги точності за категоріями, розбір найгірших позицій, регламент відкату на базову лінію.
- Передача й навчання команди — регламент перенавчання, контроль якості даних, моніторинг відхилень, вбудовування прогнозу в закупівлю.
Кожен етап закривається артефактом: описом джерел, кодом вітрини, звітом про точність, регламентом. Приймання йде на ваших даних — ви бачите, де модель помиляється, до того як прогноз почне впливати на закупівлі.
Що залишається в компанії: моделі, словник даних, регламенти
Після впровадження в команди замовника залишається не чорна скринька, а відтворюваний контур: по кожному артефакту зрозуміло, що це, звідки взято й як оновлювати без нас.
- Навчена модель прогнозування попиту — із зафіксованими метриками точності на відкладеному періоді: порівнюєте прогноз із фактом за кожною товарною групою й точкою.
- Словник даних — розшифрування всіх полів: касові продажі, залишки, постачання, промо-календар, свята. З джерелом, періодичністю оновлення та типовими помилками вивантаження.
- Документація моделі — які ознаки на що впливають, для яких категорій модель застосовна, де дає зсув і за яких припущень рахувалася сезонність.
- Регламент перенавчання — періодичність і тригери: відкриття нових точок, зміна асортименту, зсув попиту після промо. Плюс відповідальний і порядок перевірки після перерахунку.
- Конфігурація перерахунку прогнозу — розклад оновлення, правила заповнення пропусків, поріг, після якого позиція йде на ручну перевірку.
- Матриця зон відповідальності — хто володіє джерелом даних, хто моделлю, хто розбирає падіння точності на тижні.
- Чек-ліст приймання й тести — прогін на історичних даних, відновлення з резервної копії, відкат на попередню версію моделі.
Передача йде двома сесіями: ваші аналітики разом з нашою командою розбирають оновлення словника даних і перенавчання на реальному зрізі продажів. Після цього чергова зміна асортименту не потребує зовнішньої підтримки.
Кейс: як мережа магазинів перестала втрачати на промо та залишках
Перед проєктом мережа магазинів формату «біля дому» із двохсот точок планувала постачання в таблицях: категорійний менеджер раз на тиждень вручну зводив продажі, промо-календар і залишки.
Точність прогнозу попиту на тиждень трималася близько 60%, тому закупівлі страхувалися запасом — аби тільки полиця не пустувала.
Ціна цієї страховки видна у двох цифрах. Списання швидкопсувних товарів сягали дев’ятої частини обороту категорії, а на промо-тижнях усе одно бракувало 12% позицій: попит підскакував, а замовлення залишалося на рівні минулого сезону.
Що змінювали в проєкті прогнозування
Ми зібрали вітрину історії продажів у розрізі магазин — товар — день і підключили до неї промо-календар, погоду та локальні події на кшталт ярмарків і ремонтів доріг.
Прогноз рахується не за середньою за категорією, а за кожною зв’язкою магазину й товару на горизонт від тижня до місяця, перерахунок іде щоночі, тому сплеск попиту потрапляє в замовлення вже наступної доби.
Замовлення формується автоматично, менеджер підтверджує лише винятки — новинки, разові акції, явні аномалії; категорію можна повернути в ручний режим одним налаштуванням, якщо за нею неповні дані.
Метрики до і після
Точність тижневого прогнозу зросла з 60 до 88%, списання швидкопсувних товарів упали втричі, частка позицій, яких бракувало на полиці, знизилася з 12 до 3%.
Оборотний запас скоротився приблизно на п’яту частину за того самого рівня сервісу, а підготовка промо-плану займає годину замість двох днів.
Ефект тримається не на разовому налаштуванні, а на регулярному донавчанні: модель переглядається за свіжими продажами, а розбіжності між прогнозом і фактом розбираються за категоріями раз на місяць.
Що робити, якщо дані розрізнені: каси, склад, онлайн-канал
Розрізнені джерела — це норма, а не виняток: каси дають продажі за чеками, склад — рух і залишки, онлайн-канал — замовлення, скасування та повернення.
Поки в них немає спільної осі «товар × точка × день», прогнозування попиту в ритейлі вчити нема на чому: кожна система рахує за своєю номенклатурою та своїм календарем.
Перший крок — єдиний довідник товарів. Зіставляємо позиції за штрихкодом, артикулом постачальника та нормалізованою назвою, спірні випадки підтверджує людина, далі зв’язка тримається автоматично.
Для кожного поля задаємо пріоритет джерела: залишок — зі складу, ціни та знижки — з касових вивантажень 1С; конфлікти розв’язуються за правилом, а не «на око».
Другий крок — якість даних до навчання. Приводимо факти до однієї гранулярності, розмічаємо повернення та списання, відсікаємо дублі чеків, окремо позначаємо акції та дні без вивантаження: якщо діри не закрити, модель вивчить збої інтеграції замість попиту.
Коротку історію добираємо схожими товарами та профілями категорій — прогноз за новинкою будується на аналогах, а не на порожньому місці.
Далі об’єднання джерел живе в одному шарі: вітрина фактів, довідник, календар точок і акцій. Модель запускаємо на узгодженому ядрі каталогу, точність показуємо на відкладеному періоді й потім розширюємо охоплення.
Метрики якості — частка зіставлених позицій, пропусків, конфліктів довідника — залишаються в моніторингу, тому деградація даних видна до того, як прогноз розійдеться з полицею.
Часті технічні сумніви: якість даних і холодний старт
Холодний старт — не привід чекати рік, поки накопичиться історія продажів. Якщо за товаром є кілька тижнів спостережень, прогноз будується через аналоги та категорію загалом: сезонність, акції, свята, локальні події.
Ієрархія «категорія → товар» дає оцінку навіть там, де власних даних майже немає, і уточнюється в міру накопичення факту.
Перевірка точності йде не на демо, а на відкладеному періоді: модель навчається на минулому, а її прогноз порівнюється з фактичними продажами, яких вона не бачила.
Помилку рахуємо за магазинами, категоріями та днями тижня — важливо бачити, де прогноз просідає, а не лише середній показник.
У нас майже немає історії продажів — прогноз можливий?
Так. Опираємося на профілі аналогів і категорійні закономірності, додаючи акції та локальні події. Перші тижні модель іде з широким інтервалом і поступово звужує його в міру накопичення фактичних продажів.
Як переконатися, що прогноз кращий за поточне планування?
Проганяємо обидва підходи на одному відкладеному періоді: частка позицій з помилкою в допустимих межах, систематичний перезапас або дефіцит, кількість ручних правок категорійного менеджера. Розбіжність фіксуємо у звіті до запуску.
Що робити з неповними даними в обліковій системі?
Збираємо профіль даних: пропуски в чеках, дублі, розбіжності залишків із продажами, різні одиниці виміру. Частина чиститься автоматично, частина — правилами на боці інтеграції; позиції без відновлюваної історії позначаємо й виключаємо із загальної метрики.
Хто супроводжує модель після запуску?
Наші інженери стежать за дрейфом точності при зміні асортименту, цін і поведінки покупців, перенавчають модель за розкладом і при аномаліях, розбирають розбіжності з командою замовника — документація та передача знань входять у роботи.
Обговоримо задачу й повернемося з планом та оцінкою
Предметна розмова про прогнозування попиту починається з даних вашої мережі, а не з презентації. Оцінка проєкту спирається на історію продажів і опис процесів: без вступних даних вилка за строками залишається здогадом, а не розрахунком.
Щоб обговорити задачу по суті, достатньо надіслати те, що вже є в облікових системах:
- вивантаження історії продажів за товарними позиціями й точками за 1–2 роки — з поверненнями, списаннями та розпродажами;
- довідник товарів із категоріями, ієрархією та ознаками сезонності;
- календар промо та знижок: дати, механіка, глибина, охоплення точок;
- зовнішні фактори, що впливають на попит: погода, свята, локальні події;
- опис поточного процесу планування закупівель і ролей тих, хто ним користується;
- перелік звітів і метрик, за якими ви зараз оцінюєте якість прогнозу;
- обмеження: доступність даних, ІТ-контур, вимоги до зберігання й доступів.
У відповідь ви отримаєте план впровадження за етапами, склад робіт із розподілом на наші та ваші зони відповідальності, оцінку проєкту й перелік ризиків за якістю даних.
Якщо історії в потрібному розрізі немає, запропонуємо схему її накопичення та перший контур прогнозу на тому, що доступно вже зараз.







