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

Лечится это не запретом резервировать, а тремя правилами: у каждой брони есть тип, у типа есть срок, по истечении срока бронь снимается системой без участия человека. Ниже — как это устроено, как считается доступный к продаже остаток, кто получает товар при нехватке и сколько денег заморожено в просроченных резервах прямо сейчас.

Три вида резерва и разные правила для каждого

Ошибка почти всех складов — один резерв на все случаи. Между «клиент заплатил» и «клиент сказал по телефону, что подумает до пятницы» разница принципиальная, и обращаться с ними одинаково нельзя.

Вид резерваОснованиеСрок по умолчаниюЧто происходит по истечении
Под оплаченный заказПоступление денег или подтверждённая отгрузка по договору с отсрочкойДо отгрузки, без ограниченияНе снимается автоматически никогда; висящий дольше 30 дней уходит в отчёт руководителю
Под выставленный счётСчёт в системе с номером и датой3–5 рабочих дней, по сроку действия счётаСнимается автоматически, менеджеру уведомление за сутки и в момент снятия
Под устную договорённостьСлово менеджера, переписка, звонок24–48 часовСнимается автоматически, продлевается только выставлением счёта

Третий тип обычно и вызывает сопротивление: менеджеры считают, что двух суток мало. Практика показывает обратное — если за двое суток клиент не готов принять счёт, вероятность сделки уже низкая, а товар всё это время недоступен тем, кто готов платить сегодня. Компромисс, который работает: разрешить одно продление на 48 часов, второе — только через счёт.

сравнениеrezervirovanie-tovara-pod-zakazy--01
Сравнение трёх видов резерва: под оплату, под счёт и под устную договорённость

Три вертикальные колонки под общим заголовком «Три вида брони». Левая — «Под оплату»: срок «до отгрузки», снятие «никогда автоматически», помета «приоритет 1». Средняя — «Под счёт»: срок «3–5 рабочих дней», снятие «автоматически, уведомление за сутки», помета «приоритет 2». Правая — «Под устную договорённость»: срок «24–48 часов», снятие «автоматически, одно продление», помета «приоритет 3». Под колонками общая строка-предупреждение: «один общий резерв без срока = склад полон, товара нет». Чертёжный стиль, подписи по-русски.

Один общий бессрочный резерв — и есть та поломка, из-за которой склад полон, а товара нет

Срок брони и что происходит в момент снятия

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

  • Ходовые позиции с оборачиваемостью до 10 дней — бронь под счёт на 2 рабочих дня. Это те самые позиции, из-за которых потом возникают отказы «нет в наличии», и именно на них экономия дней даёт основной эффект.
  • Средняя оборачиваемость, 10–45 дней — 5 рабочих дней. Стандартный срок действия счёта, с ним не спорит ни один менеджер.
  • Редкие и заказные позиции — до 10 рабочих дней или до подтверждённой даты поставки. Такой товар всё равно никто больше не спросит, и держать его в брони почти ничего не стоит.
  • Товар под предоплату и штучный эксклюзив — резерв не создаётся вовсе. Здесь бронь без денег означает не отложенную продажу, а потерянную: пока один клиент думает, второй уходит.

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

В момент снятия должно происходить ровно четыре вещи, и все четыре — автоматически. Резерв снимается, количество возвращается в доступный к продаже остаток, менеджеру уходит уведомление (первое — за сутки до снятия, второе — по факту), строка попадает в отчёт «снятые резервы». Последнее важнее, чем кажется: по этому отчёту за месяц сразу видно, кто бронирует под реальные сделки, а кто — про запас.

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

Если бронь исчезает молча, менеджер узнаёт об этом в момент отгрузки — при клиенте. После двух таких случаев смена начинает страховаться: резервировать с запасом, дублировать брони на смежные позиции, вести собственную таблицу. Порядок становится хуже, чем был до правил. Уведомление за сутки и возможность продлить одним действием стоят одного дня работы в настройках и снимают почти всё сопротивление.

Доступный к продаже остаток считает система, а не менеджер

Что это значитДоступный к продаже остаток

Физический остаток минус резервы всех типов минус количество в открытых заданиях на отбор. Именно эта цифра, а не физический остаток, показывается менеджеру, отдаётся сайту и уходит в канал продаж. Ожидаемые поступления в неё не включаются: их можно показывать отдельной строкой «ожидается такого-то числа», но смешивать с наличием нельзя — иначе продаётся то, что ещё едет.

Ключевое слово в определении — «считает система». Как только вычитание резервов ложится на менеджера, который сверяется с отчётом глазами, ошибка становится вопросом времени: отчёт открыт полчаса назад, за это время двое коллег забронировали ту же позицию. Третье слагаемое — товар в открытых заданиях на отбор — забывают чаще всего, а он даёт самые непонятные расхождения: остаток верен, резервы верны, товара нет. Этот же разрыв мы разбирали в статье об учёте остатков в реальном времени — он там четвёртый по счёту и самый незаметный.

схема процессаrezervirovanie-tovara-pod-zakazy--02
Формула доступного остатка: физический минус резервы минус товар в открытых заданиях отбора

Схема-формула по горизонтали: крупный блок «Физический остаток в ячейках» знак минус блок «Резервы: под оплату, под счёт, под устную договорённость» знак минус блок «Товар в открытых заданиях на отбор» знак равно выделенный блок «Доступный к продаже». Ниже отдельной строкой в стороне — блок «Ожидается от поставщика», соединённый пунктиром с подписью «показывать отдельно, в доступный остаток не включать». Под третьим слагаемым помета «забывают чаще всего». Чертёжный стиль, подписи по-русски.

Третье слагаемое забывают чаще всего — и именно оно даёт самые непонятные расхождения

Приоритеты, когда резервов больше, чем товара

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

  1. 1Оплаченные заказы — в первую очередь и всегда. Внутри группы — по дате оплаты, от ранней к поздней.
  2. 2Счета с подтверждённой клиентом датой отгрузки — во вторую. Внутри группы — по дате счёта.
  3. 3Счета без подтверждения — в третью, тоже по дате.
  4. 4Устные брони — в последнюю, и первыми снимаются именно они. Это и есть содержательный смысл разделения резервов на типы: при нехватке система знает, чем пожертвовать.

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

Отдельно стоит решить вопрос частичного резерва: что делать, если под бронь на 10 штук доступно только 6. Вариантов два, и выбирать надо один на всю компанию. Либо бронь создаётся частично, а остаток строки уходит в очередь ожидания под ближайшую поставку. Либо бронь не создаётся вовсе, и менеджер разговаривает с клиентом до её создания. Первый вариант удобнее для оптовых отгрузок с довозом, второй — там, где заказ отгружается только целиком. Плохо только третье решение — оставить выбор на усмотрение менеджера: тогда одна и та же ситуация решается по-разному, и отчёт по бронам перестаёт что-либо значить.

Сколько заморожено в просроченных резервах

Считаем на складе с 800 позициями и смешанным каналом продаж: 500 заказов в месяц, средний заказ 8 000 ₽, маржа 25 % — то есть 2 000 ₽ маржи на заказ. Это та же модель, на которой считается цена задержки остатков в соседней статье кластера, и цифры двух расчётов складываются, а не дублируют друг друга. Срез делается на один произвольный день: это не средняя за период, а фотография текущего состояния.

Оборотные средства в просроченных резервах, срез на один день
Активных строк резерва на складе с 800 позициями180
Из них старше 14 дней, без оплаты и без отгрузки40 % → 72 строки
Средняя себестоимость одной строки резерва3 400 ₽
Заморожено в просроченных резервах: 72 × 3 400 ₽244 800 ₽
Стоимость этих денег при кредитной ставке 24 % годовых4 900 ₽/мес
Отказы «нет в наличии» по позициям, лежавшим в просроченной броне: 6 заказов × 2 000 ₽ маржи12 000 ₽/мес
Итого244 800 ₽ заморожено, 16 900 ₽ потерь в месяц, 202 800 ₽ в год

Увидеть свою цифру можно за час и без единого внедрения. Выгрузите все активные резервы с датой создания, добавьте столбец «дней в резерве» и умножьте количество на себестоимость. Отсортируйте по возрасту — верхние двадцать строк обычно и объясняют, почему на складе «ничего нет». Если в выгрузке окажется, что просроченных резервов меньше 15 %, эта статья вам не нужна: порядок уже есть, и трогать его не надо.

графикrezervirovanie-tovara-pod-zakazy--03
Гистограмма возраста 180 активных резервов: 72 строки старше 14 дней на 244 800 ₽

Гистограмма возраста резервов из четырёх столбцов. Ось X — возраст брони: «0–3 дня», «4–7 дней», «8–14 дней», «старше 14 дней». Ось Y — число строк резерва, всего 180. Последний столбец — 72 строки — выделен и подписан «244 800 ₽ заморожено». Над первыми тремя столбцами подпись «рабочие брони», над последним — «просроченные». Под графиком строка: «склад 800 позиций, средняя себестоимость строки резерва 3 400 ₽». Чертёжный стиль, подписи по-русски.

Хвост старше двух недель — это и есть замороженные деньги, которые видно за час выгрузкой

Когда резервирование только мешает

Резерв — не универсальное благо. Есть четыре ситуации, где он добавляет работы и не даёт ничего.

  • Розница со свободным остатком. Покупатель берёт товар с полки сам, и бронировать нечего. Отложенный товар на кассе — отдельная механика, и живёт она часами, а не днями: три часа до конца смены, дальше возврат в зал.
  • Товар в единственном экземпляре без предоплаты. Бронь здесь не откладывает продажу, а отменяет её: пока один клиент думает, второй, готовый платить, уходит. Правило простое — единичный товар держится только под деньги.
  • Запас на квартал вперёд. Если по позиции лежит трёхмесячный запас, конкуренции за неё нет и резерв ничего не защищает. Резервирование имеет смысл ровно там, где бывает дефицит, — обычно это 10–20 % справочника, и включать его на весь ассортимент незачем.
  • Меньше 30–50 заказов в месяц при одном менеджере. Человек помнит все свои обещания, а регламент добавит ему шагов и вызовет сопротивление. Возвращаться к вопросу стоит при втором менеджере, работающем с тем же складом.

И общее замечание про порядок. Резервирование не чинит неточные остатки — оно на них опирается. Если физический остаток расходится с учётным на 8–10 %, брони будут создаваться под товар, которого нет, и вся конструкция приоритетов начнёт работать вхолостую. Поэтому сначала точность: обязательное сканирование на операциях и циклический пересчёт, который держит расхождения в пределах пары процентов, а уже потом правила брони. Общий порядок ступеней и цену каждой мы разбирали в статье о том, где склад теряет деньги; отраслевую специфику для оптовой торговли, где резервы под счёт составляют основную массу броней, считаем отдельно.

Бронь без срока — это не резерв, а обещание, которое товар выполняет вместо человека.