datawiz.io
Компания
17,57
рейтинг
15 октября 2014 в 18:35

Разработка → Как выявить потери в продажах



Пример анализа данных на основе продуктового магазина от Datawiz.io.

Эта статья о том, как выявить потери в продажах. Потери в продажах — это дни, когда товар не продавался, или было продано аномально низкое количество единиц товара.

Зачастую потери в продажах случаются из-за недостаточного количества заказанного товара. Также часто товар, имеющийся на складе, не выставляется на полки. Ежедневный анализ данных помогает своевременно обнаружить такой «провал» в продажах. Далее, устраняем проблему — контролируем работу отдела закупок, оптимизируем поставки, контролируем работу торгового персонала.



Как это работает?

Рассчитывать потери в продажах мы будем для товаров, которые не подпадают под такие условия:
1. Если ежедневно продается меньше 5 единиц товара.
2. Если количество дней с нулевыми продажами составляет больше чем 30% за период.

ШАГ 1

1. Считаем среднеарифметическое количество проданных единиц для каждого товара avg:
image
2. Считаем среднее квадратичное отклонение (std) для каждого товара:
image
a — количество проданных единиц товара в каждый день периода
n — количество дней в периоде

image
Вероятность того, что продажи товара в истории продаж, при нормальном ходе событий, будут меньше чем средние продажи этого товара минус среднеквадратичное отклонение по продажах товара умноженные на 1,5, равнa 6,68%. 

ШАГ 2

Для определения убыточного дня, используем два критерия:
— Количество проданного товара равно нулю.
ИЛИ
— Количество проданного товара аномально низкое
qty < avg – (std * 1.5)
qty — количество проданных единиц товара;
avg — среднее арифметическое продаж для этого товара;
std — среднее квадратичное отклонение по продажах для этого товара.

ШАГ 3

Подсчитываем количество недопроданного товара для каждого дня с аномально низкими продажами:
lost_qty = avg – qty
lost_qty – количество недопроданного товара за один убыточный день;
avg — среднее арифметическое продаж для этого товара;
qty — количество проданных единиц товара за один убыточный день.

ШАГ 4

Окончательная формула расчета потерь в продажах за выбранный период (месяц) выглядит так:
lost_sales = sum(lost_qty) — сумма количественных потерь по всем дням с аномально низкими и нулевыми продажами за выбранный период.

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

Для магазина с 15 000 товаров (SKU) ущерб может составлять в среднем 40-80 тыс.грн. в месяц.

Анализ потерь в продажах на реальном примере.


Производим вычисления для товара «Хлеб Тостерный» за период с 01.01.2013г. по 31.01.2013г.:

ШАГ 1

Среднее арифметическое продаж avg = 36 шт./день
Среднее квадратичное отклонение std = ~20,7 шт.

ШАГ 2

Подставляем в формулу avg – (std * 1.5) полученные данные: 36 – (20,71,5)=~5. Это значит, что если продажи составляют меньше 5шт. в день (qty<5), то этот день «убыточный».
image

ШАГ 3

Произведя анализ данных за месяц, получаем 4 потерянных дня:

20.01 – день с продажей 1шт. (qty=1). Для подсчета потерь в этот день используем формулу lost_qty = avg – qty. lost_qty = 36-1=35шт.

11.01; 13.01; 19.01 – дни с нулевыми продажами (qty=0). lost_qty = avg – 0. lost_qty=36–0=36шт.

ШАГ 4

Подсчитаем суммарное количество потерь в продаже за период:
lost_sales = sum(lost_qty)
lost_sales = 35 + (3 * 36) = 143шт.

Это и есть то количество товара, которое магазин мог продать, но по тем или иным причинам товара не было на полках. При средней цене на «Хлеб Тостерный» 3,83 получаем потери в обороте – 548,50 грн.

Такие несложные математические вычисления позволяют производить ежедневный анализ и своевременно реагировать на изменения в динамике продаж.
Это также удобный инструмент контроля работы персонала и увеличения доходности магазина без дополнительных вложений.
Автор: @jinxu
datawiz.io
рейтинг 17,57
Компания прекратила активность на сайте
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Комментарии (11)

  • +3
    Вычисления несложные, Вы правы, но необоснованные. Почему Вы решили, что распределение будет нормальным? Почему вы выбрали 1.5 сигмы? Цитирую: «Вероятность того, что продажи товара в истории продаж, при нормальном ходе событий, будут меньше чем средние продажи этого товара минус среднеквадратичные продажи товара умноженные на 1,5, равнa 91%». Во-первых, что такое среднеквадратичные продажи? Так не говорят. Во-вторых, вы, наверное, имели ввиду не 91%, а 9%, а то у Вас почти все продажи были бы «аномально низкими». И в-третьих даже с 9% Вы не правы — это вероятность того, что продажи будут либо аномально низкими, либо аномально высокими. Вероятно, Вы хотели написать 4.5%.
    Раз уж залезли в область мат. статистики и решили писать об этом статью, желательно все-таки в этой теории разбираться.
    • 0
      1. Выбрали 1,5 сигмы эксперементальным путем.
      2. С 91% ошиблись, исправили на 9%. Среднеквадратические продажи исправили. Спасибо.
      3. Правильно 9% потому-что мы ищем только аномально низкие продажи: 0.1+2.1+(13.6/2)=9, мы смотрим только левую сторону график
      • +2
        Насчет третьего, Вы, надеюсь, шутите. Это так Вы считаете вероятность?
        Я подскажу. Для подсчета вероятности выхода за нижнюю границу мю-1.5 сигмы нужно брать определенный интеграл от функции плотности нормального распределения с пределами -бесконечность и мю-1.5 сигмы. И в Вашем случае она составит около 6.68%.
        • 0
          Да вы правы, для точного подсчета вероятности нужно интегрировать. Я же указал примерное значение. Но для практичекого результата 2.32% разницы не имеют почти никакого значения. В статье исправили.
        • 0
          Еще интересно было бы проверить, какое распределение лучше описывает продажи. Я лично отдал бы предпочтение гипотезе о бета-распределении (см. логистическая кривая), а не о нормальном. Но тут нужно брать данные и примерять.
  • 0
    И всё же — хороший подход, хотя, как написал The_Freeman — не все прописано до конца, но меня собственно интересует именно общее понимание процесса. У Вас есть ещё какие-то наработки в этой области? Было бы интересно.
    • 0
      Статья описывает как работает один из функционалов нашего сервиса. Вот еще одна статья в нашем блоге datawiz.io/ru/blogs12/. Мы делали еще очень много чего интерестного — прогнозирование продаж, оптимизацию управления запасами, деревья решений и т.д., но не хватает времени все это описать. В будующем появятся новые статьи.
      • 0
        Круто: подписался на Вас — тема больно уж мне близкая. Прочитаю, поделюсь впечатлениями.
        • 0
          Спасибо, на сайте можно взять демо — пощупать. Будут вопросы, пишите.
  • 0
    как правильно указали выше, где проверка нормальности распределения? без этого оценка стат.выбросов по нижней границе бесмысленна. какой фактический профит бизнесу от притянутого за уши алгоритма оценки упущенной выгоды?
    • 0
      Вот-вот. Почему нормальное, а не бета или например не Паретовское? Кто сказал?

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

Самое читаемое Разработка