emilus. Закупівлі

Статус: у проді

Прогноз попиту й готове замовлення виробникам: закупівельник тільки підтверджує

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

Картка кейсу
Клієнт
Український бренд ветеринарної продукціївиробляє на контрактних виробництвах під своєю маркою
Напрям
emilus. Закупівліпрогноз попиту
Статус
У проді в клієнтащомісячне замовлення виробникам
Клієнт у цифрах
До 200 позицій10 років історії продажів в обліку, 2 контрактні виробники

Цифри «до» зі слів клієнта. Цифр результату тут немає: публікуємо тільки виміряне.

Ситуація і задача

Бренд ветеринарної продукції виробляє на контрактних виробництвах під своєю маркою й продає через власний інтернет-магазин, опт (зоомагазини, ветклініки, ветаптеки) і мережі та маркетплейси. Щомісяця компанія замовляє продукцію у виробників, а замовлення приїжджає через кілька місяців. Закупівельник рахував вручну, сезонність і промо легко було забути, і одних позицій виходило забагато, а інших бракувало. Асортимент живий: нові позиції з'являються, старі виводяться. Історія продажів в обліковій системі.

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

до 200

позицій в асортименті

зі слів клієнта
10 років

історії продажів в обліковій системі

зі слів клієнта
2

контрактні виробники

зі слів клієнта
3–4 міс.

від замовлення до приходу товару; на складі близько 6 місяців запасу

зі слів клієнта
+40%

на рік: ріст продажів, який заявляє компанія

зі слів клієнта
Головне правило

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

Що робить система

  • Прогноз по кожній позиціїЗ урахуванням сезонності й промо, по всіх каналах продажу разом. Продажі мережам і маркетплейсам: це відвантаження, а не попит кінцевого покупця, і це враховується окремо.
  • Готове замовленняПрогноз перетворюється на кількість до замовлення: товар у дорозі, кратність партії й мінімальне замовлення, страховий запас, термін придатності як стеля запасу, ліміт грошей, які компанія готова заморозити в запасі.
  • Правка з причиноюЗакупівельник бачить розрахунок, змінює будь-яку позицію й пише причину. Причини зберігаються в журналі.
  • Нові й старі позиціїДля нової позиції без історії окремий стартовий розрахунок; позицію, яку виводять, система перестає замовляти.
  • Перенавчання однією кнопкоюКерівник завантажує свіжі продажі й залишки та запускає перенавчання за обраний період.
  • Захист від гіршої моделіКожна версія моделі зберігається. Нова йде в роботу, тільки якщо на перевірці на «сліпому» періоді не гірша за попередню, інакше закупівля тихо зіпсується.
  • Дані перш за всеГоловний ризик: дані, а не модель. Без відміток про дефіцит модель вивчить порожній склад, а не попит, тому аудит даних іде до розробки: дефіцит, промо-календар, історія замовлень і залишків, заміни позицій.
ІлюстраціяЗібрано в коді сайту на умовних даних. Це не дані клієнта й не знімок екрана.

Архітектура простими словами

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

Дані
продажі по каналахзалишкитовар у дорозівідмітки дефіцитупромо-календар
Ролі
закупівельник: розрахунок і правкикерівник: перенавчання

Як працює

Щомісячний цикл: від даних до замовлення виробнику
  1. облікова системаДаніПродажі, залишки, товар у дорозі, дефіцит
  2. модельПрогнозПопит по кожній позиції із сезонністю й промо
  3. системаРозрахунокКратність, страховий запас, термін придатності, ліміт грошей
  4. закупівельникПравкаЗмінює позиції й пише причину
  5. закупівельникЛюдина підтверджуєЗамовлення йде виробнику тільки після «ок»
  6. керівникПеренавчанняСвіжі дані й одна кнопка
  7. системаПеревірка версіїУ роботу тільки не гірша за попередню

Що ми міряємо і з якої дати

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

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

Порівнюємо з ручним замовленням на тих самих місяцях.

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

Що працює і що далі

  1. працює

    Прогноз по кожній позиції й щомісячне замовлення виробникам

  2. працює

    Правки закупівельника з поясненням і підтвердження перед відправкою

  3. працює

    Перенавчання однією кнопкою для керівника

  4. далі

    Цифри точності на «сліпому» періоді: на сайті тільки зі згоди клієнта

Схожа задача у вашому бізнесі?Соломія, AI-помічниця Павла, розпитає про деталі й підготує розмову з ним.

Послуга, на якій зроблено цей кейс

emilus. Закупівлі

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

Інші кейси

Усі кейси

Наступний крок

Напишіть, відповість людина, а не агент.

Машинний режим: текст сторінки в markdownВідкрити index.md
Завантажуємо markdown…