Почему не стоит прогнозировать продажи при управлении запасами? Часть 4

Предыдущие части:

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

Разовые крупные продажи. Выбросы, аномальный спрос.

Однажды к нам может прийти клиент и купить в 10 раз больше, чем мы продаем в среднем в день. Если это разовый случай и нетипичный для нас, очевидно, нет нужды хранить запас под такого клиента и ориентироваться на него при расчете запаса. Но если мы будем прогнозировать продажи, мы получим завышенную оценку объема запаса, так как не исключим таких необычных покупателей. Ниже представлен пример, когда необычный клиент пришел и купил 11 января у нас 60 штук нашей продукции, что соответствует объему продаж за 12 дней.

 Пример аномальных продаж

Если мы учтем этот выброс, то либо модель может уловить неверную закономерность, либо мы получим большую ошибку прогнозирования в этой точке. В первом случае мы можем неожиданно много заказать.  На примере ниже модель научилась несуществующей тенденции и повторила ее в будущем.

 Пример аномальных продаж. Несуществующая тенденция и повтор ее в будущем.

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

Рассмотрим этот случай более подробно. Пусть мы делаем прогноз по среднему. Среднее без этой аномальной продажи равно 4,8 ед. Если учитывать аномальную продажу, то 8,3 ед. Отметим, что 8,3 ед. превышает нашу максимальную продажу в день. Таким образом, если мы будем ориентироваться на этот показатель, то гарантированно закажем лишний товар даже под плановый спрос. Посмотрим, что происходит со страховым запасом в этом случае. Страховой запас может быть рассчитан через вариацию продаж или ошибку прогнозирования. Подсчет через вариацию продаж, по сути, подразумевает, что прогнозом мы считаем прогноз по среднему.

 
 

Страховой запас

Без фильтрации

Страховой запас

С фильтрацией

Уровень сервиса 95%

Горизонт планирования 5 дней

53,8

4,8

Уровень сервиса 98%

Горизонт планирования 5 дней

67,2

5,9

Уровень сервиса 95%

Горизонт планирования 30 дней

131,9

11,7

Уровень сервиса 98%

Горизонт планирования 30 дней

164,7

14,6

Как видим из таблицы, страховой запас окажется в 11,2 раза больше, если мы не исключим такой выброс. Самое интересное, что при уровне сервиса 95% и горизонте планирования 5 дней страховой запас все равно будет недостаточным для удовлетворения спроса таких покупателей.

Посмотрим теперь, как такой покупатель повлияет на общий запас, который мы будем поддерживать, если забудем про него.

 
 

Общий запас

Без фильтрации

Общий запас

С фильтрацией

Отношение запаса

Уровень сервиса 95%

Горизонт планирования 5 дней

53,8+41,5=95,3

4,8+24=28,8

3,27 раз

Уровень сервиса 98%

Горизонт планирования 5 дней

67,2+41,5=108,7

5,9+24=29,9

3,63 раз

Уровень сервиса 95%

Горизонт планирования 30 дней

131,9+249=380,9

11,7+144=155,7

2,45 раз

Уровень сервиса 98%

Горизонт планирования 30 дней

164,7+249=413,7

14,6+144=158,6

2,6 раз

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

Как определить выбросы?

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

 Как определить выбросы? Продажи разных объемов за всю историю продаж

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

 

 

Объем продаж

Частота объема продаж

7

5,74%

8

12,44%

9

7,66%

10

13,88%

11

7,66%

12

8,61%

13

11,48%

14

8,13%

15

6,70%

16

8,61%

17

8,13%

35

0,48%

72

0,48%

Общий итог

100,00%

 

 Частота продаж

Выбросы – это аномально большие продажи, которые мы не хотим учитывать при прогнозировании. К примеру, если это типичная для нас ситуация, то мы должны ее планировать. Резкое повышение спроса 8 марта на цветы мы должны учесть при планировании в будущем и не можем просто исключить из истории продаж. С другой стороны, низкая частота того или иного объема продаж не является достаточным для того, чтобы определить выброс. Если продажи среднего объема встречаются редко, ничего страшного в этом нет. Казалось бы, мы можем просто взять отсортировать по объему продаж и исключить те частоты с конца, которые меньше некоторого порога, например 1%. Тогда мы успешно отфильтруем продажи в 35 и 72 единицы. Но что будет, если наш спрос слишком вариативен и одинаковые объемы продаж редко повторяются?

 Диаграмма с частотой продаж. Применение фильтрации в 2%

Обратим внимание на диаграмму с частотой продаж. Если мы для нее применим фильтрацию в 2%, то исключим все продажи от 100 до 91 шт., что не верно. Таким образом, мы могли бы исключить всю историю продаж, если бы она была сильно вариативна.

 Частота продаж товара с сильно вариативным спросом

Чтобы этого не допустить мы можем применить порог не к конкретным частотам, а к накопительной сумме, подобно той, которая рассчитывается при определении групп ABC анализа.

 

 

Названия строк

Частота  Продажи, шт.

Накопительная

Сумма частоты Продажи, шт.

1

0,96%

0,96%

2

0,96%

1,91%

3

1,44%

3,35%

4

0,96%

4,31%

5

1,44%

5,74%

6

1,91%

7,66%

7

0,96%

8,61%

8

0,96%

9,57%

9

0,48%

10,05%

10

1,44%

11,48%

87

0,48%

89,95%

88

0,48%

90,43%

90

2,39%

92,82%

91

0,48%

93,30%

92

1,44%

94,74%

93

1,44%

96,17%

94

1,44%

97,61%

96

0,48%

98,09%

99

0,48%

98,56%

100

0,96%

99,52%

400

0,48%

100,00%

Общий итог

100,00%

 

 

Пусть наш порог (допуск) составляет 1.0%. Тогда накопительная частота не должна превышать (100 – 1.0%) = 99.0%. Все, что имеет накопительную вероятность, больше чем 99.0% помечаем как потенциальные выбросы. Можем ли мы в данном случае серьезно потерять в статистике? Нет, не можем, так как в самом худшем случае мы потеряем 1% от всей истории, при истории в 300 дней, мы пометим только 3 факта продаж, даже если все продажи разные.

Что делать с найденными аномальными продажами?

Найденные нами аномальные продажи – это точки в истории продаж, а не целый период, как это могло быть в случае с дефицитом. Поэтому мы можем смело применить замену по медиане или среднему, посчитанному без аномальных продаж. Медиана в нашем случае будет тот объем продаж накопительная вероятность, для которого равна 50%. В нашем примере это 56 ед., а среднее 49 ед. Это пессимистичный подход, он предполагает, что кроме аномальной продажи другого повышения продаж не было. Он не учитывает, что в этот день мог быть и без того высокий объем продаж, а некоторый клиент подлил масла в огонь и купил у нас необычно много. Мы исключаем не только этого клиента, но и большой объем продаж. Конечно, можно перейти к рассмотрению по конкретным документам-транзакциям и исключать среди них. Но тогда может возникнуть ситуация, когда аномально высокие продажи не связаны с конкретным клиентом, а связаны с другими обстоятельствами. В этом случае аномальные продажи в этот день вызваны рядом причин и множество клиентов в целом дали такой аномально большой объем продаж. При рассмотрении отдельных документов-транзакций мы этого не заметим.

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

 График истории продаж. Маркетинговые акции, праздничные дни или  промо.

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

Мы разобрались в том, что прогнозировать нужно спрос на основе истории спроса. Если мы будем пытаться прогнозировать спрос на основе истории продаж, ничего хорошего не выйдет. Ровно, как и в обратном случае. Но всегда ли стоит прогнозировать спрос? Конечная цель нашего расчета это размер запаса, который нам необходимо иметь для удовлетворения потребности с заданным уровнем сервиса. Иногда ошибка прогнозирования настолько высока, что нет смысла строить прогноз. Можно ли сразу перейти к расчету оптимального запаса? Оказывается, что да.

Другие публикации