Ритм: прогноз спроса и пополнение запасов для сети складов и магазинов

Показывает, какие товары закончатся до прихода поставки и сколько выручки вы на этом потеряете, что и сколько заказать у каждого поставщика, где заморожены деньги и что выгоднее переместить между складами, чем докупить. Прогноз с проверкой на истории, ABC/XYZ, точка заказа, работа поверх ERP.

Ритм: прогноз спроса и пополнение запасов для сети складов и магазинов
INGELLO / BUSINESS2931
Перейти в системуfrontend-logistic2.ingello.com Связаться с нами

Какие проблемы решает

  • Дефицит ходовых товаров. Система видит, какие товары закончатся раньше, чем приедет следующая поставка, и показывает потерянную выручку в гривнах, пока полка ещё не пустая.
  • Деньги, замороженные в излишках. Список товаров и точек, где запаса больше, чем на 90 дней продаж, с суммой по закупочной цене.
  • Перекосы между складами. На одной точке лежит лишнее, на другой не хватает. Система предлагает перемещение раньше, чем закупку у поставщика.
  • Заказ «на глаз». Количество считается из прогноза, срока поставки, страхового запаса, минимальной партии и кратности упаковки. Заказ уже сгруппирован по поставщику и складу.
  • Прогноз, которому никто не верит. Для каждого товара видны точность и систематическое смещение, а модель прогноза выбирается проверкой на истории, а не мнением.
  • Второй учёт в Excel. Товары, остатки, продажи и поставки берутся из ERP, решения возвращаются туда документами одной кнопкой.
Ритм: экран решений
Экран решений: дефицит с потерянной выручкой, что купить, что переместить, сколько денег заморожено, и карточки заказов «поставщик → склад»

Для кого

Дистрибуция, розничные сети, интернет-магазины со своими складами, производство с закупкой комплектующих. Система окупается там, где товаров от сотни и больше, точек хранения несколько, а сроки поставки измеряются неделями: именно тогда ошибка в заказе стоит дороже всего.

Что видно сразу после входа

Восемь чисел, по которым руководитель за минуту понимает состояние запасов. В демо-компании (сеть «Мобилус»: 14 моделей телефонов, 5 точек):

ПоказательДемоКак считается
Дефицит7 позиций, 1,2 млн ₴ потерьтовар кончится до прихода поставки; потери = дни без товара × спрос × цена
Купить7 позиций, 3,6 млн ₴позиция ниже точки заказа; сумма по закупочной цене
Переместить85 штизлишек одной точки закрывает дефицит другой
Заморожено626 тыс ₴запас сверх цели покрытия при покрытии больше 90 дней
Деньги в запасе7,3 млн ₴остаток × закупочная цена
Запас, дней30деньги в запасе / прогнозный расход в день
Оборачиваемость10,5 в годсебестоимость продаж 12 месяцев / деньги в запасе
Точность прогноза89 %100 % − WAPE, взвешено по выручке

Ключевые алгоритмы

Ниже то, что обычно скрыто в «чёрном ящике». Каждое решение системы раскладывается на эти шаги и проверяется руками.

1. Подготовка данных: спрос, а не продажи

Продажи и остатки берутся по дням, по каждому товару и каждой точке. Возвраты не считаются спросом. Главная поправка: дни без остатка. Если товара не было на полке, продажи были нулевыми не из-за отсутствия спроса. Когда товар был в наличии n дней из N дней месяца (и хотя бы треть месяца), спрос месяца пересчитывается как продажи × N / n.

Без этой поправки каждый дефицит занижает следующий прогноз, система заказывает меньше, и дефицит повторяется. Это самая частая причина, по которой «прогноз в Excel» не работает.

2. ABC/XYZ: значимость и предсказуемость

  • ABC по выручке за 12 полных месяцев: товары сортируются по убыванию, A набирают первые 80 % выручки, B следующие 15 %, C оставшиеся 5 %.
  • XYZ по коэффициенту вариации помесячного спроса (стандартное отклонение / среднее): X меньше 10 %, Y от 10 до 25 %, Z больше 25 %.
  • Пороги меняются в настройках, пересчёт мгновенный.

Сегмент здесь не отчёт ради отчёта: от него зависит страховой запас. Чем важнее товар и чем менее предсказуем спрос, тем больше дней запаса система держит сверх срока поставки.

СегментСтраховые дниСтратегия
AX, BX7, 5автозаказ, запас только на риск задержки поставки
AY, BY10, 7обязательный страховой запас на колебания спроса
AZ, BZ14, 10под заказ и жёсткий контроль: дефицит здесь стоит дороже всего
CX3заказывать реже и крупнее
CY, CZ3, 0кандидаты на пересмотр ассортимента

В демо 3 модели сегмента AY дают 52 % выручки, ещё 2 модели AZ дают 36 %. Восемь из четырнадцати товаров вместе приносят меньше 10 %: на них не стоит держать деньги.

Ритм: матрица ABC/XYZ
Матрица ABC/XYZ: число товаров, доля выручки, страховые дни и стратегия. Клик по ячейке открывает список товаров

3. Прогноз: модель выбирает проверка на истории

Прогноз строится на 12 месяцев вперёд по каждому товару тремя моделями:

  • скользящее среднее за 3 месяца: быстро реагирует на изменения;
  • скользящее среднее за 6 месяцев: устойчиво к шуму;
  • тренд × сезонность (при истории от 15 месяцев): линейный тренд считается по ряду, очищенному от сезонности, а индексы сезонности по календарным месяцам нормируются к единице. Тренд и индексы уточняются друг через друга за несколько проходов, иначе неполный год в истории (пик декабря только у одного края) перекашивает наклон. Тренд гасится: через год прогнозный уровень не уходит дальше 0,5–1,6 от текущего.

Какую модель взять, решает бэктест. Система отрезает последние 6 месяцев, строит прогноз каждой моделью по более ранним данным и сравнивает с фактом. Побеждает модель с наименьшей ошибкой WAPE. Пример из демо, iPhone 11 с выраженными пиками в сентябре и декабре:

МодельWAPE на бэктесте
Среднее 3 мес28,2 %
Среднее 6 мес20,5 %
Тренд × сезонность18,4 %, выбрана

Прогноз считается на уровне товара, а по точкам распределяется по их доле в спросе за последние полгода. Ряды «товар × точка» слишком шумные для собственной сезонности, а сумма по сети даёт устойчивую форму.

4. Точность прогноза

  • WAPE = Σ|прогноз − факт| / Σ факт: средняя ошибка в долях от продаж;
  • Accuracy = 100 % − WAPE: зелёная от 85 %, жёлтая 70–85 %, красная ниже 70 %;
  • BIAS = Σ(прогноз − факт) / Σ факт: систематическое завышение (плюс) или занижение (минус);
  • MAE в штуках, окно оценки совпадает с окном бэктеста.

Точность компании взвешивается по выручке: ошибка на дорогом ходовом товаре важнее ошибки на копеечном. В демо она 89 %.

5. План: прогноз, цель года и ручные правки

  • Цель года (top-down): руководитель задаёт сумму продаж на 12 месяцев, система делит её по товарам пропорционально их доле в выручке, а по месяцам раскладывает по форме прогноза.
  • Ручная правка любого месяца по любому товару кликом в ячейке. Ручное значение имеет приоритет над расчётом и помечается цветом.
  • Каждый пересчёт сохраняется как версия плана, последние пять доступны для сравнения.
Ритм: план
План: факт за 24 месяца, прогноз и план на 12, цель года и рост к прошлому году

6. Сколько и когда заказывать

Расчёт делается для каждой пары «товар × точка»:

d   = план на ближайшие ~45 дней / число дней × доля точки   (дневной спрос)
L   = срок производства + срок доставки                       (lead time, дни)
SS  = d × страховые дни сегмента ABC/XYZ                       (страховой запас)
ROP = d × L + SS                                               (точка заказа)
P   = на складе + в пути (открытые поставки и перемещения ERP) (позиция)
T   = d × (L + цикл заказа + страховые дни)                    (цель покрытия)

дефицит   если P − d × L < 0          (товар кончится до прихода поставки)
купить    если P ≤ ROP
излишек   если P / d > 90 дней
к заказу  = max(T − P, MOQ), вверх до кратности упаковки, не больше макс. партии
потери    = дни без товара × d × цена продажи
заморожено = (P − T) × закупочная цена

Разбор на реальной строке демо. Xiaomi Redmi Note 9 Pro, Магазин «Мобилус», сегмент AY:

ВеличинаЗначение
Дневной спрос по плану2,75 шт
Срок поставки21 день, цикл заказа 14 дней, страховых дней 10
На складе / в пути13 / 0 шт
Нужно до прихода поставки2,75 × 21 ≈ 58 шт
Страховой запас2,75 × 10 ≈ 28 шт
Состояниедефицит: 13 шт хватит на ~5 дней, товара не будет 17 дней
Потерянная выручка, если не заказать17 × 2,75 × 8 499 ₴ ≈ 397 тыс ₴
Цель покрытия2,75 × (21 + 14 + 10) ≈ 124 шт
К заказу124 − 13 = 111 → кратно 5 → 115 шт, 793 500 ₴

Ровно эти числа пользователь видит в карточке товара: решение не нужно принимать на веру.

Ритм: карточка товара
Карточка товара: на складе против потребности до прихода и страхового запаса, итог к заказу, график и состояние по каждой точке

7. Перемещения раньше закупки

Для каждого товара система находит точки-доноры (излишек при живом спросе) и точки-получатели (сначала дефицит, потом «купить»). Получателю переносится min(нужно до цели, излишек донора) с самого большого донора. Если перемещение закрывает потребность полностью, закупка отменяется, если частично, сокращается. В демо так перераспределяется 85 телефонов, которые иначе пришлось бы покупать заново, пока они лежат на соседнем складе.

8. Скорость и актуальность

Данные из ERP подтягиваются каждые 15 минут, пересчёт запускается после синхронизации и после каждой правки параметров. Полный расчёт демо (14 товаров × 5 точек, 25 месяцев истории по дням) занимает 0,1–0,2 секунды; объём работы растёт линейно с числом пар «товар × точка».

Интеграция с ERP

Ритм не заводит второй учёт. Справочники, остатки, продажи и поставки живут в ERP (в демо это наша Forma), Ритм читает их и возвращает решения документами:

  • выгрузка данных: товары, склады, поставщики, остатки, продажи по дням, открытые поставки и перемещения (они учитываются как «в пути»);
  • черновик поставки: поставщик, склад, строки товаров с количеством и ценой, одной кнопкой из карточки заказа;
  • черновик перемещения между складами;
  • вход без отдельных паролей: если человек вошёл в ERP, он уже в Ритме (одноразовый подписанный токен).

Все запросы подписаны общим секретом (HMAC-SHA256). Документы создаются штатными механизмами ERP, поэтому оплата, доставка и приход идут привычным порядком, а Ритм лишь читает их статус. Для другой учётной системы (1С/BAS, Odoo, собственной ERP) реализуются те же три операции.

ERP: поставка, созданная Ритмом
Та же поставка в ERP: поставщик, склад, позиция и цена пришли из Ритма
Ритм: контур системы
Ритм: схема данных

Интерфейс

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

Ритм: документы
Документы, отправленные в ERP, и их статус там
Ритм: схема интерфейса
Ритм на телефоне
Экран решений на телефоне

Как внедряем

ЭтапЧто делаемЧто нужно от вас
1. Данныеподключаем ERP, проверяем полноту истории, чистим возвраты и дублидоступ к ERP или выгрузка продаж и остатков по дням за 12+ месяцев
2. Моделинастраиваем пороги ABC/XYZ, страховые дни, сроки и MOQ поставщиков, проверяем точность на вашей историиусловия поставщиков: сроки, минимальные партии, кратность
3. Пилотодна категория или один склад, сравнение рекомендаций с текущими заказамиответственный за закупки на 2–4 недели пилота
4. Развёртываниевсе товары и точки, документы уходят в учёт автоматически, обучение командырешение по регламенту заказа

Срок и стоимость считаем после первого этапа: они зависят от ERP, числа товаров и качества истории. Систему ставим в вашем контуре или у нас, исходный код передаётся по договору.

Что настоящее, а что демо

  • Настоящее: все алгоритмы и расчёты на сервере, вход через ERP, справочники и остатки из демо-аккаунта ERP, документы реально создаются в ERP.
  • Демо: история продаж за 25 месяцев сгенерирована (в демо-аккаунте её нет), компания «Мобилус» вымышленная.

Посмотреть систему: frontend-logistic2.ingello.com (открывается без входа в режиме просмотра). Презентация: landing-logistic2.ingello.com. Обсудить внедрение: консультация с архитектором.

Технологический стек и подходы

SaaS архитектура Микросервисы Облачные вычисления Масштабируемость ПО API интеграции DevOps процессы High-load системы Кибербезопасность решений

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

01Это замена ERP?

Нет. Ритм ничего не учитывает сам: товары, остатки, продажи и поставки живут в ERP. Ритм считает прогноз и запасы и возвращает решения в ERP документами.

02Какие данные нужны для старта?

Продажи и остатки по дням по каждому товару и складу за 12 месяцев и больше, справочники товаров, складов и поставщиков, условия поставщиков: сроки, минимальные партии, кратность.

03Сколько нужно истории?

Скользящее среднее работает с 6 месяцев, модель «тренд × сезонность» включается с 15 месяцев. Для новинок без истории план задаётся вручную по месяцам.

04Работает ли с 1С, BAS, Odoo?

Да. Со стороны Ритма связка сводится к трём операциям: выгрузка данных, создание поставки и создание перемещения. Их реализуем для вашей учётной системы.

05Как понять, что прогнозу можно доверять?

Для каждого товара видны точность, WAPE и смещение BIAS на последних шести месяцах, а модель выбрана той, что ошибалась меньше всего. Если результат не устраивает, план правится вручную, и правка остаётся приоритетной.