По моим магазинам медианный срок доставки составил 2 дня, но закупать товар с запасом на этот срок было бы ошибкой. Эти данные получены по 20 877 доставленным заказам за 90 дней и описывают путь заказа к покупателю, а не пополнение склада. Когда я решаю, сколько запаса держать на складе, мне нужен другой промежуток: от решения заказать товар до момента, когда новая партия станет доступна для продажи. Между этими событиями деньги уже могут уйти поставщику, а продавать ещё нечего. Именно этот разрыв я должен покрыть остатком.
Для меня вопрос о запасе начинается не с вместимости склада, а с суммы, которую придётся вынуть из оборота. Запас на две недели и на два месяца означает разные обязательства перед бизнесом, даже если товар одинаковый и цена закупки не меняется. В длинном запасе лежат деньги, которые могли бы оплатить следующую поставку другого товара, рекламу или текущие расходы. При этом маленький остаток тоже не бесплатен: если товар закончится, я потеряю возможность заработать на спросе, который уже есть. Поэтому я сначала считаю потребность в штуках, а затем проверяю, могу ли позволить себе такую закупку.
Сначала считаю скорость продаж без искажений от отсутствия товара
Чтобы понять, на сколько дней хватит запаса товара, я делю доступный остаток на ожидаемое количество проданных единиц в день. Здесь нужны именно штуки, а не количество заказов: состав заказа может отличаться. Для оценки скорости я беру продажи за выбранный период и делю их на дни, когда товар действительно был доступен покупателю. Если включить в знаменатель дни без остатка, получится искусственно низкий спрос. По такому расчёту я закажу мало, снова останусь без товара и начну принимать нехватку запаса за слабые продажи.
Но даже продажи за дни наличия нельзя автоматически переносить в будущее. Я проверяю, с какой ценой, рекламой и участием в акциях получилась эта скорость, а затем сравниваю условия с планом на следующую поставку. Всплеск после продвижения не становится постоянным спросом только потому, что попал в отчёт. Обратная ситуация тоже опасна: перед ожидаемым ростом спроса средняя за спокойный период даст слишком маленькую закупку. Если истории недостаточно, я прямо считаю прогноз предварительным и стараюсь сохранить возможность пересмотреть следующую партию.
Ещё я разделяю запас по местам, из которых он действительно может обслужить нужный спрос. Общий остаток по всем складам способен выглядеть достаточным, пока в нужной точке товар заканчивается, а перемещение требует времени. Нельзя считать эти единицы мгновенно взаимозаменяемыми. Для оценки покрытия я использую доступный остаток, а для анализа уже сложившегося оборота смотрю движение товара за период. Разницу между этими расчётами я подробнее объясняю в статье о том, как рассчитать оборачиваемость в днях и понять, хватает ли запаса.
Какой срок поставки закладывать в нормативный запас
Под нормативным запасом для маркетплейса я понимаю рабочую потребность конкретного товара при выбранном порядке пополнения, а не универсальное число дней. Срок пополнения я отсчитываю от размещения заказа поставщику до доступности товара для продажи. Внутри могут оказаться ожидание производства, подготовка партии, перевозка, очередь на отгрузку и приёмка. Если поставщик быстро передал груз перевозчику, это ещё не значит, что мой склад быстро получил продаваемый остаток. Поэтому я сверяю даты по завершённым поставкам, а обещание поставщика держу отдельно от фактического срока.
В моей выборке 80% доставленных заказов доехали за 4 дня и меньше, а медианный срок составил 2 дня. Это помогает описать доставку покупателю: значительная часть уже доставленных заказов прошла этот путь достаточно быстро. Но в этих числах нет ожидания закупки у поставщика и подготовки будущей партии. Кроме того, выборка состоит из доставленных заказов, поэтому по ней нельзя судить обо всех незавершённых отправлениях на дату среза. Я не могу вывести из неё ни срок пополнения, ни нужный страховой запас, даже если очень хочется получить готовый норматив из красивого графика.
Не подставляйте срок доставки покупателю вместо срока пополнения склада. Для расчёта запаса нужно время до появления новой партии в продаже. Медиана доставки 2 дня и доля 80% за 4 дня и меньше относятся к другому процессу. Если перепутать эти интервалы, аккуратная формула даст неправильную закупку.
Сколько дней заказ едет до покупателя
Доля доставленных заказов по сроку доставки
Формула запаса товара и порядок расчёта закупки
- Сначала определяю ожидаемую дневную скорость в штуках. Продажи за подходящий период делю на дни доступности товара, затем проверяю, соответствуют ли цена, реклама и сезон будущим условиям.
- Затем задаю горизонт покрытия. При закупках по расписанию складываю срок пополнения и интервал до следующего пересмотра заказа, поскольку следующая заказанная партия тоже приедет не сразу.
- Умножаю ожидаемые продажи в день на горизонт покрытия. Получаю базовую потребность в штуках, а при заметном изменении спроса использую сумму дневного прогноза на этот горизонт вместо постоянной средней.
- Добавляю страховой запас, рассчитанный на неопределённость этого же горизонта. Базовая потребность плюс страховой запас дают целевую складскую позицию.
- Считаю текущую складскую позицию: доступный незарезервированный остаток плюс подтверждённые поступления, которые успеют к нужной дате, минус обязательства, ещё не учтённые в резерве. Уже исключённые из доступного остатка резервы повторно не вычитаю.
- Из целевой позиции вычитаю текущую. Если потребность не положительная, новая закупка по этому расчёту не нужна; если положительная, проверяю её с учётом упаковок и минимальной партии поставщика.
- После этого раскладываю остаток и поступления по датам. Итогового количества может хватать на весь горизонт, но поздняя поставка не закроет нехватку, которая возникнет до её приезда.
В свёрнутом виде моя формула выглядит так: целевая позиция = ожидаемый спрос за горизонт покрытия + страховой запас. Формула закупки получается следующим действием: целевая позиция − текущая складская позиция, если результат положительный. Я специально разделяю эти величины, потому что нужный общий запас и количество к заказу — разные числа. Иначе легко заказать всю нормативную потребность заново, забыв про товар на складе или в пути. После округления до условий поставщика я обязательно пересчитываю покрытие в днях и стоимость партии.
Если остатки контролируются постоянно, можно использовать другой порядок: размещать заказ при достижении точки заказа. Тогда точка заказа покрывает ожидаемый спрос за срок пополнения и страховую часть, а размер самой партии задаётся отдельно. Я не смешиваю эту схему с закупками по расписанию, иначе в расчёте появляются лишние дни покрытия. Связь между фактическим оборотом и ожиданием следующей партии я разбираю подробнее в статье о том, как связывать оборачиваемость на Ozon со сроками поставки. Для повторения расчёта сначала достаточно выбрать один понятный порядок пополнения и соблюдать его.
Как посчитать страховой запас товара и не спрятать в нём ошибку
Страховой запас товара я выделяю отдельно от обычной потребности, чтобы понимать, от какого отклонения он защищает. Для этого смотрю не на самый большой день продаж, а на суммарный спрос за интервалы, сопоставимые с горизонтом покрытия. Если за такой промежуток регулярно продаётся больше среднего прогноза, разница показывает возможный размер буфера. Выбор защищённого уровня спроса зависит от того, насколько дорого для меня отсутствие товара по сравнению с лишним остатком. Универсальной доли здесь нет, а без истории спроса я не могу честно назвать точную величину страховки.
Разброс сроков поставки я проверяю рядом с разбросом спроса, а не в отдельной таблице, которую потом никто не открывает. Полезно восстановить по прошлым циклам, сколько товара требовалось от заказа до фактической доступности следующей партии, и сравнить это с прогнозом на тот момент. Так виден общий промах, вызванный продажами и задержкой поступления. Если в основной срок уже заложен большой резерв на задержку, повторно добавлять такую же защиту через страховой запас нельзя без проверки. Иначе несколько осторожных поправок складываются в закупку, происхождение которой я уже не могу объяснить.
Конкретная ошибка — брать продажи на пике акции за обычную скорость, умножать их на срок с запасом, а сверху добавлять ещё товар на всякий случай. После окончания акции скорость снижается, но закупленная партия остаётся прежней. Денежный результат этой ошибки я считаю как лишние единицы, умноженные на закупочную себестоимость с доведением до продаваемого состояния. Это ещё не целиком убыток: товар может продаться позднее, однако деньги уже недоступны для других задач. А вот дополнительные расходы на хранение, финансирование и потеря выручки из-за вынужденной скидки могут превратить лишний запас в реальную потерю денег.
Почему запас на две недели и на два месяца по-разному нагружает деньги
После расчёта в штуках я умножаю количество на полную закупочную себестоимость единицы. В неё для этой задачи включаю закупочную цену и расходы на доведение товара до состояния, в котором его можно продавать, без повторного учёта одних и тех же затрат. Результат показывает стоимость денег, связанных в товаре, а не будущую выручку по розничной цене. Отдельно считаю уже оплаченные партии в пути и авансы, чтобы не забыть о деньгах, которые ушли, хотя остаток ещё не появился. Если поставщик даёт отсрочку, стоимость запаса и сумма уже оплаченных денег будут различаться.
При одинаковой скорости продаж запас на два месяца требует большей закупки, чем запас на две недели, но сравнение этим не заканчивается. Длинное покрытие дольше держит капитал в одном товаре и оставляет больше времени для изменения цены, спроса или условий продажи. Короткое покрытие, в свою очередь, может потребовать более частых поставок и оказаться ненадёжным при длинном сроке пополнения. Поэтому я сравниваю стоимость товара, расходы на поставки и хранение, а также риск остаться без остатка. Выбирать короткий запас только потому, что он дешевле на бумаге, так же опасно, как закупать длинный ради спокойствия.
Для проверки лишней закупки я сначала вычитаю стоимость рабочего варианта запаса из стоимости увеличенного. Полученную разницу сравниваю с доступными деньгами после обязательных платежей и уже согласованных поставок. Если закупка финансируется заёмными средствами, считаю расходы по фактической ставке и времени использования денег, не подставляя чужие условия. Затем сопоставляю дополнительные затраты с ожидаемой маржой от продаж, которые увеличенный запас действительно позволит не потерять. Скидка поставщика имеет смысл только после этой проверки, потому что экономия на единице не гарантирует выгоду всей партии.
Что я проверю в запасах завтра
Я начну с товара, у которого в остатке связано заметно больше денег, чем у остальных, и соберу по нему расчёт на одном листе. Рядом поставлю доступные штуки, ожидаемую скорость, фактический срок пополнения, подтверждённые поступления и стоимость закупки. Затем отдельно подпишу базовую потребность и страховой запас, чтобы страховка перестала быть необъяснимой частью общей партии. Мне нужен именно такой связанный расчёт, поэтому я и сделал SellOps, когда не нашёл готовой аналитики, которой доверял бы; общий подход к работе с сервисом описан здесь. Но проверить исходные данные и повторить формулу можно в обычной таблице.
После расчёта я пересмотрю ещё не размещённую закупку и проверю, какую её часть действительно нужно заказывать сейчас. Если остаток выше целевой позиции, сначала остановлю пополнение и выясню, снизился ли спрос или проблема только в сроках поступления. Страховой запас тоже пересмотрю: старый буфер не должен сохраняться автоматически после изменения продаж или поставщика. Если товар уже накапливается, сравню варианты продажи, перемещения и сокращения будущих заказов по ожидаемому денежному результату, а не по желанию быстрее очистить склад. Практический результат этой работы — исправленный заказ поставщику и понятная сумма денег, которая останется в обороте.
Хотите увидеть эти цифры по своим товарам?
Попробовать SellOps бесплатно