April 28

RFM Анализ

📊 RFM анализ — простой способ сегментировать клиентов и повысить эффективность бизнеса! 🔥

RFM анализ — это метод сегментации клиентов на основе трех ключевых факторов:

Recency (Недавность) — как недавно клиент совершал покупку.

Frequency (Частота) — сколько раз клиент покупал за определённый период.

Monetary (Сумма покупок) — сколько денег клиент потратил или какой у него средний чек.

Цель этого анализа — определить, какие клиенты наиболее ценны для бизнеса. Чтобы сделать это, мы присваиваем каждому клиенту номер, состоящий из 3 цифр, которые отражают их поведение в этих трех аспектах.

Как это работает:
Recency (Недавность):
— Если клиент купил что-то вчера, ему будет присвоен балл 3.
— Если клиент не совершал покупку более 3 лет, ему будет присвоен балл 1.
— Эти интервалы мы можем настраивать под особенности нашего бизнеса. Например, для некоторых бизнесов 1 балл будет за покупку более года назад, а 3 балла за покупку в прошлом месяце.

Frequency (Частота):
— Если клиент покупал у нас более 100 раз, ему будет присвоен балл 3.
— Если всего 5 покупок — балл 1.
— Интервалы можно подстроить в зависимости от количества сделок в вашем бизнесе.

Monetary (Сумма покупок):
— Если клиент потратил большую сумму, его оценка будет 3 балла.
— Если его средний чек низкий, это будет 1 балл.

Пример:
Клиент 333 — это тот, кто купил недавно, часто покупает и тратит много — самый ценный клиент.

Клиент 111 — купил в прошлой жизни, редко покупает и тратит мало — самый менее ценный.

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

Таким образом, RFM анализ помогает выявить тех клиентов, которых стоит удерживать, а также определить, кто из них нуждается в дополнительных маркетинговых усилиях! 🎯

Ниже прикладываю формулу для XYZ анализа в Power BI. Чтобы она заработала у вас, нужно просто заменить:
- Название таблицы,
- Столбцы, по которому делается анализ,
Для удобства, я закомментировал строки, которые требуют изменений:

RFM Анализ (Ручной) = VAR TodayDate = TODAY() //Можно поменять на нужную дату
// Шаг 1: Создаём сводную таблицу с метриками R, F, MVAR RFM_Summary =    SUMMARIZE(        'Таблица',// Указываем таблицу с данными о покупках.        'Таблица'[Клиент ID],// Указываем колонку ID клиента. Здесь нужно заменить [Клиент ID] на нужную колонку.        "Recency", DATEDIFF(MAX('Таблица'[Дата]), TodayDate, DAY),        "Frequency", COUNTROWS(FILTER('Таблица', 'Таблица'[Клиент ID] = EARLIER('Таблица'[Клиент ID]))),// Считаем количество покупок клиента. Указываем колонку ID клиента. Здесь нужно заменить [Клиент ID] на нужную колонку.        "Monetary", AVERAGE('Таблица'[Сумма])  // или SUM, если нужно общую сумму    )
// Шаг 2: Ваши ручные настройки (измените значения под свои нужды)VAR RecencyThreshold1 = 30  // 3 балла: ≤30 днейVAR RecencyThreshold2 = 90  // 2 балла: 31–90 дней, 1 балл: >90
VAR FrequencyThreshold1 = 1   // 1 балл: 1 покупкаVAR FrequencyThreshold2 = 3    // 2 балла: 2–3 покупки, 3 балла: ≥4
VAR MonetaryThreshold1 = 100   // 1 балл: <$100VAR MonetaryThreshold2 = 500   // 2 балла: $100–$500, 3 балла: >$500
// Шаг 3: Присваиваем баллы по вашим правиламRETURN    SELECTCOLUMNS(        ADDCOLUMNS(            RFM_Summary,            "RecencyScore",                 SWITCH(                    TRUE(),                    [Recency] <= RecencyThreshold1, 3,                    [Recency] <= RecencyThreshold2, 2,                    1                ),            "FrequencyScore",                 SWITCH(                    TRUE(),                    [Frequency] >= FrequencyThreshold2, 3,                    [Frequency] >= FrequencyThreshold1, 2,                    1                ),            "MonetaryScore",                 SWITCH(                    TRUE(),                    [Monetary] >= MonetaryThreshold2, 3,                    [Monetary] >= MonetaryThreshold1, 2,                    1                ),            "RFM_Score",                 VAR R = SWITCH(TRUE(), [Recency] <= RecencyThreshold1, 3, [Recency] <= RecencyThreshold2, 2, 1)                VAR F = SWITCH(TRUE(), [Frequency] >= FrequencyThreshold2, 3, [Frequency] >= FrequencyThreshold1, 2, 1)                VAR M = SWITCH(TRUE(), [Monetary] >= MonetaryThreshold2, 3, [Monetary] >= MonetaryThreshold1, 2, 1)                RETURN R * 100 + F * 10 + M          ),        "Клиент ID", [Клиент ID],        "RFM Категория", [RFM_Score]    )