Спрос и автозаказ

Заявка, которую не нужно собирать руками

invent.sale считает потребность по каждой позиции и точке, вычитает остаток и то, что уже едет, приводит к упаковке поставщика — и отдаёт готовый заказ на подтверждение человеку.

Считается на продажах, остатках и сроках поставки — они приходят из учёта с первого дня.

Зачем

Заказ обычно собирают по памяти и по вчерашнему остатку

Остаток без скорости

«Осталось 62» ничего не значит, пока не известно, за сколько дней это уходит.

Товар в пути не виден

Позицию заказывают второй раз, потому что первая поставка ещё едет.

Упаковка поставщика

Считают в штуках, заказывают в коробах — и получают втрое больше нужного.

Все три вопроса решаются одним расчётом, если данные приходят каждую ночь.

Как считается

Одна позиция, разложенная по шагам

Пример условный, но арифметика ровно та, что работает в проде: горизонт умножается на дневной спрос, из результата вычитается всё, что уже есть и едет, остаток приводится к упаковке.

  1. СпросМолоко 2,5% 900 млпродажи за 30 дней — 1 020 штдневной спрос — 34 шт
  2. Горизонтдо следующей поставки — 7 днейсрок поставки — 3 днясчитаем на 10 дней
  3. Потребность10 × 34 = 340 штминус остаток 62минус в пути 0
  4. Упаковканужно 278 штв коробе 12278 ÷ 12 = 23,2 → 24 короба
  5. Заявка24 короба = 288 штуходит поставщику по расписаниюответ — кнопкой в боте

В этом сценарии штучный заказ округляется вверх по заданному правилу: недовоз останавливает продажу, а лишние несколько штук уходят на следующий день. Правило настраивается — округление вниз тоже допустимо там, где цена ошибки обратная. С коробом наоборот — он применяется, только если точка успевает съесть полкороба за срок поставки. Короб на квартал продаж не округляется, а снимается: иначе позиция не проходит порог полкороба ни в одном заказе и уходит в вечный дефицит.

На чём считает

Шесть величин, и все из вашего учёта

Продажи по дням

По позиции и точке. Из них берётся скорость, а не из среднего за месяц.

Остаток

На точке и на складе — на утро расчёта, а не на дату последней инвентаризации.

Товар в пути

Подтверждённые заказы, которые ещё не пришли. Иначе позиция заказывается дважды.

Срок поставки

По поставщику. Определяет, на сколько дней вперёд считать.

Упаковка

Сколько штук в коробе. Заказ отдаётся в тех единицах, в которых поставщик отгружает.

Календарь

В какие дни этот поставщик принимает заявки.

Границы

Чего модуль не делает намеренно

ПравилоПочему так
Не считает спросом списаниеРасходная накладная — не продажа. Пока это не разделили, система заказывала протухшее заново.
Не верит выбросуОдна строка с опечаткой в учёте давала спрос в миллионы штук. Всплеск в тысячу раз выше нормы отбрасывается.
Не заказывает вслепуюПозиции без истории продаж не дозаказываются по прогнозу: экстраполировать пустоту нельзя. Их берут по заявке человека.
Не трогает учётЗаявка живёт в платформе. Обратной записи в вашу систему нет, пока вы её не попросите.

Роли

Что делает система и что остаётся человеку

КтоЧто делает
Системасчитает потребность и собирает заявку по каждому поставщику
Закупщикправит количество там, где знает то, чего нет в данных
Системаотправляет по расписанию и ждёт ответа
Поставщикподтверждает, заменяет или отказывает — кнопкой

Как измеряем

Чем меряется результат

Доля дефицита

Сколько ходовых позиций стояло в нуле и сколько дней.

Излишки

Сколько денег стоит в товаре, который не уходит за горизонт.

Ручные правки

Как часто закупщик меняет предложенное количество. Растёт — значит расчёт не видит чего-то важного.

Время на заказ

Сколько занимает сбор заявки от выгрузки до отправки.

Проценты по этим числам мы не публикуем: без замера до старта они ничего не значат. В пилоте фиксируем их первыми.

Посчитать заказ на ваших позициях

Возьмём вашу выгрузку за месяц и покажем расчёт по десятку позиций — с той же арифметикой, что выше.