Управление ассортиментом: почему товара может не быть?

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, черт побери, до сих пор случаются неувязки?

Потому что все дело в природе нашего мира. Представьте, что у вас есть статичная матрица товаров: скажем, 500 наименований для продуктового магазинчика в жилом районе.

Сначала посмотрим на продукт, не имеющий срока годности. Например, это будет туалетная бумага. Очевидно, что она иногда нужна жителям окружающих домов, без нее они будут испытывать моральные страдания, и раз уж они зашли за ней, то почему бы не купить колбасы, водки и торт, правильно? Ну, или хотя бы кефира.

Туалетная бумага не портится и не пропадает, она просто невероятно дешева, не дает вам почти никакой прибыли и занимает до фига места. Вы хотите держать ее как можно меньше, но всегда в наличии, чтобы не было такого, что кто-то за ней зашел, а ее нет. Вам еще повезло, что у нее нет 10 разных цветов, фактур и размеров, как у одежды: это все же не модный магазин.

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

Проблема в том, что машина приходит по вторникам и пятницам, и вам нужно предсказывать запас бумаги на промежутки между этими днями. Поскольку ее потребление носит довольно творческий характер, вы используете какую-то функцию (скорее всего, исторические данные о продажах с той или иной степенью усреднения) и держите небольшой запас, чтобы он не исчерпался.

Появляются две новые сущности: предсказание спроса и прогнозирование запаса.

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

• минимум запаса на складе;

• но при этом покрытие всех потребностей клиентов при разных флуктуациях спроса.

И еще есть функция времени, поскольку поставки идут не мгновенно и их надо планировать.

Вы можете использовать простой движок типа минимакса: определить минимум и максимум рулонов на складе. Например: «Когда остается меньше 4 штук, дозаказать в следующую поставку до 25». Это хорошо работает на малых числах.

Теперь давайте чуть усложним задачу. Машина не одна, есть разные поставщики. Каждый привозит что-то свое, по своему графику. Стало чуть сложнее, но все равно терпимо, правда?

Ассортимент поставщиков частично пересекается. Иногда выгоднее брать маленькие партии у одного, а побольше у другого. И когда-то выгоднее терпеть, пока не потребуется большая партия товара. Ладно, вы пишете еще модуль — и все более-менее хорошо.

Поставщики часто меняют условия и сами меняются. Один может повысить цены, второй — уйти с рынка, третий — опаздывать на один-два дня, четвертый всегда задерживает заказ… Адище? Еще нет. Один хочет полную предоплату, второй готов торговать под реализацию, третий дает вам отсрочку платежа на три недели и т. д.

Получается большая сложная модель, которую уверенно перечеркивает одно ДТП с любой из машин поставщиков. И такой моделью занимается закупка.

Чтобы такого не случалось, в сети ставят на входе конденсатор: собственный склад, который собирает все с поставщиков и развозит по точкам. Получается стабильнее и с более понятными зонами ответственности. Но все равно риски поставщиков в духе «у нас брак по всей партии, и теперь упс» лежат на закупке.

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

К счастью, в реальном мире задача сводится не к «100% наличия всегда», а условно к тому, чтобы удовлетворить спрос с вероятностью 95%, потратив минимум денег. Можно подтянуться до 96, 97 или 98%, но каждый новый процент будет дороже, и почти на порядок.