Перейти к содержанию
Innovialabs

RFM-анализ: как сегментировать клиентов по покупкам

Продвинутое3 мин

Коротко

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

Что такое RFM и зачем он нужен

RFM — способ разделить клиентскую базу по реальному поведению, а не по анкетным данным. Каждый клиент получает три оценки:

  • Recency (R) — сколько дней прошло с последней покупки. Чем меньше, тем выше оценка.
  • Frequency (F) — сколько покупок клиент сделал за выбранный период.
  • Monetary (M) — сколько денег он потратил за тот же период.

Обычно каждую метрику переводят в шкалу от 1 до 5. Клиент с кодом 555 недавно покупал, делает это часто и тратит много. Клиент 155 когда-то был лучшим, но давно пропал — его важно вернуть.

Смысл метода в том, что одно и то же сообщение не подходит всем. Скидка постоянному клиенту съедает маржу, а «спасибо за лояльность» новичку звучит странно.

Какие данные нужны

Достаточно таблицы заказов с тремя полями: ID клиента, дата заказа, сумма заказа. Её можно выгрузить из CRM, учётной системы или админки магазина.

Перед расчётом:

  • Склейте дубли клиентов — один человек с разными телефонами или email исказит частоту.
  • Уберите отменённые и возвращённые заказы.
  • Выберите период анализа под свой цикл покупок: для товаров повседневного спроса он короче, для дорогих и редких покупок — длиннее.
  • Зафиксируйте дату расчёта — от неё считается давность.

Как посчитать RFM в таблице

  1. Создайте сводную таблицу по клиентам: последняя дата заказа (MAXIFS), число заказов (COUNTIFS), сумма (SUMIFS).
  2. Давность: =дата_расчёта - последняя_дата.
  3. Присвойте оценки. Два подхода:
    • квантили — делите клиентов на пять равных групп по каждой метрике (функции PERCENTRANK или QUARTILE);
    • фиксированные пороги — например, для частоты «1 заказ», «2 заказа», «3–4», «5 и больше».
  4. Склейте три оценки в код сегмента, например =R&F&M.

Для частоты пороги обычно удобнее квантилей: у большинства клиентов часто одна покупка, и квантили делят одинаковые значения в разные группы.

Как посчитать RFM в SQL

Пример для PostgreSQL:

WITH stats AS (
  SELECT
    customer_id,
    CURRENT_DATE - MAX(order_date)::date AS recency_days,
    COUNT(*)                             AS frequency,
    SUM(amount)                          AS monetary
  FROM orders
  WHERE status = 'paid'
    AND order_date >= CURRENT_DATE - INTERVAL '24 months'
  GROUP BY customer_id
)
SELECT
  customer_id,
  NTILE(5) OVER (ORDER BY recency_days DESC) AS r,
  CASE WHEN frequency >= 5 THEN 5
       WHEN frequency >= 3 THEN 4
       WHEN frequency = 2  THEN 3
       ELSE 1 END                            AS f,
  NTILE(5) OVER (ORDER BY monetary)          AS m
FROM stats;

Давность сортируется по убыванию, поэтому самые «старые» клиенты получают 1, а самые свежие — 5. Пороги частоты подберите под свои данные.

Типичные сегменты и что с ними делать

СегментПримерный профильЧто запускать
ЧемпионыR5, F4–5, M4–5Ранний доступ, программа лояльности, просьба об отзыве или рекомендации
ЛояльныеR3–4, F4–5Кросс-продажи, апсейл, персональные подборки
ПерспективныеR4–5, F2–3Мотивация ко второй-третьей покупке, бонус за следующий заказ
НовичкиR5, F1Welcome-цепочка, онбординг, полезный контент о продукте
Под угрозойR2–3, F3–5Напоминание, персональное предложение, опрос о причинах
Нельзя потерятьR1–2, F5, M5Личный контакт менеджера, весомое предложение возврата
СпящиеR1–2, F1–2Недорогая реактивация, затем исключение из рассылок, если реакции нет

Таблица — ориентир, а не стандарт. Названия и границы сегментов адаптируйте под свой бизнес.

Частые ошибки

  • Один период для всех товаров. Если продаёте и расходники, и технику, считайте RFM отдельно по категориям.
  • Скидка всем подряд. Активным клиентам скидка часто не нужна — они купили бы и так.
  • Разовый расчёт. RFM имеет смысл пересчитывать регулярно и смотреть, как клиенты переходят между сегментами.
  • Нет контрольной группы. Чтобы понять, сработала ли кампания, оставьте часть сегмента без воздействия и сравните.

Частые вопросы

Когортный анализ группирует клиентов по дате первой покупки и показывает, как меняется удержание со временем. RFM описывает текущее состояние каждого клиента. Методы дополняют друг друга.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.