Прогнозировать в закупке нужно не спрос, а потребность. Это разные числа: спрос — сколько уйдёт со склада, потребность — сколько надо купить с учётом того, что уже лежит, что уже едет и какой запас надо оставить на конец цикла. Ошибка в первом числе переносится во второе не один к одному, а с усилением, потому что горизонт закупки длиннее горизонта продажи на срок поставки.
Складскую сторону задачи — какие группы номенклатуры вообще предсказуемы, почему история продаж не равна истории спроса и как проверять подрядчика на закрытом хвосте — мы разбирали в материале про прогноз запасов на складе. Здесь другой угол: сколько и когда покупать, в штуках заявки и в рублях закупочного бюджета, и где расчёт заканчивается, а начинается решение закупщика.
Модель та же, что во всём разделе: производственно-торговая компания, 30 поставщиков, 400 закупаемых позиций, 72 000 000 ₽ закупки в год (6 000 000 ₽ в месяц по себестоимости), 180 заявок в месяц, 340 поставок в год, учёт в 1С:УТ. Полная стоимость часа закупщика 1 000 ₽, стоимость денег 24 % годовых.
Три уровня прогноза и что каждый стоит
Уровни отличаются не «умностью алгоритма», а тем, какие данные им нужны и кто их потом ведёт. Ошибка в таблице указана для одной и той же группы — стабильных позиций со спросом почти в каждом месяце, — чтобы уровни можно было сравнивать между собой.
| Уровень | Что учитывает | Нужно данных | Ошибка на месяц вперёд | Цена | Кто ведёт |
|---|---|---|---|---|---|
| 1. Скользящее среднее | Средний расход за 8 недель, сезонный коэффициент руками | 3 месяца отгрузок | около 26 % | 0 ₽, формула в таблице | Закупщик |
| 2. Сезонная модель | Тренд и месячный коэффициент по каждой позиции | 18–24 месяца отгрузок | около 17 % | 320 000 ₽ + 12 000 ₽/мес | Подрядчик, пересчёт раз в месяц |
| 3. Модель с внешними факторами | Плюс план акций, план продаж, изменение цены, календарь | 24 месяца плюс журнал акций и цен | около 13 % | 700 000 ₽ + 25 000 ₽/мес | Подрядчик, сопровождение и дообучение |
Главное в этой таблице — форма кривой. Переход с первого уровня на второй убирает 9 процентных пунктов ошибки и стоит 320 000 ₽. Переход со второго на третий убирает 4 пункта и стоит ещё 380 000 ₽ плюс вдвое больше сопровождения. Третий уровень имеет смысл ровно тогда, когда у компании есть регулярные акции и план продаж в письменном виде: без журнала акций внешним факторам просто неоткуда взяться, и модель третьего уровня сползает до второго, оставаясь в цене третьего.
Первый уровень стоит рассмотреть всерьёз, а не как формальность в начале списка. Скользящее среднее за 8 недель, умноженное на месячный коэффициент, считается формулой в обычной таблице и требует трёх месяцев истории. На стабильной группе оно даёт около 26 % ошибки — то есть на девять пунктов хуже сезонной модели за 320 000 ₽. Практический вывод для компании, которая только собирается вкладываться: сначала посчитайте первым уровнем и поживите с ним квартал. Вы получите базу для сравнения, увидите, где именно промахи болезненны, и придёте к подрядчику с вопросом «улучшите вот эти 40 позиций», а не «сделайте нам прогноз».
У третьего уровня есть скрытая статья, которую редко называют на переговорах: он требует, чтобы кто-то в компании постоянно кормил его внешними факторами. План акций, изменения цен, план продаж по месяцам — всё это должно попадать в систему вовремя и в машиночитаемом виде. Если ответственного за это нет, через полгода модель работает на устаревших вводных и точность падает ниже второго уровня. Это не техническая проблема, а вопрос о том, есть ли в компании человек, для которого ведение этих данных — часть работы, а не просьба.
Числа в таблице относятся к позициям со спросом почти в каждом месяце. На сезонных ошибка любого уровня выше в полтора-два раза, на редких — измеряется десятками и сотнями процентов. Подрядчик, который называет одну цифру точности на весь ассортимент, либо считает её по группе целиком, либо не считал вовсе. Разбор с честными вилками по группам — в материале про прогноз запасов на складе.
Двухосевой график. По горизонтали — три уровня прогноза, по вертикали слева — ошибка на месяц вперёд от 0 до 30 %. Ломаная линия проходит через точки 26 %, 17 %, 13 %. Под каждой точкой столбик разовой цены по правой оси от 0 до 800 000 ₽: 0 ₽, 320 000 ₽, 700 000 ₽. Отрезок между первой и второй точкой подписан «−9 пунктов за 320 000 ₽», между второй и третьей — «−4 пункта за 380 000 ₽». Чертёжный стиль, подписи по-русски.
Минимум данных, без которого считать нечего
Требование «18–24 месяца истории» звучит мягко, поэтому его обычно пропускают. На деле это жёсткий фильтр: сезонный коэффициент нельзя вывести по одному прохождению сезона, потому что непонятно, был это сезон или разовое событие. В модельной номенклатуре из 400 позиций 18 месяцев и больше есть у 312, и это в целом хороший результат.
- 1История отгрузок помесячно, минимум 18 месяцев, лучше 24. Считается по отгрузкам со склада, а не по приходам и не по документам поставщика. Дни, когда позиция стояла с нулевым остатком, помечаются отдельно: иначе модель примет вынужденный ноль за отсутствие спроса и занизит норму навсегда.
- 2Вычищенная номенклатура: одна позиция — одна карточка. Самая частая и самая тихая порча данных. В модельной компании 47 позиций из 400 задвоены, потому что заводились текстом из разных прайсов. История каждой копии втрое короче реальной, и модель по ним считает треть настоящего расхода. Как приводить прайсы поставщиков к одному справочнику, разобрано в материале про прайсы поставщиков к одному виду.
- 3Отметки акций и распродаж с датами. Две недели акции дают всплеск, который модель без пометки читает как новый уровень спроса и держит ещё два месяца. Журнал акций в 90 % компаний не ведётся вообще — его заводят под проект, и это первое, что надо начать делать, не дожидаясь подрядчика.
- 4Периоды дефицита по каждой позиции. Дни с нулевым остатком и дни, когда клиенту отказали. Второе почти нигде не фиксируется, и это принципиальный потолок точности: спрос, который не дошёл до отгрузки, в истории не виден.
- 5Фактические сроки поставки по каждому поставщику. Прогноз считается на горизонт, а горизонт равен сроку поставки плюс период между заказами. Ошибка в сроке на четыре дня на позиции с расходом 18 штук в день — это 72 штуки мимо, независимо от качества модели.
Метрика ошибки: одно и то же число двумя способами
Формулировка «наша модель ошибается на 15 %» ничего не значит, пока не сказано, как считалась средняя. Есть два способа, и на одних и тех же данных они расходятся вдвое. Возьмём пять позиций за закрытый месяц.
| Позиция | Прогноз, шт | Факт, шт | Отклонение, шт | Ошибка по позиции |
|---|---|---|---|---|
| А, ходовая | 3 600 | 3 100 | 500 | 16,1 % |
| Б, средняя | 540 | 620 | 80 | 12,9 % |
| В, редкая | 24 | 11 | 13 | 118,2 % |
| Г, средняя | 180 | 205 | 25 | 12,2 % |
| Д, стабильная | 96 | 90 | 6 | 6,7 % |
| Итого | 4 440 | 4 026 | 624 | — |
Взвешенная ошибка считается как сумма отклонений, делённая на сумму факта: 624 ÷ 4 026 = 15,5 %. Простое среднее ошибок по позициям даёт (16,1 + 12,9 + 118,2 + 12,2 + 6,7) ÷ 5 = 33,2 %. Разница вся целиком в позиции В: она весит 11 штук из 4 026, то есть четверть процента объёма, а в простом среднем занимает треть итога.
Обе, и по каждой группе отдельно. Взвешенная ошибка отвечает на вопрос «насколько мы промахнёмся деньгами» — по ней принимают прогноз в эксплуатацию. Простое среднее отвечает на вопрос «на скольких позициях закупщик получит бессмысленный расчёт» — по нему решают, какие позиции вообще отдавать модели. Рабочий ориентир для закупки: взвешенная ошибка ниже 20 % на стабильной группе и ниже 30 % на сезонной. Всё, что не проходит, ведётся вручную.
Сравнение в две колонки на одних и тех же пяти позициях. Левая колонка «Взвешенная по объёму»: формула «624 ÷ 4 026», крупное число «15,5 %», подпись «отвечает за деньги». Правая колонка «Простое среднее по позициям»: формула «(16,1 + 12,9 + 118,2 + 12,2 + 6,7) ÷ 5», крупное число «33,2 %», подпись «отвечает за число бессмысленных строк». Между колонками выноска на позицию В: «11 шт из 4 026 — четверть процента объёма и треть итога». Чертёжный стиль, подписи по-русски.
Что не прогнозируется никакой моделью
Четыре категории, где статистика бессильна по устройству задачи, а не по качеству подрядчика. Попытка втянуть их в модель делает хуже: они портят обучающую выборку и роняют точность на соседних позициях.
- 1Новые позиции без истории
Прогнозировать нечего: нет ни одного наблюдения. Рабочий приём — аналог: берётся профиль похожей позиции той же группы, а объём первой закупки считается от плана продаж и делится на два-три завоза вместо одного. Через три месяца позиция получает собственную короткую историю и переходит на первый уровень прогноза.
- 2Разовые проектные закупки
Потребность приходит из спецификации заказа, а не из истории отгрузок. Такие строки не должны попадать ни в базу расчёта, ни в отчёт об ошибке — иначе одна закупка под контракт на 4 000 000 ₽ испортит нормы половине номенклатуры. Помечаются признаком «под заказ» в момент создания заявки.
- 3Эффект чужой рекламы и чужих акций
Когда спрос двигает не ваш маркетинг, а федеральная кампания производителя или акция крупной сети, в ваших данных нет ни одного признака, по которому это можно предвидеть. Лечится не моделью, а каналом информации: производитель обычно предупреждает о кампании за месяц, если его об этом попросить письменно.
- 4Уход конкурента или появление нового
Разовый сдвиг уровня спроса, который модель отработает задним числом за два-три месяца. Всё это время она будет либо занижать, либо завышать. Единственная защита — ручной коэффициент на группу, поставленный закупщиком, и обязательный пересмотр через квартал.
Где расчёт заканчивается и начинается закупщик
Прогноз выдаёт спрос. Потребность в закупке получается из него четырьмя действиями, и три из них модели не касаются. Формула такая: прогноз спроса за горизонт минус доступный остаток минус товар в пути плюс целевой страховой запас, дальше округление до кратности и проверка минимумов поставщика.
Из восьми строк расчёта модель отвечает за две: базовый расход и сезонный коэффициент. Остальные шесть — учётные данные и решения. Именно поэтому проект, начатый с прогноза при неубранных резервах и неотражённом товаре в пути, не даёт эффекта: точность модели растёт, а заявка остаётся неверной. Механика точки заказа, страхового запаса и кратности разобрана в статье про точку заказа и автопополнение со стороны закупки.
Горизонтальная схема-цепочка из шести блоков со знаками между ними. Блоки слева направо: «Прогноз спроса за 35 дней — 599 шт» (выделен как зона модели), «− Доступный остаток 210», «− Товар в пути 240», «+ Страховой запас 155», «= Потребность 304», «→ Кратность 12 → 312 шт, 436 800 ₽». Над первым блоком подпись «считает модель», над остальными — «берётся из учёта и решений». Чертёжный стиль, подписи по-русски.
400 позиций: сколько строк отдаётся модели
Ожидание «система будет считать всю номенклатуру» не сбывается никогда, и это не дефект внедрения. Позиции делятся на четыре группы по признаку из истории, и три четверти денег оказываются в двух первых.
| Группа | Позиций | Признак | Кто считает | Доля месячной закупки |
|---|---|---|---|---|
| Стабильные | 168 | 18+ месяцев истории, спрос в 10 месяцах из 12 | Модель, автоматически | 3 240 000 ₽ (54 %) |
| Сезонные | 92 | 24 месяца истории, выраженный годовой профиль | Модель + проверка закупщиком раз в месяц | 1 620 000 ₽ (27 %) |
| Редкие | 118 | Спрос реже чем в 6 месяцах из 12 | Правило минимального остатка, без прогноза | 780 000 ₽ (13 %) |
| Новые и проектные | 22 | Нет истории либо закупка под конкретный заказ | Только закупщик, от плана продаж или спецификации | 360 000 ₽ (6 %) |
| Итого | 400 | — | — | 6 000 000 ₽ |
Автоматический расчёт закрывает 260 позиций из 400 — 65 % строк и 81 % денег. Оставшиеся 140 позиций — это 19 % закупки и примерно столько же рабочего времени закупщика, сколько раньше уходило на все 400. Такова честная арифметика: прогноз не убирает ручную работу, он переносит её на те позиции, где она действительно нужна.
Две вертикальные полосы одинаковой высоты рядом. Левая подписана «Позиции, 400 шт» и разбита на четыре сегмента с подписями: «Стабильные 168», «Сезонные 92», «Редкие 118», «Новые и проектные 22». Правая подписана «Деньги, 6 000 000 ₽/мес» и разбита теми же четырьмя сегментами с подписями «3 240 000 ₽», «1 620 000 ₽», «780 000 ₽», «360 000 ₽». Между полосами скобка, охватывающая два верхних сегмента, с подписью «считает модель: 260 позиций, 81 % денег». Чертёжный стиль, подписи по-русски.
Что прогноз даёт в деньгах
Половина эффекта прогноза в закупке лежит не там, где его обычно ищут. Снижение запаса — самая очевидная строка и не самая крупная; крупнее оказывается то, что появляется вместе с подтверждённым планом на квартал вперёд.
Четвёртая строка требует пояснения, потому что именно она отличает закупочный прогноз от складского. Когда компания может показать поставщику подтверждённый план выборки на квартал, разговор об условиях меняется: годовой объём перестаёт быть обещанием и становится графиком. В модели это шесть поставщиков из тридцати и 1,2 % скидки на 26 000 000 ₽ годового объёма — 312 000 ₽ в год. В расчёт мы берём половину, потому что скидка не выдаётся автоматически, а получается в переговорах, и получается не у всех.
Одиннадцать с половиной месяцев окупаемости — на границе разумного горизонта, и это честная характеристика прогнозного слоя. Сам по себе он покупается редко: обычно он идёт надстройкой к автопополнению, где вложение 260 000 ₽ возвращается за 7,6 месяца, и тогда общая окупаемость связки укладывается в девять месяцев. Порядок здесь важен: сначала нормы и точка заказа, потом прогноз, а не наоборот.
Когда прогноз потребности не нужен
Четыре случая, в которых мы отговариваем от прогнозного слоя, и каждый из них проверяется по учётным данным за час.
- Истории меньше 18 месяцев. Сезонный коэффициент вывести не из чего, и второй уровень вырождается в первый — то есть в скользящее среднее, которое считается формулой в таблице бесплатно. Разумное действие — начать вести журнал акций и помечать дни дефицита, а к прогнозу вернуться через год.
- Закупка идёт под заказ. Если больше половины строк приходит из спецификаций клиентов, прогнозировать нечего: потребность известна точно и заранее. Здесь работает связка «заказ — резерв — заявка», а деньги лежат в скорости согласования, а не в точности расчёта; про маршрут заявки — в материале про согласование заявок на закупку.
- Меньше 280 закупаемых позиций. Эффект пропорционален числу позиций, а эксплуатация — нет. Пороги по каждому блоку разобраны в материале про то, когда автоматизация закупок не окупится.
- Дефицит на складе вызывается не спросом, а деньгами. Если заявки регулярно режут при согласовании из-за кассового разрыва, точность прогноза ничего не изменит: расчёт будет верным, а закупка всё равно другой. Сначала платёжный календарь, потом прогноз.
И общий вывод. Прогноз потребности не делает будущее известным — он делает известной величину собственной ошибки. Это и есть его практическая ценность: зная, что на стабильной группе модель промахивается на 17 %, вы закладываете страховой запас на 17 %, а не на глазок, и перестаёте платить за неопределённость дважды. Компания, которая знает свою ошибку, управляет запасом; компания, которая её не измеряет, управляет ощущениями.
Точность прогноза — не цель, а вводная. Цель — знать её величину заранее и заложить в страховой запас ровно столько, сколько она стоит.
