Дефицит товара группы A стоит дистрибьютору 3–7% месячного оборота, а избыточный страховой запас замораживает 10–20% оборотных средств. ROP (точка перезаказа) и страховой запас — две формулы, которые балансируют между этими крайностями, и точность баланса определяется одной переменной: сервис-уровнем.

Что такое ROP: 1 точка, которая запускает закупку

ROP (Reorder Point) — уровень запаса, при достижении которого система или закупщик инициирует заказ поставщикуapics-rop. Когда остаток на складе падает до ROP, запускается процесс пополнения. Если формула корректна, новая партия приходит до того, как запас опустится ниже страхового уровня.

ROP — не «минимальный остаток» и не «запас на всякий случай». Это расчётная величина, которая учитывает три параметра: скорость расхода товара, время поставки и буфер на непредвиденные колебания спроса и сроков. Без ROP закупщик работает реактивно: замечает дефицит, когда он уже произошёл, и заказывает в аварийном режиме — с наценкой 30–50%, экспресс-доставкой и потерей клиентских заказов.

Как работает ROP в нормальном цикле: остаток = 740 единиц (ROP), система формирует заказ. За 14 дней lead time продаётся 560 единиц (40 × 14). Остаётся 180 — страховой запас. Приходит новая партия, запас восстанавливается. Страховой запас не тронут. Как работает ROP при сбое: остаток = 740, система формирует заказ. Спрос оказался на 30% выше среднего (52 единицы/день). За 14 дней продано 728 единиц. Остаётся 12 — страховой запас почти исчерпан, но дефицита нет. Поставка приходит вовремя.

Формула ROP: 3 переменных

ROP = d × LT + SS

Где d — средний дневной спрос (в единицах), LT — lead time (время от заказа до поступления товара на склад, в днях), SS — страховой запас (в единицах).

Пример: средний дневной спрос 40 единиц, lead time 14 дней, страховой запас 180 единиц. ROP = 40 × 14 + 180 = 740 единиц. Когда на складе остаётся 740 единиц, система формирует заказ. За 14 дней поставки будет израсходовано 560 единиц (40 × 14), останется 180 — это страховой запас, который покрывает колебания спроса и возможную задержку поставки.

Критично: d и LT должны быть рассчитаны по фактическим данным, а не «на глаз». Средний дневной спрос — это медиана или среднее по рабочим дням за 6–12 месяцев. Lead time — это не срок, который обещает поставщик, а фактическое среднее время от отправки заказа до момента, когда товар доступен к отгрузке на вашем складе (включая приёмку, проверку качества, размещение). Подробнее о расчёте — в статье расчёт точки заказа: формула и пример.

Ещё одна частая ошибка — использовать в формуле календарные дни вместо рабочих. Если ваш склад работает 5 дней в неделю, а вы подставляете средний спрос за календарный день, ROP окажется заниженным на 28%. Считайте d только по рабочим дням, а LT — в календарных днях (поставщик везёт и в выходные). Это расхождение между единицами измерения — один из самых распространённых источников дефицита.

Страховой запас: 2 источника неопределённости

Страховой запас — буфер, который компенсирует два источника неопределённости: колебания спроса и колебания lead timesilver-ss. Без страхового запаса любое отклонение от среднего (всплеск спроса или задержка поставки) приводит к дефициту.

Первый источник — вариабельность спроса. Если средний дневной спрос = 40 единиц, но в отдельные дни продажи достигают 60–70 (промоакция, сезонный всплеск, крупный заказ от одного клиента), накопленный за цикл пополнения (14 дней) спрос может превысить расчётный на 100–200 единиц. Страховой запас покрывает этот разрыв.

Второй источник — вариабельность lead time. Поставщик обещает 14 дней, но фактически привозит за 12–20. Если поставка задержалась на 4 дня, при среднем спросе 40 единиц/день «сверхплановый» расход — 160 единиц. Без страхового запаса — дефицит.

Если спрос стабилен (CV < 10%) и поставщик доставляет точно в срок (σLT ≈ 0), страховой запас можно держать минимальным — 3–5 дней спроса. Если спрос волатильный (CV > 25%) или lead time «гуляет» на ±5 дней, страховой запас вырастает до 20–40 дней спроса.

Распространённая ошибка — устанавливать страховой запас как фиксированный процент от среднего спроса (например, «всегда держим 30% сверху»). Этот подход игнорирует вариабельность: для стабильного SKU (CV 5%) 30% — перезапас, который замораживает капитал. Для нестабильного SKU (CV 40%) 30% — недостаточно, и дефицит неизбежен.

Формула страхового запаса: Z-коэффициент определяет всё

Упрощённая формула (стабильный lead time): SS = Z × σd × √LT

Расширенная формула (нестабильный lead time): SS = Z × √(LT × σd² + d² × σLT²)

Где Z — коэффициент сервис-уровня (из таблицы нормального распределения)z-table, σd — стандартное отклонение дневного спроса, LT — lead time в днях, σLT — стандартное отклонение lead time, d — средний дневной спрос.

Полная таблица Z-коэффициентов:

Сервис-уровеньZ-коэффициентКогда использовать
80%0,84Группа CZ — малозначимые, хаотичные SKU
85%1,04Группа CY — малозначимые, умеренная вариация
90%1,28Группа BY, BZ — средняя значимость
92%1,41Группа BX — средняя значимость, стабильный спрос
95%1,65Группа AY — высокая значимость, умеренная вариация
97,5%1,96Группа AX — высокая значимость, стабильный спрос
98%2,05Группа AZ — высокая значимость, хаотичный спрос
99%2,33Критичные позиции (производство остановится без них)
99,5%2,58Медицинские, аварийные запасы

Пример: Z = 1,65 (сервис-уровень 95%), σd = 12 единиц/день, LT = 14 дней. SS = 1,65 × 12 × √14 = 1,65 × 12 × 3,74 = 74 единицы.

При расширенной формуле с σLT = 3 дня и d = 40: SS = 1,65 × √(14 × 144 + 1600 × 9) = 1,65 × √(2 016 + 14 400) = 1,65 × √16 416 = 1,65 × 128,1 = 211 единиц. Разница почти в 3 раза — нестабильность lead time радикально увеличивает страховой запас.

Вывод: если хотите снизить запас, работайте не только с поставщиком по цене, но и с логистикой по стабильности сроков. Сокращение σLT с 3 до 1 дня при тех же условиях снижает SS с 211 до 86 единиц — экономия 125 единиц × стоимость хранения.

Сервис-уровень: 95% vs 99% — разница в 42% по запасу

Сервис-уровень — целевая вероятность того, что спрос будет удовлетворён из текущего запаса в рамках одного цикла пополнения. Z-коэффициент задаёт этот уровень.

Сервис-уровеньZ-коэффициентSS (при σd=12, LT=14)Прирост запаса vs 90%Стоимость SS при H=200 ₽
80%0,8438 единиц−33%7 600 ₽/год
90%1,2857 единицБазовый11 400 ₽/год
95%1,6574 единицы+30%14 800 ₽/год
97,5%1,9688 единиц+54%17 600 ₽/год
99%2,33105 единиц+84%21 000 ₽/год
99,5%2,58116 единиц+104%23 200 ₽/год

Переход с 95% на 99% увеличивает страховой запас на 42%. Переход с 99% на 99,5% — ещё на 10%. Каждый дополнительный процент сервис-уровня обходится всё дороже. Это фундаментальное свойство нормального распределения: хвосты дороги.

На ассортименте 5 000 SKU эффект масштаба: если установить 99% для всех позиций вместо дифференцированного подхода, совокупный страховой запас вырастет на 25–40%. При среднем запасе 50 млн ₽ это 12,5–20 млн ₽ «лишнего» капитала в страховых запасах группы C, которая даёт 5% выручки.

Дифференциация по ABC-XYZ: 9 сервис-уровней для 9 групп

Практическая рекомендация: не устанавливать один сервис-уровень для всего ассортимента. Матрица ABC-XYZ делит ассортимент на 9 групп, для каждой — свой Z.

ГруппаСервис-уровеньZСтратегия
AX97–99%1,96–2,33Высокий буфер, автоматический ROP, дефицит недопустим
AY95–97%1,65–1,96Средний буфер, еженедельный пересмотр прогноза
AZ93–95%1,48–1,65Повышенный буфер, ручной контроль закупок
BX93–95%1,48–1,65Стандартный буфер, автоматический ROP
BY90–93%1,28–1,48Средний буфер, ROP
BZ85–90%1,04–1,28Консервативный буфер, допустим дефицит
CX90–93%1,28–1,48Минимальный буфер, автоматический ROP
CY80–85%0,84–1,04Минимальный буфер, заказ по потребности
CZ75–80%0,67–0,84Без буфера, заказ «под клиента» или вывод из ассортимента

Эффект дифференциации: при ассортименте 5 000 SKU с однородным Z = 1,65 совокупный страховой запас = X. При дифференцированном Z (по таблице выше) совокупный запас = 0,75–0,85X. Экономия 15–25% при том же или лучшем fill rate — потому что дефицит допускается только для групп, где его стоимость минимальна.

Подробнее о матрице — ABC-XYZ анализ.

Влияние вариабельности спроса: CV определяет объём буфера

Коэффициент вариации (CV = σd / d × 100%) — ключевой параметр, определяющий «стоимость» страхового запаса. Сравним три SKU с одинаковым средним спросом, но разным CV:

ПараметрSKU-1 (CV 8%)SKU-2 (CV 20%)SKU-3 (CV 45%)
d (ед/день)404040
σd (ед/день)3,2818
LT (дней)141414
Z (95%)1,651,651,65
SS (единиц)2049111
SS в днях спроса0,51,22,8
SS × H (₽/год, при H=200)4 0009 80022 200

При одинаковом среднем спросе SKU с CV 45% требует в 5,5 раз больше страхового запаса, чем SKU с CV 8%. Это объясняет, почему фиксированный процент (например, «30% от среднемесячного спроса» = 12 дней) одновременно избыточен для стабильных и недостаточен для волатильных позиций.

Для SKU с CV > 50% (группа Z) формула с нормальным распределением теряет точность. Спрос таких позиций не нормален — он содержит длинные периоды нулевых продаж, прерываемые всплесками. Для них лучше использовать модель Кростона (Croston) или переводить на заказ «под клиента» с нулевым складским запасом.

Расчёт в Excel: пошаговая настройка за 20 минут

Шаг 1. Создайте таблицу с колонками: SKU, Наименование, d, σd, LT, σLT, Z, SS (упрощённая), SS (расширенная), ROP.

Шаг 2. Заполните d (средний дневной спрос): =СУММ(продажи за 12 мес) / 250.

Шаг 3. Заполните σd: =СТАНДОТКЛОН.В(дневные_продажи). Если данные помесячные: =СТАНДОТКЛОН.В(месячные) / КОРЕНЬ(21).

Шаг 4. Заполните LT и σLT: выгрузите из учётной системы пары дат (дата заказа, дата оприходования) по каждому поставщику. LT = СРЗНАЧ(разности). σLT = СТАНДОТКЛОН.В(разности).

Шаг 5. Установите Z по группам ABC-XYZ (из таблицы Z-коэффициентов выше).

Шаг 6. Рассчитайте SS. Упрощённая: =Z × σd × КОРЕНЬ(LT). Расширенная: =Z × КОРЕНЬ(LT × σd^2 + d^2 × σLT^2). Используйте расширенную для SKU, где σLT > 1 дня.

Шаг 7. Рассчитайте ROP: =d × LT + SS.

Шаг 8. Добавьте столбец «Текущий остаток» и условное форматирование: красный = остаток ≤ ROP, жёлтый = остаток ≤ ROP × 1,3, зелёный = остаток > ROP × 1,3.

Этот расчёт работает до 1 000 SKU. На больших объёмах автоматизируйте в WMS или 1С.

Типичные ошибки при настройке Excel-расчёта стоит знать заранее. Первая — использование функции СТАНДОТКЛОН.Г вместо СТАНДОТКЛОН.В. Функция «Г» (генеральная совокупность) занижает σd на 5–15% при выборке менее 30 точек, что даёт заниженный страховой запас и неизбежные дефициты. Вторая — расчёт σd по месячным продажам без пересчёта в дневные. Если вы считаете σ по помесячным данным и подставляете в формулу SS = Z × σ_мес × √(LT / 21), результат будет корректным — но только при условии, что LT тоже выражен в рабочих днях. Смешение рабочих и календарных дней — третья ошибка, которая даёт отклонение SS на 15–30%.

Перед запуском расчёта в продуктив проверьте формулу на 5–10 SKU, для которых вы знаете фактический уровень дефицитов. Если формула показывает SS = 40 единиц, а по факту дефициты возникают при запасе ниже 70 — значит, входные данные (d, σd, LT, σLT) содержат ошибку. Диагностика занимает 30–60 минут, но без неё вы рискуете автоматизировать неточный расчёт на весь ассортимент.

Кейс: снижение stockout на 70% за 2 месяца

Компания — дистрибьютор автозапчастей. Ассортимент 11 400 SKU, склад 4 200 м², оборот 520 млн ₽ в год. Stockout rate по группе A — 14% (в любой момент 14% ключевых SKU были в дефиците). Fill rate — 82%. Причина: страховой запас рассчитывался как «двухнедельная норма продаж» для всех позиций одинаково.

Что сделали: (1) провели ABC-XYZ анализ, выделили 9 групп — группа AX (420 SKU, 52% выручки), AY (280 SKU, 18% выручки), AZ (110 SKU, 10% выручки); (2) рассчитали σd и σLT по фактическим данным за 18 месяцев для каждого SKU — среднее σLT оказалось 4,2 дня (поставщик декларировал стабильные сроки, но факт расходился на 30%); (3) установили дифференцированные сервис-уровни: AX — 98%, AY — 96%, AZ — 93%, BX — 95%, BY — 92%, BZ — 88%, CX — 90%, CY — 85%, CZ — 80%; (4) пересчитали SS и ROP по расширенной формуле (с σLT) для каждого SKU; (5) настроили автоматический мониторинг ROP в учётной системе.

Результат через 2 месяца: stockout rate по группе A снизился с 14% до 4,2% (−70%). Fill rate вырос с 82% до 93%. Средний запас при этом вырос всего на 6% (с 74 до 78,5 млн ₽), потому что увеличение буфера для группы A было скомпенсировано снижением избыточного запаса для групп C — у 1 800 SKU группы C страховой запас был сокращён до 3–5 дней вместо 14.

Через 4 месяца: stockout rate по группе A — 3,1%. Fill rate — 94,8%. Средний запас стабилизировался на уровне 76 млн ₽ (ниже стартового при лучшем сервисе). Компания прекратила аварийные закупки по 15 наиболее критичным SKU — экономия на экспресс-доставке составила 1,8 млн ₽ за квартал.

Финансовый итог: вложения в проект — 350 тыс. ₽ (аналитик 2 недели + доработка учётной системы). Экономия за первый год — 7,2 млн ₽ (экспресс-доставка) + рост продаж за счёт улучшения fill rate (оценочно 12–18 млн ₽). ROI проекта — более 5 000%.

FAQ

Как рассчитать σd (стандартное отклонение спроса)? Выгрузите дневные продажи по SKU за 12 месяцев. В Excel: =СТАНДОТКЛОН.В(диапазон) или STDEV.S(range). Если данные помесячные, делите σ на √(количество рабочих дней в месяце) для перевода в дневную метрику. Минимум — 30 точек данных для достоверного результата. Если точек меньше 30, используйте консервативный Z (на ступень выше целевого).

ROP рассчитан, но дефициты всё равно случаются — в чём причина? Четыре типичные причины: (1) данные о lead time устарели — фактический LT вырос, а ROP рассчитан по старому; (2) спрос изменился — нужен пересчёт d и σd; (3) запас «заморожен» под другие заказы (резервы, предзаказы) — физически на складе 500 единиц, но 200 зарезервированы, и «свободный» остаток — 300; (4) ROP мониторится раз в неделю, а не ежедневно — система не успевает отреагировать. Решение для (3): рассчитывайте ROP от «свободного» остатка, а не от «общего».

Можно ли использовать ROP без WMS? Да. ROP работает в Excel, 1С, любой учётной системе. Главное — автоматический мониторинг остатков и алерт при достижении порога. В 1С это реализуется через отчёт «Остатки ниже нормы» с настроенными минимальными уровнями по SKU.

Как часто пересчитывать ROP и SS? Для стабильных SKU (группа X) — раз в квартал. Для волатильных (Y, Z) — ежемесячно. При смене поставщика, изменении lead time или резком изменении спроса — немедленно. Подробнее о метриках — в материале управление запасами: 8 ключевых метрик.

Страховой запас = мёртвый капитал? Нет. Страховой запас — это рабочий буфер, который используется при каждом всплеске спроса или задержке поставки. Мёртвый капитал — это запас, который не продаётся более 6 месяцев. Если страховой запас рассчитан по формуле, он «работает» регулярно и пополняется при каждом заказе. Признак правильного SS — он периодически снижается до 30–50% от расчётного (при всплесках) и восстанавливается при пополнении.

Что делать, если формула даёт нереально большой SS? Три причины: (1) σd слишком высокое из-за нескольких экстремальных дней (удалите аномалии или используйте медиану); (2) σLT слишком высокое — работайте над стабилизацией поставок; (3) Z установлен слишком высоко для данной группы (пересмотрите сервис-уровень — 99% нужен не всем). Если после коррекции SS всё равно превышает 30 дней спроса, рассмотрите перевод SKU на заказ «под клиента» или поиск локального поставщика с коротким LT.