Розробка AI-системи для прогнозування попиту

Попит коливається, а запаси або завмирають на складі, або закінчуються в пік. Ми розробляємо системи прогнозування попиту під ключ: від підготовки даних до регламентів для вашої команди. Точність зростає, неліквідних залишків стає в рази менше.
Часті запитання

Чому прогнозування попиту ламається на реальних даних

Прогноз попиту рідко ламається на моделі — він ламається на вхідних даних. Замовлення, залишки, відвантаження та плани промоакцій живуть у різних системах, вивантажуються вручну таблицями планування і зводяться в одну книгу, де кожна цифра правиться руками.

Планувальник підлаштовує значення під останню розмову з відділом продажів, а не під історію, тому фактична помилка прогнозу взагалі не вимірюється: незрозуміло, наскільки цифра в таблиці розходиться з тим, що було.

Сезонність поставок у такій схемі враховується «на око»: агрегат за середнім за період згладжує піки та провали, а лаг між замовленням і надходженням на склад у розрахунку просто відсутній.

Промоакція, яка підніме попит удвічі, і наступний за нею провал живуть в окремому файлі маркетингу й до моделі не доходять — у результаті система закуповує за усередненим профілем, який не збігається з жодним реальним місяцем.

Окрема причина — розрив між відділами. Продажі, закупівлі та склад рахують свої версії плану з різними горизонтами й правилами округлення, і кожна версія йде в роботу як єдино правильна.

Помилка на цьому стику не гаситься, а накопичується: неточність за однією групою товарів тягне за собою замовлення за суміжними позиціями, а розходження виявляється вже за фактом надходження.

Далі ланцюгом поставок накопичена помилка перетворюється на два дорогі стани складу. У пік сезону — дефіцит на складі: втрачені продажі та ручні прискорені закупівлі. У спад — затоварювання: заморожений обіг, терміни придатності та розпродажі. Нижче розбираємо, як це закривається на рівні даних, моделі та регламенту планування.

Ефект від впровадження: точність, запаси, втрачені продажі

Впровадження прогнозування попиту вимірюється не «розумністю» моделі, а чотирма числами, які видно у звіті через один-два квартали: точність прогнозу, обсяг страхового запасу, оборотність складу та частка втрачених продажів. Перший зріз знімаємо до старту — на історичних даних, інакше ефект нема з чим порівнювати.

Скорочення страхових запасів без втрати рівня сервісу

Точність прогнозу на горизонті 4–12 тижнів зазвичай піднімається з 60–70% до 80–90% за зваженою помилкою — цього достатньо, щоб страховий запас за ходовими позиціями скоротився на 20–35% за того самого рівня сервісу.

Ключ у переході від єдиного нормативу до прогнозу з інтервалом: там, де попит стабільний, запас ріжеться, а за волатильними позиціями залишається незмінним. Оборотність при цьому покращується на 15–25%, списання за термінами придатності падають.

Скільки ручних правок іде з плану

Частка ручних правок — індикатор недовіри до прогнозу, тому рахуємо її до і після: типово план правлять у 30–40% рядків, після впровадження залишається 5–10%, і то переважно на акціях та разових поставках.

Кожну правку логуємо з причиною, і ці причини йдуть у ознаки моделі — точність зростає без ручного підгону.

Базову лінію та сезонність беремо з відкритих реалізацій на кшталт Prophet, поверх — градієнтний бустинг на цінах та акціях. Метрики рахуємо за ковзним вікном, щоб разовий викид не спотворював картину.

Формати моделей: статистика, ансамблі, нейромережі

Жоден формат не виграє за всіма категоріями — вибір задають горизонт планування, довжина історії продажів і частка рідкісних позицій. Нижче три підходи, між якими реально обирають на старті.

На практиці їх майже завжди змішують: статистична модель тримає базовий рівень за регулярним попитом, ансамбль моделей уточнює сезонність та акції, а нейромережева модель підключається там, де потрібно врахувати зовнішні фактори.

Варіант Коли підходить Обмеження
Статистична модель Стабільний попит, довга історія, горизонт від тижня до місяця Не бачить акцій і зовнішніх подій, розсипається на рідкісних позиціях
Ансамбль моделей Багато груп з різною сезонністю, потрібен стійкий прогноз Потребує регулярного перенавчання та розмітки акцій
Нейромережева модель Коротка історія, багато пов'язаних факторів, короткий горизонт Потрібні обсяги даних, рішення складніше пояснити

Як вибрати формат під горизонт і категорію

Чим довший горизонт, тим важливіша стійкість: на місяці вперед статистика та ансамблі дають рівнішу картину, нейромережа — на дні та тижні.

Далі формат закріплюють за категоріями: для ходових товарів один, для повільних інший, інакше середня точність по складу приховує провали в окремих групах.

Що робити з рідкісними та новими позиціями

Рідкісні позиції прогнозують не за власною історією, а через групу аналогів: об'єднують схожі товари й переносять на них загальний профіль попиту.

Новинки до накопичення даних ідуть за планом запуску та експертною оцінкою, а модель підключається, коли набирається достатньо спостережень.

Етапи впровадження системи планування поставок

Роботи йдуть послідовно: кожен етап закривається перевіркою, і перехід до наступного можливий лише після того, як попередній підтверджено на реальних даних замовника. Так помилки в даних і постановці виявляються раніше, ніж у них почнуть вкладати сили в розробку та налаштування.

Аудит даних і постановка задачі

  1. Аудит даних — звіряємо історію продажів, залишків і поставок за глибиною, повнотою та розходженнями між обліковими системами; на виході перелік прогалин і періоди, придатні для навчання.
  2. Підготовка даних — приводимо ряди до єдиної гранулярності (склад, товарна група, день або тиждень), закриваємо пропуски та викиди, розмічаємо акції та перебої поставок окремими ознаками.
  3. Постановка задачі та метрик — фіксуємо горизонт прогнозу і цільову помилку на рівні складу та товарної групи, домовляємося про прийнятну якість.
  4. Складання та налаштування моделі — порівняння підходів на відкладеній вибірці, відбір ознак, окреме налаштування на сезонність і локальні сплески попиту.

Перевірка на історичних періодах і передача

  • Валідація моделі — прогін на історичних відрізках у режимі, наближеному до реального: модель бачить лише ті дані, що були доступні на той момент, і не підглядає вперед.
  • Регламент оновлення — фіксуємо частоту перенавчання, відповідального за подання свіжих даних і порядок дій при погіршенні якості.
  • Передача в експлуатацію — розгортання, моніторинг відхилень прогнозу від факту, навчання команди замовника та передача документації.

Що передаємо команді замовника: конфігурації та регламенти

Проєкт із прогнозування попиту живе довго, лише якщо його можна розвивати без авторів. Тому передаємо не «працюючу модель», а комплект артефактів, за якими ваш інженер перенавчить модель, підключить нове джерело даних і розбере інцидент без листування з нами.

Комплект документації та схеми даних

  • Схема даних — джерела продажів, залишків, промо та зовнішніх факторів: гранулярність, ключі, лаги, правила обробки пропусків і сплесків.
  • Опис ознак — що подається на вхід моделі, як рахуються лаги та ковзні вікна, які ознаки вимкнено і чому.
  • Конфігурації перенавчання — горизонт прогнозу, частота перезбирання, розбиття на навчальну та перевірну вибірки, пороги якості, за яких модель іде на донавчання.
  • Політика доступу — ролі на читання сирих даних, вивантаження прогнозів і зміну налаштувань; де зберігаються ключі та хто їх видає.
  • Регламент моніторингу — метрики чергового: відхилення факту від прогнозу, частка пропусків, дрейф вхідних розподілів; періодичність перевірки та поріг тривоги.

Навчання команди та передача знань

  • Розбір інцидентів — типові збої: зсув попиту, неповний день у даних, зміна структури промо; що перевіряється першим.
  • Практикуми на ваших даних — аналітики самі проганяють перенавчання і викочують нову версію прогнозу під наглядом наших інженерів.
  • Журнал рішень — чому вибрано поточні горизонти та пороги і які альтернативи відхилено, щоб через півроку ніхто не гадав.

Кейс: як зросла точність після переробки моделі

Задача надійшла від роздрібної мережі: прогноз на чотири тижні за кількома тисячами позицій потрібен був не «загалом», а за кожною точкою, щоб планувати закупівлю та полицю.

Спочатку прогноз рахувався ковзним середнім за минулими продажами — модель не бачила промо, свят і зміни асортименту.

Що було до: розходження та ручні правки

За ключовими групами розходження з фактом на горизонті чотирьох тижнів сягало 32%. Категорійні менеджери щотижня вручну правили близько 40% рядків прогнозу — цифри «доводили руками» до стану, в який вірили. Термінові дозамовлення йшли майже щодня, а частина позицій осідала на полиці.

Причина — в ознаках: у модель не потрапляли промо-календар і локальні свята, а сплески попиту усереднювалися зі звичайними днями. Сезонні позиції страждали окремо: середня за минулий період не описувала поточний попит.

Що стало після: показники та режим супроводу

Прогноз перезібрали: замість однієї моделі — набір за класами попиту (стабільні, сезонні, промо-залежні, новинки), базовий шар на Prophet з ознаками календаря, промо та цін.

Якість перевіряли ретроспективно: навчання на минулому відрізку, звірка з фактом на наступному, без заглядання вперед.

Розходження на тому самому горизонті знизилося з 32% до 9–12% за групами, частка ручних правок — приблизно втричі, термінові дозамовлення — удвічі.

Прогноз оновлюється щодня, помилка за кожною групою порівнюється з історичним розкидом: вихід за межі дає повідомлення та перенавчання на свіжому вікні. Раз на місяць — звіт за точністю з розбором просівших груп, тому деградація видна на першому тижні, а не в кінці кварталу.

Чим відрізняється прогнозування попиту від планування поставок?

Прогнозування попиту відповідає на питання «скільки продамо», планування поставок — «що і коли закупити, щоб цього вистачило». Перше — статистична задача: за історією продажів, сезонністю, акціями та зовнішніми факторами будується розподіл попиту за днями й точками продажів.

Друге — задача оптимізації під обмеження: строки та кратність поставки, мінімальна партія, терміни придатності, ємність складу.

Критерій Прогнозування попиту Планування поставок
Горизонт прогнозу від дня до кварталу, оновлення ковзне від тижня до сезону, прив'язаний до строку поставки
Вхідні дані історія продажів, акції, ціна, залишки, зовнішні фактори прогноз, строки поставки, розмір партії, складські ліміти
Зона відповідальності якість передбачення потреби рівень сервісу та обсяг запасів
Результат розподіл попиту, а не одна цифра точка замовлення, розмір партії, страховий запас
Метрика якості помилка прогнозу за інтервалами рівень сервісу, оборотність, частка дефіциту

Межа проходить рівно за точкою замовлення. Модель дає розподіл попиту та його розкид, а правило поповнення вирішує, за якого залишку запускати закупівлю і який страховий запас тримати, щоб утримати цільовий рівень сервісу.

Змішувати ці зони не можна: навіть точний прогноз не витягне рівень сервісу, якщо точка замовлення порахована на око, а зростання запасів спишуть на «погану модель».

Тому в проєкті ми розводимо відповідальність явно: у прогнозу — дані, ознаки та контроль якості передбачення, у планування — правила, обмеження та узгоджений з бізнесом рівень сервісу за групами товарів.

Опишіть, як у вас зараз ухвалюється рішення про закупівлю, — повернемося з оцінкою та планом за кожною зоною.

Технічні сумніви: дані, сезонність, збої

Жодне питання нижче — не про алгоритм, а про дані та процеси навколо моделі. П'ять сумнівів, які замовник ставить до старту, і те, як ми їх закриваємо.

Брудні та неповні дані?

До навчання рахуємо повноту та розсинхрон за кожним джерелом: пропуски, дублі, лаг між відвантаженням і продажем. Вчимо на перетині чистих інтервалів, а пропуск позначаємо ознакою «даних не було», а не середнім за період.

Аномалія чи реальний сплеск?

Аномалії не видаляємо, а розмічаємо за стійкими статистиками — медіаною та відхиленням від неї. Модель отримує мітку і сама вирішує, наскільки їй вірити: вирізаний викид забирає чутливість до справжніх піків.

Промоакції та знижки?

Промо — керована подія, а не викид: календар акцій, глибина знижки та медійні сплески йдуть окремими ознаками. Промо-дні не змішуються зі звичайними в навчанні, інакше ефект акції розмазується по сусідніх тижнях.

Перенавчання?

Перевіряємо на відкладеному майбутньому періоді, а не на перемішаній вибірці: ковзна крос-перевірка за часом і порівняння з наївним прогнозом «як минулого тижня». Не б'є базову лінію — у роботу не йде.

Контроль якості після запуску?

Щодня рахуємо середньозважену помилку (WAPE) та зміщення за товаром і точкою, при виході за поріг надходить оповіщення. Дрейф вхідних даних запускає перенавчання за розкладом — підхід із Прогнозування: принципи і практика.

Обговоримо задачу: зберемо оцінку та план впровадження

Для старту потрібен не доступ до всієї аналітики, а конкретний мінімум: історія продажів за товарами та точками за достатній період, календар акцій і поставок, обмеження за складами.

Чим раніше ці дані опиняться на столі, тим точніша постановка задачі й менше ітерацій на перезбирання.

  • Постановка задачі: горизонт і крок прогнозу, розрізи (товар, точка, канал), припустима помилка та той, хто приймає результат.
  • Вивантаження даних: узгоджуємо склад полів, період, спосіб передачі та періодичність — разове вивантаження або регулярний обмін за розкладом.
  • Схема даних: показуємо, як продажі, промо, залишки та зовнішні фактори пов'язуються між собою, де заповнюємо пропуски і як відсікаємо викиди.
  • Склад робіт: етапи з результатом кожного — підготовка даних, навчання та налаштування моделі, перевірка на відкладеному періоді, впровадження у ваш контур.
  • Етапність і план впровадження: черговість запуску за групами товарів або точками, щоб перша віддача з'явилася раніше за повне охоплення.
  • Оцінка строків: діапазон із прив'язкою до готовності даних і швидкості узгоджень, а не середня за ринком цифра.
  • Точки контролю: демонстрації на реальних даних, метрики якості до і після, порядок донавчання та відкату до попередньої версії моделі.

У відповідь надсилаємо документ зі складом робіт, схемою даних і планом за етапами. Опишіть задачу — повернемося з оцінкою строків і уточнювальними питаннями щодо даних.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141