Как просто реализовать 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.

Как просто реализовать ABC сегментацию в Power BI

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

_priceSUM =

SUM('Заказы'[price])

Добавляем меру в таблицу c Партнерами. Создать столбец, добавить формулу:

priceSUM =

_Measure[_priceSUM]

Как просто реализовать ABC сегментацию в Power BI

Теперь мы имеем информацию о том, какой доход принес нам каждый партнер.

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

rank =

RANKX(

‘Партнеры’,

‘Партнеры’[priceSUM])

Как просто реализовать ABC сегментацию в Power BI

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

Рассчитываем долю

Тут все просто - делим значение суммы дохода каждого партнера на сумму дохода вместе взятых партнеров

Доля =

DIVIDE(

‘Партнеры’[priceSUM],

SUM(

Партнеры’[priceSUM]))

Как просто реализовать ABC сегментацию в Power BI

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

Накопительный итог доли =

CALCULATE(

SUM(

'Партнеры'[Доля]),

FILTER(

ALL('Партнеры'),

'Партнеры'[rank]<=MAX('Партнеры'[rank])))

Мы почти у цели! Осталось только прописать условия для присвоения сегмента к показателю Накопительного итога доли. Сначала мы использовали функцию IF для присвоения сегмента, но потом вспомнили о функции SWITCH. С ней можно сделать формулу более элегантной:

Сегмент =

SWITCH(

TRUE(),

_Measure[Накопительный итог доли]<=0.8, "A",

_Measure[Накопительный итог доли]<=0.95, "B",

"C")

Как просто реализовать ABC сегментацию в Power BI

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

В итоге у нас получились следующие результаты:

Как просто реализовать ABC сегментацию в Power BI

И распределение доходов по сегментам:

Как просто реализовать ABC сегментацию в Power BI

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

66
8 комментариев

Очень полезная информация 👍🏻

1

А в формуле "Накопительный итог доли" не нужно ли вместо MAX использовать EARLIER?

1

Насколько я помню, если попытаться использовать функцию EARLIER в данной формуле, то будет выдавать ошибку.

Можно и через EARLIER, зависит от способа реализации.
Минус расчета ABC из BI, это большие затраты ресурсов, динамический пересчет от контекста то же страдает... Хотелось бы посчитать отфильтрованную выборку по дате или какому то признаку на 2...3 млн записей, при этом ABC должен перестраиваться динамически с учетом выборки.... У меня такое не получается. Поделитесь опытом кто так делал!!!

1

Спасибо тебе, добрый человек!!!

1