Данная статья носит информативный характер: я не буду подробно описывать алгоритмы расчета и наши модели, однако, я расскажу логику, на которой базируется вся математическая часть.
Первый бизнес-кейс
Компания хочет понять сколько у неё потерь (очень круто, когда компания сразу знает, что хочет), и как можно их уменьшить.
Цель поставлена. Теперь немного о компании: Федеральная сеть 400 розничных магазинов. Пилотную версию проекта договорились проводить с одной категорией товара – 20 sku, средний срок годности продукта 15 дней.
Структура работы выглядит следующим образом:
- Анализ деятельности компании. На данном этапе анализируются бизнес процессы компании: системы пополнения, график поставок, остатки.
- На втором этапе нужно понять, что считать «потерей», откуда она возникает, как оценить величину потерь и тд. Куча открытых вопросов.
- Предложить решение, позволяющее сократить потери.
Кажется, все просто. Нужно понимать, что оптимизацию можно реализовать в бизнес процессах (изменение графика поставок, учёт пробок…) и IT решение, базирующиеся на внедрении новых технологий, дающих business value. В последнем случае в компании не нужно делать серьезные изменения, такие как переобучение персонала, изменение структуры работы, обновление инфраструктуры. В данной статье буду говорить только об IT решении.
Немного об экономии в больших компаниях
Например, просрочка единицы каждого sku в день не кажется существенной при анализе небольшой группы – 20 sku. Однако, давайте посчитаем месячные чистые потери:
31(дней)*400(магазинов)*20(количество sku)*1=240 000 единиц.
Пусть средняя цена закупки будет 30р, то есть 7.2 млн рублей в месяц чистых потерь. Казалось бы, всего 1 единица товара в день, единичка миллионы бережет.
На первом этапе анализа компании будем под потерями учитывать недопродажи компании и просроченными товары. Осталось понять, как их считать. В данном проекте нам очень повезло, так как у клиента была статистика просроченного товара, иначе пришлось бы искусственно их моделировать.
Попробуем разобраться с недопродажами
Под недопродажей будем считать ситуацию, когда наблюдается OOS (out of stock), то есть приходится моделировать ситуацию в духе «что было бы, если бы у компании было достаточно остатков, чтобы удовлетворить спрос покупателей». В данных клиента есть остатки в разрезе Shop-Sku-Day, что радует. Стоит заметить, что остатки считаются на конец рабочего дня.
Учитывая вышеописанную логику, необходимо найти дни с учетом товара в пути, в которые остатки были нулевыми, и заменить продажу в этот день на среднюю за последнюю неделю. Отметим, что если в такой день по факту не было продаж, то недопродажей считаем среднюю продажу за последние 7 дней, иначе недопродажа = недельная средняя – факт продажа.
По сути, данные о продажах говорят нам о той части спроса, которую удалось удовлетворить, однако это не есть исходный спрос покупателей.
Очистка от OOS и некоторые другие процедуры, очищающие данные, например, от такой ситуации: если на полке нет кока-колы, то часть покупателей купит пепси; позволяют получить реальный спрос со стороны покупателя.
Супер! Мы получили динамику недопродаж в разрезе Shop-Sku-Day и реальный спрос со стороны покупателя. Дело осталось за малым: перевести все в деньги – недопродажи умножить на маржу, а просрочку на закупочную цену. Скажу, что в данной компании суммарные потери были 6.6 млн рублей в месяц —примерно 8% от оборота данной группы sku. Все расчеты проводились на реальных данных клиента, результаты полностью соответствуют действительности. В России, к сожалению, анализу потерь мало кто уделяет этому пристальное внимание, поэтому потери составляют такой большой процент от оборота во многих компаниях.
Первые этапы выполнены. Можно рапортовать менеджменту, что у вас потери в 6.6 млн! На что получим весьма логичный ответ – И что? Предлагайте решение и обосновывайте его экономику!
Окей, нужно придумать, как снизить косты. Одно из наших IT решений подобных задач – облачный сервис по прогнозированию продаж на базе Microsoft Azure. Данное решение не требует серьезных затрат на его внедрение и интеграцию в бизнес. Кроме того, в сервисе используются облачные технологии, что позволяет не загружать мощности клиента.
Компания прогнозировала продажи на основе скользящей средней + страховой запас, а в сервисе заложены более серьезные методы прогнозирования (о них попозже). Замечу, что в компании была средняя точность прогнозирования порядка 50%, а наш сервис на трехлетних данных клиента показывает точность 70%.
Дневную точность считаем по следующей формуле:
Если нужно агрегировать, то считаем как средневзвешенную.
Самая важная часть проекта – показать реальный профит от нашего продукта. Отмечу, что, естественно, точность прогноза дает выгоды, однако, в каждой компании разные. Это связано с их бизнес процессами, например, график поставок не позволяет сделать заказ сегодня, кратность заказа — количество йогуртов должно быть кратно 24, или минимальный заказ должен быть 100 штук. Поэтому необходимо смоделировать всю систему изнутри: берем график поставок клиента, условия заказа, плечи доставок и нужную загруженность транспорта. И уже в этой среде моделируем потери при разной точности, чтобы показать реальный business value.
Мы должны смоделировать остатки клиента, поставки товара, продажи, просроченную продукцию, закладывая разную точность прогноза.
Итак, мы построили модель, в которой заложили следующие предпосылки:
- Модель включает в себя вероятностную часть: покупатели с большой вероятностью покупают более свежий товар, чем «долго лежащий».
- В моделировании использовалась восстановленная функция спроса: фактические продажи были очищены от OOS и эффекта товаров-субститутов.
- Остатки и поставки моделировались с учетом графиков, сроков поставок, условий заказа.
- Издержки от недопродажи были посчитаны как разность между (спросом и модельными продажами)*маржу.
- Издержки от брака были посчитаны, как сумма всех просроченных товаров в денежном выражении, использовались закупочные цены.
Зависимость потерь от точности прогнозирования:
Теперь явно видно, что при точности порядка 70% экономия составит примерно 1.2 млн рублей в месяц, что неплохо, учитывая, что пилотная версия строилась на группе из 20 sku.
Возникает интересный момент: у клиента 12 дневный страховой запас, однако, имея хороший прогноз, его можно уменьшить и получить дополнительные выгоды. При моделировании все исходные данные системы не меняются, кроме страхового запаса, что позволяет, не уменьшая уровень сервиса для покупателя, снизить косты. Дополнительно отмечу, что все смоделированные заказы согласуются с графиком поставок клиента, а также соблюдаться условия заказов, то есть смоделированная система полностью соответствует бизнес процессам компании.
График – лучший инструмент для доказательства:
Теперь при точности 70% экономия составит 4.6 миллиона рублей в месяц! Данный результат, очевидно, очень крутой. Удивительно, как внедрение сервиса по прогнозированию, может дать экономию средств клиента в размере 4.6 млн рублей в месяц только на 20 sku!
Выводы
Таким образом, с помощью IT решения нам удалось сэкономить клиенту 4.6 млн рублей в месяц на пилотной версии. Сейчас мы взяли в разработку оставшиеся группы товара для анализа и выявление профита, который даст наш облачный сервис по прогнозированию.
Надеюсь, что статья была полезна. В следующей статье будет подробно рассказано про работу нашего сервиса.
Буду рад ответить на ваши вопросы.
Спасибо за внимание.
Комментарии (12)
Mishka-01
07.10.2017 18:26Как Вы это сделали?
фактические продажи были очищены от OOS и эффекта товаров-субститутов
и
Модель включает в себя вероятностную часть: покупатели с большой вероятностью покупают более свежий товар, чем «долго лежащий».
Какие методы прогнозирования есть в Вашей системе? (хотя бы вкратце).
P.S. Магазин Лента?)PavelGonchar Автор
07.10.2017 18:401. Самый простой метод — замена дней, в которые не было остатков, на «типичную» продажу для этого продукта в этот день в этом магазине в этом городе. На практике используем более продвинутые методы. К сожалению, про товары субституты не могу ответить, так как это наша разработка.
2. Легко. Умножаем вероятность покупки данной партии товара (знаем, когда товар выложили на полку и сколько он может там лежать) на общий спрос. Вероятности можно брать, например, такими: 0.5 — на самый свежий товар, (1-0.5)/(кол-во партий в продажи -1).
3. Методы самые разные — в ядре используется порядка 12 методов. От линейной регрессии до градиентного бустинга решающих деревьев. Планирую написать следующую статью, в которой опишу подробнее.OlegUV
08.10.2017 17:48Да, очень интересно про методы прогноза, поскольку по личному опыту в реальности все они дают примерно одинаковую (ретроспективную) точность.
Jon7
08.10.2017 10:27Таким образом, с помощью IT решения нам удалось сэкономить клиенту 4.6 млн рублей в месяц на пилотной версии.
Это не экономия. Повышение оборачиваемости капитала да, повышение ликвидности и деловой активности тоже да (а это более ценно чем экономия), но экономия нет. Совокупный объем расходов на приобретение остаётся неизменным.
Вы улучшаете качественные показатели, акционеры будут довольны, а экономия это количественный показатель.
Вы, если так можно сказать, сэкономили оборотный торговый капитал и не в месяц, а всего. Но это очень серьезный успех, вы улучшили структуру капитала, заёмный капитал дорогой, проценты не малые и постоянно, но дело не только в процентах, вы повышаете стоимость акций. Можете принимать заслуженные поздравления.
ArjLover
Хорошая статья, красивая. Но у меня вопрос — почему когда я захожу в продуктовый в Европе, я всегда вижу продукты со скидкой 30%-50% (дата годности завтра-сегодня), но никогда такого не вижу на Родине? Гении статистики?
PavelGonchar Автор
Некоторые сети реализуют подобные акции.
Однако, действительно на рынке в целом мало компаний, проводящих такие промо.
Я думаю, что в основном это происходит по следующим причинам:
1. Правильно выстроенные бизнес процессы
2. Понимание (!) ценности информации, которую компания может собирать и анализировать
3. Отношение к потерям
К сожалению, любые данные, с которыми приходится работать в ужасном виде. Кроме того, многую информацию компании вообще не собирают.
Про потери вообще молчу.
Мне кажется, что такое отношение связано с тем, что отрасль еще молода.
Например, английская компания Tesco в 1989 (!) году внедрила систему ежедневного пополнения запасов, что позволило уменьшить средний уровень запасов с 21 до 12 дней и улучшить качество обсуживанияклиентов. (пример из книги Бережливое производство) То есть в 1989г компания поняла и посчитала свои потери от оверстока и решила проблему.
Естественно, более опытные компании больше понимают специфику бизнес, а значит, и больше могут предложить своим покупателям. Российский рынок к такому еще не готов.
Спасибо за интересный вопрос.
ArjLover
Это не промо — это единственная легитимная возможность избавиться от завтрашней просрочки и хоть что-то заработать. Сети в Европе явно не молодые — та же Теско, но их российские коллеги явно знают какой-то особый секрет!
Ладно, это стеб чистой воды, думаю все догадываются в какой плоскости лежит правильный ответ и он точно за границами этой статьи.
sadPacman
Подозреваю, что у нас в крупных сетях больше рычагов давления на поставщиков и то, что залежалось и нельзя применить на кухне они тупо возвращают, а дальше это либо утилизируется, либо идет в какие-нибудь специальные магазины. В сетях поменьше скидки вполне себе бывают, например в питерской сети «сезон» (меньше 10 магазинов) наблюдал распродажу брикетов мороженного по 20р за две недели до истечения срока годности, при том что обычно такие брикеты больше 100р стоят.
ArjLover
Как говорила в таких случаях моя любимая учительница — «наивность ваша радует шакалов». ))
vis_inet
Поясните, что именно не так с мороженым?
Alexsandr_SE
Обычно не возвращают, а стараются любыми путями продать просроченное, перепаковать...