Как учитывать нестабильность сроков поставки при расчёте запасов: методы, формулы и практические подходы

Нестабильность сроков поставки (лид-тайма) — одна из главных причин дефицитов и излишков на складе. Если спрос прогнозируется с погрешностью 10–20 %, то вариативность поставки часто достигает 30–50 % и выше. Классическая формула точки заказа ROP = средний спрос × средний лид-тайм + страховой запас перестаёт работать, когда поставщик присылает партию то через 5 дней, то через 14. В этой статье разбираем, как правильно заложить эту неопределённость в расчёты, какие методы подходят под разные условия и где заканчивается математика и начинается управленческое решение.

Содержание
  1. Почему средние значения обманчивы
  2. Математические модели: от простых к реалистичным
  3. Модель 1: Неопределённость только в спросе (лид-тайм константен)
  4. Модель 2: Неопределённость в спросе и лид-тайме (независимые)
  5. Модель 3: Коррелированные спрос и лид-тайм
  6. Модель 4: Эмпирическое распределение (без предположения нормальности)
  7. Выбор сервис-уровня: fill rate vs cycle service level
  8. Практический алгоритм внедрения
  9. Типичные ошибки и как их избежать
  10. Особые сценарии: что делать, когда стандартные формулы не работают
  11. Очень длинный и нестабильный лид-тайм (импорт, морской контейнер)
  12. Стохастический спрос с большим числом нулей (intermittent demand)
  13. Структурная смена: новый поставщик, новый склад, новый режим доставки
  14. Инструменты: от Excel до специализированного ПО
  15. Ключевые метрики для контроля качества расчётов
  16. Чек-лист перед сменой методологии
  17. Когда математика заканчивается и начинается управление
  18. Практический следующий шаг

Почему средние значения обманчивы

Большинство ERP-систем и таблиц Excel используют средний лид-тайм. Казалось бы, логично: если поставка длится в среднем 10 дней, то заказываем под 10 дней. Но распределение сроков поставки почти никогда не является нормальным и симметричным. Типичная картина: 70 % поставок приходят за 7–10 дней, 20 % — за 12–15 дней, и 10 % — за 20+ дней из-за задержек на таможне, поломок транспорта или производственных сбоев у поставщика.

Использование среднего значения означает, что в 50 % случаев поставка придёт позже расчётного момента. При этом страховой запас, рассчитанный только по вариативности спроса, не покроет «хвост» распределения лид-тайма. Результат — регулярные дефициты именно по тем позициям, где поставка нестабильна, даже при формально высоком уровне сервиса.

Главный принцип: страховой запас должен покрывать совокупную неопределённость — и спрос за лид-тайм, и саму длительность лид-тайма. Эти две источники вариативности складываются нелинейно, и игнорирование второй составляющей даёт систематическое занижение запасов на 20–40 % для нестабильных поставщиков.

Математические модели: от простых к реалистичным

Модель 1: Неопределённость только в спросе (лид-тайм константен)

Базовый случай, который учат в учебниках:

SS = Z × σd × L

где SS — страховой запас, Z — коэффициент сервиса (quantile нормального распределения), σd — стандартное отклонение ежедневного спроса, L — лид-тайм в днях.

Эта формула справедлива только если лид-тайм действительно стабилен (коэффициент вариации CV < 0.1). В реальности это редкость: даже у надёжных локальных поставщиков CV часто 0.15–0.25.

Модель 2: Неопределённость в спросе и лид-тайме (независимые)

Самая распространённая формула в профессиональном ПО (Slimstock, ToolsGroup, Blue Yonder и др.):

SS = Z × (L × σd² + d² × σL²)

где d — средний ежедневный спрос, σL — стандартное отклонение лид-тайма.

Здесь второе слагаемое под квадратным корнем — вклад вариативности лид-тайма. Обратите внимание: оно пропорционально квадрату среднего спроса. Для быстродвижущихся товаров (большой d) нестабильность поставки бьёт в страховой запас гораздо сильнее, чем для медленных. Это контр интуитивный, но критически важный момент: «А-товары» по обороту требуют диспропорционально больших буферов при нестабильной логистике.

Модель 3: Коррелированные спрос и лид-тайм

В некоторых отраслях (сельское хозяйство, сырьё, сезонные товары) спрос и лид-тайм коррелируют: в пиковый сезон и спрос выше, и поставщики загружены дольше. Если корреляция положительная, формула выше занижает риск. Строгая формула с ковариацией:

SS = Z × (L × σd² + d² × σL² + 2 × d × Cov(d, L))

На практике ковариацию надёжно оценить сложно — нужно много синхронных наблюдений. Часто проще перейти на симуляцию (Monte Carlo) или заложить запас по более консервативному перцентилю эмпирического распределения спроса за лид-тайм.

Модель 4: Эмпирическое распределение (без предположения нормальности)

Когда истории достаточно (минимум 30–50 закрытых заказов), можно не подбирать теоретическое распределение, а строить страховой запас напрямую по перцентилям:

  1. Для каждого исторического заказа вычислить спрос за фактический лид-тайм: сумма ежедневных продаж за дни от заказа до прихода.
  2. Построить эмпирическое распределение этого «спроса за лид-тайм».
  3. Взять перцентиль, соответствующий целевому сервис-уровню (например, 95-й для 95 % fill rate).
  4. Страховой запас = перцентиль − средний спрос за средний лид-тайм.

Этот подход автоматически учитывает любую форму распределения, корреляции и выбросы. Недостаток — нужен чистый массив исторических данных без пропусков и структурных смен (смена поставщика, нового склада, сезона).

Выбор сервис-уровня: fill rate vs cycle service level

Прежде чем подставлять Z в формулы, нужно договориться, что именно мы защищаем.

  • Cycle Service Level (CSL) — вероятность того, что за период лид-тайма дефицита не будет. Z = 1.65 для 95 % CSL. Это мера «не остаться пустым к моменту следующей поставки».
  • Fill Rate (FR) — доля спроса, удовлетворенная со склада сразу. Для 95 % FR нужен Z ≈ 2.06 (при нормальном распределении), но связь нелинейна и зависит от коэффициента вариации спроса за лид-тайм.

Большинство бизнесов на самом деле хотят Fill Rate (доля упущенных продаж), а настраивают параметры под Cycle Service Level. Разница на высоковариативных позициях может давать 5–10 % лишних запасов или, наоборот, скрытые дефициты. Рекомендация: если KPI отдела закупок — fill rate, считайте страховой запас через обратную функцию потерь (loss function) или симуляцию, а не через Z-таблицы.

Практический алгоритм внедрения

Не пытайтесь перевести весь каталог на сложные формулы за неделю. Рабочий пошаговый процесс:

  1. Сегментация SKU. Разбейте ассортимент по двум осям: вариативность спроса (CV дневного спроса) и вариативность лид-тайма (CV лид-тайма). Получите 4 кластера: стабильный/стабильный, стабильный/нестабильный, нестабильный/стабильный, нестабильный/нестабильный.
  2. Выбор метода по кластеру.
    • Стабильный/стабильный — формула Модели 1, обычный ROP.
    • Стабильный спрос / нестабильный лид-тайм — Модель 2, фокус на σL.
    • Нестабильный спрос / стабильный лид-тайм — Модель 1, фокус на σd.
    • Нестабильный/нестабильный — Модель 2 или эмпирические перцентили (Модель 4), обязательно проверка на хвосты.
    • Сбор и очистка истории лид-таймов. Нужен массив фактических дат: дата заказа поставщику, дата отгрузки, дата приёмки на склад. Исключите аномалии: отменённые заказы, частичные поставки (считайте по последней части), возвраты. Минимум 30 точек на SKU, лучше 50+.
    • Расчёт параметров. Для каждого SKU: d, σd, L, σL. Если данных мало — пулите параметры от похожих SKU (кластеризация по ABC-XYZ или по группе товара/поставщику).
    • Пилот на 5–10 % SKU. Заведите паралёльный расчёт в Excel/BI, сравнивайте с текущей логикой ERP 2–3 месяца. Метрики: fill rate, оборачиваемость, число дефицитов, средний запас в днях продаж.
    • Калибровка сервис-уровней. Не ставьте везде 95 %. Для А-товаров с высокой маржой — 98–99 %, для С-товаров с низкой стоимостью хранения — 90–92 %. Дифференциация даёт 10–15 % экономию запасов без потери сервиса по ключевым позициям.
    • Автоматизация и контроль. Загрузите формулы в ERP или BI-слой. Настройте ежемесячный пересчёт параметров (rolling window 6–12 месяцев) и алерты: если σL вырос > 20 % за квартал — сигнал менеджеру закупок переговорить с поставщиком или найти альтернативу.

    Типичные ошибки и как их избежать

    Ошибка Почему это вредно Правильный подход
    Использование среднего лид-тайма без σL Систематические дефициты на «хвосте» распределения, особенно на А-товарях Всегда считайте σL и включайте в формулу Модели 2
    Предположение нормального распределения лид-тайма Лид-тайм почти всегда правоскос (длинный правый хвост). Нормальное распределение занижает перцентили Используйте логнормальное, гамма-распределение или эмпирические перцентили
    Один сервис-уровень для всего каталога Перезапас С-товаров, недозапас А-товаров Дифференцированные CSL/FR по ABC-классам и критичности
    Расчёт σd по календарным дням, а продажи только в рабочие Искусственное завышение вариативности (нули в выходные) Считайте спрос по рабочим дням или используйте недельные агрегаты
    Игнорирование минимальной партии заказа (MOQ) и кратности Расчётный ROP может быть меньше MOQ — заказ не разместится Финальный заказ = max(ROP, MOQ), страховой запас пересчитывается под реальный цикл
    Статические параметры годами Поставщики меняют логистику, спрос дрейфует — параметры устаревают за 3–6 месяцев Rolling window 6–12 мес., автопересчёт, алерты на дрейф σ

    Особые сценарии: что делать, когда стандартные формулы не работают

    Очень длинный и нестабильный лид-тайм (импорт, морской контейнер)

    L = 45–60 дней, σL = 10–20 дней. Страховой запас по Модели 2 становится огромным (часто 2–3 месяца продаж). Выходы:

    • Разделение потока: часть объёма — по воздуху/экспресс (короткий лид-тайм, дорого), основной объём — морем (дёшево, долго). Страховой запас считается только под «быстрый» поток, «медленный» покрывает базовый спрос.
    • Динамическое буферирование (DDMRP): вместо фиксированного ROP используются цветовые зоны буфера, которые адаптируются под текущий спрос и фактическое положение заказа в транзите.
    • Геджинг поставщиками: договорённость о безопасности (safety stock у поставщика) или VMI — поставщик держит запас у себя и отгружает по pull-сигналу.

    Стохастический спрос с большим числом нулей (intermittent demand)

    Запчасти, медленные товары: много дней с нулевыми продажами, редкие сплески. Стандартное отклонение σd теряет смысл. Методы:

    • Croston’s method / SBA / TSB — отдельная оценка интервала между спросом и размера спроса.
    • Negative Binomial / Poisson-логарифмическое распределение для размера спроса.
    • Прямая симуляция (Monte Carlo) на истории интервалов и размеров.
    • Практический упрощение: для C-товаров с CV > 1.5 часто проще держать фиксированный мин/макс на уровне 1–2 упаковок и не мучить формулами.

    Структурная смена: новый поставщик, новый склад, новый режим доставки

    История старых лид-таймов невалидна. Подходы:

    • Аналогия: берём параметры от похожего поставщика/склада/маршрута.
    • Экспертная оценка: минимум/максимум/наиболее вероятно → триугольное распределение → симуляция.
    • Пилотный период: первые 10–15 поставок собираем статистику, пересчитываем параметры еженедельно.
    • Консервативный старт: закладываем 90-й перцентиль экспертной оценки, снижаем по мере накопления фактов.

    Инструменты: от Excel до специализированного ПО

    Не обязательно покупать SCM-систему за $100k. Выбор зависит от масштаба и зрелости процессов:

    • Excel / Google Sheets + Power Query: до 5–10 тыс. SKU, если есть человек, который понимает формулы и поддерживает актуальность данных. Гибко, дешево, но хрупко при смене ответственного.
    • BI-слой (Power BI, Tableau, Superset) поверх ERP: данные в DWH, расчёты на DAX/MDX, дашборды для категорий. Хорошо для видимости и контроля, плохо для операционного управления (нет обратной записи в ERP).
    • SaaS-инвентори (Inventoro, Netstock, Slim4, EazyStock): подключаются к ERP по API, сами считают параметры, пушат рекомендации заказов. Цена $200–2000/мес. Подходит для 10–100 тыс. SKU, быстрый старт (2–4 недели).
    • Модули ERP (SAP IBP, Oracle Demantra, 1C:SCM, Microsoft D365 Supply Chain): если уже есть лицензии и настроена интеграция. Часто требуют дорогой кастомизации под нестандартные формулы.
    • Python/R скрипты в оркестраторе (Airflow, Prefect): для команд с дата-инженерами. Максимальная гибкость (любые распределения, симуляции, ML-прогнозы), но нужно поддерживать код.

    Критерий выбора: если вы не можете объяснить, почему система выдала именно это число заказа, — инструмент не подходит. Прозрачность формул и возможность ручной проверки на выборке SKU важнее фич AI/ML.

    Ключевые метрики для контроля качества расчётов

    После внедрения новых формул следите за этими показателями ежемесячно:

    • Fill Rate (по строкам заказов и по количеству) — целевой vs факт. Разрыв > 2–3 п.п. = проблема в параметрах или в исполнении заказов.
    • Stockout frequency (доля SKU с нулевым остатком в конце дня) — должна снижаться.
    • Inventory days of supply (средний запас / средний дневной спрос) — не должен расти быстрее, чем улучшается fill rate.
    • Excess & Obsolete (запас > 12 месяцев продаж) — признак перестраховки или неактуальных параметров.
    • Forecast Bias (средняя ошибка прогноза со знаком) — систематическое завышение/занижение прогона тянет страховой запас вверх/вниз.
    • Lead-time CV trend (скользящее σL / L за 6 мес.) — рост > 10 % за квартал = сигнал к работе с поставщиком.

    Чек-лист перед сменой методологии

    Если вы решаете перейти от «средний лид-тайм + запас по спрос» к полной Модели 2 или эмпирическим перцентилям, пройдитесь по пунктам:

    • [ ] Есть ли история лид-таймов по SKU (мин. 30 точек, идеально 50+)?
    • [ ] Данные очищены: удалены отменённые заказы, учтены частичные поставки, исключены аномалии (форс-мажоры, пандемия)?
    • [ ] Определены целевые сервис-уровни по классам ABC/критичности?
    • [ ] Выбран метод расчёта для каждого кластера (Модель 1, 2, 4)?
    • [ ] Есть инструмент для автоматизированного пересчёта параметров (rolling window)?
    • [ ] Настроены алерты на дрейф σL и σd?
    • [ ] Проведён пилот на репрезентативной выборке (5–10 % SKU) 2–3 месяца?
    • [ ] Результаты пилота сравнены с baseline: fill rate, оборачиваемость, запас в днях?
    • [ ] Команда закупок обучена интерпретировать новые рекомендации?
    • [ ] Есть план отката (fallback) на старую логику, если пилот провалится?

    Когда математика заканчивается и начинается управление

    Формулы дают число. Но решение — заказывать или нет, сколько именно, у какого поставщика — принимает человек. Нестабильность лид-тайма часто симптом системных проблем:

    • Поставщик не держит сроки — нужен штрафной клаузул, резервный источник или VMI.
    • Таможня «зависает» — нужен брокер с гарантированным таймингом или склад в стране назначения.
    • Внутренняя приёмка медленная — лид-тайм растёт не у поставщика, а у вас на воротах.
    • Спрос дрейфует — прогнозная модель устарела, страховой запас компенсирует ошибку прогноза.

    Страховой запас — это платы за неопределённость. Математика помогает посчитать честную стоимость этой платы. Но снизить саму неопределённость (и плату) можно только операционными действиями: развитием альтернативных поставщиков, сокращением циклов, обменом прогнозами с партнёрами (CPFR), переездом склада ближе к клиенту. Никакая формула не заменит надёжную цепочку поставок.

    Практический следующий шаг

    Начните с аудита текущего состояния: выгрузите историю лид-таймов по топ-50 SKU за последний год, постройте гистограммы, посчитайте L, σL, CV. Сравните текущий страховой запас (если он заведён в ERP) с расчётным по Модели 2. Если разрыв > 20 % — у вас систематический риск дефицитов или перезапасов. Это точка входа для пилотного проекта.

    Не пытайтесь идеально моделировать весь каталог. Внедряйте итеративно: кластер → пилот → калибровка → масштабирование. Через 3–4 цикла у вас будет рабочая методология, понятная команде и дающая измеримый эффект на сервисе и оборачиваемости.

    Материал носит информационный характер и не заменяет консультации со специалистом по управлению цепочками поставок или финансовым аналитиком. Расчёт страховых запасов влияет на оборотный капитал и уровень сервиса; параметры моделей должны согласовываться с целями бизнеса и ограничениями бюджета. При принятии управленческих решений на основе описанных методов рекомендуется проводить пилотные проверки и валидацию на исторических данных.

    Maydo-DT.com.ru