Как просто реализовать ABC сегментацию в Power BI
Привет, меня зовут Сергей Кузнецов, я продуктовый аналитик в компании Kiwitaxi. Сегодня я расскажу, как мы реализовали ABC сегментацию наших партнеров в Power BI.
На мой взгляд, способ сегментации, о котором я расскажу ниже, гораздо проще и понятнее некоторых решений, которые встречаются на просторах сети. Здесь не будет длинных и непонятных формул, а описание действий подойдет даже для новичков в Power BI.
ABC - анализ
Для начала стоит кратко рассказать принцип ABC сегментации и случаи, в которых ей стоит воспользоваться.
В основе ABC-анализа лежит принцип, по которому 20% партнеров приносят 80% дохода. Именно таких партнеров нам нужно находить и развивать, это A-сегмент нашего анализа. Далее следует B-сегмент, эти партнёры приносят нам ещё 15% дохода. И в заключении C-сегмент, которые приносят нам 5% доход.
Соответственно, при работе с партнерской базой нам необходимо в первую очередь обращать внимание на потребности A-сегмента - эти партнеры приносят большую часть дохода. Нужно стараться сделать так, чтобы партнеры из B и С сегментов перешли в сегменты выше. После проведения анализа желательно провести работу, чтобы в А-сегмент попадали 20% партнеров, в B-сегмент 30% и в С-сегмент 50%.
Структура данных
В нашей модели данных потребуется всего 2 таблицы. Одна таблица со всеми проданными товарами с указанием id партнера, который произвел покупку (Заказы), вторая таблица с партнерами (Партнеры). Связь таблиц происходит по столбцу id(1) -> *partner_id.
Для начала мы суммируем все стоимости заказов партнеров с помощью меры. При желании можно доработать формулу и взять, к примеру, сумму дохода за определенный период.
_priceSUM =
SUM('Заказы'[price])
Добавляем меру в таблицу c Партнерами. Создать столбец, добавить формулу:
priceSUM =
_Measure[_priceSUM]
Теперь мы имеем информацию о том, какой доход принес нам каждый партнер.
На следующем шаге нам необходимо проранжировать суммы доходов, чтобы расположить их в порядке убывания. Для этого используем формулу:
rank =
RANKX(
‘Партнеры’,
‘Партнеры’[priceSUM])
Данная функция по умолчанию располагает значения по убыванию, что позволяет нам отметить пустые значения последним одинаковым рангом (если такие имеются).
Рассчитываем долю
Тут все просто - делим значение суммы дохода каждого партнера на сумму дохода вместе взятых партнеров
Доля =
DIVIDE(
‘Партнеры’[priceSUM],
SUM(
‘Партнеры’[priceSUM]))
Далее нам нужно рассчитать Накопительный итог доли, то есть последовательно сложить значения столбца доли друг за другом от самого большого до самого маленького. Для этого нам понадобится следующая мера:
Накопительный итог доли =
CALCULATE(
SUM(
'Партнеры'[Доля]),
FILTER(
ALL('Партнеры'),
'Партнеры'[rank]<=MAX('Партнеры'[rank])))
Мы почти у цели! Осталось только прописать условия для присвоения сегмента к показателю Накопительного итога доли. Сначала мы использовали функцию IF для присвоения сегмента, но потом вспомнили о функции SWITCH. С ней можно сделать формулу более элегантной:
Сегмент =
SWITCH(
TRUE(),
_Measure[Накопительный итог доли]<=0.8, "A",
_Measure[Накопительный итог доли]<=0.95, "B",
"C")
Последняя функция была реализована в виде столбца (а не в виде меры в таблице с партнерами) для дальнейшего подсчета количества партнеров по сегментам.
В итоге у нас получились следующие результаты:
И распределение доходов по сегментам:
Вывод: Данный инструмент даёт возможность определять и отслеживать наиболее ценных для вас партнеров. Вы получаете не просто статичный список партнеров и их сегментов, а гибкий инструмент мониторинга, который при желании может обновляться практически в реальном времени. В любой момент можно внести изменения в формулы, и Power BI автоматически пересчитает сегменты, как того требуют ваши задачи.