Surrika

RFM-сегментация покупателей мебельного магазина по сделкам

RFM-сегментация делит покупателей по давности последней покупки, числу сделок и сумме за 12 месяцев. Расчет на сделках мебельного магазина дает 9 групп, от чемпионов до потерянных. Для каждой группы видно число покупателей, долю, среднюю давность и средний чек.

Покупатели

Как считать

  1. Из сделок с выигранным статусом за последние 12 месяцев по каждому покупателю собираем дату последней покупки, число сделок и общую сумму.
  2. Давность считаем в днях от последней даты в данных до последней покупки покупателя.
  3. Каждый показатель раскладываем на 5 равных групп от 1 до 5, где 5 это самые свежие, частые и крупные.
  4. Оценки объединяем в 9 рабочих сегментов по правилам и считаем по каждому число покупателей, долю, среднюю давность и средний чек.

Расчет на выгрузках магазина

Пример посчитан на выгрузках вымышленного мебельного магазина: продажи сайта и трех маркетплейсов, реклама, сделки CRM и остатки за 2024-2025 годы.

Как разбить покупателей мебельного магазина на RFM-сегменты по сделкам и понять, кто готов к повторной покупке, а кто уже уходит?

Число покупателей по RFM-сегментам

SQL, по которому посчитано

WITH base AS (
  SELECT
    customer_id,
    max(date) AS last_deal,
    count(*) AS deals_count,
    sum(amount) AS revenue
  FROM deals
  WHERE status = 'Выиграна'
    AND date > (SELECT max(date) FROM deals) - INTERVAL 12 MONTH
  GROUP BY customer_id
),
calc AS (
  SELECT
    customer_id,
    date_diff('day', last_deal, (SELECT max(date) FROM deals)) AS recency_days,
    deals_count,
    revenue
  FROM base
),
scored AS (
  SELECT
    customer_id,
    recency_days,
    deals_count,
    revenue,
    ntile(5) OVER (ORDER BY recency_days DESC) AS r_score,
    ntile(5) OVER (ORDER BY deals_count) AS f_score,
    ntile(5) OVER (ORDER BY revenue) AS m_score
  FROM calc
),
seg AS (
  SELECT
    recency_days,
    deals_count,
    revenue,
    CASE
      WHEN r_score >= 4 AND f_score >= 4 THEN 'Чемпионы'
      WHEN r_score >= 4 AND f_score = 3 THEN 'Лояльные'
      WHEN r_score >= 4 AND f_score <= 2 THEN 'Новички'
      WHEN r_score = 3 AND f_score >= 3 THEN 'Перспективные'
      WHEN r_score = 3 AND f_score <= 2 THEN 'Нужно вовлечь'
      WHEN r_score <= 2 AND f_score >= 3 AND m_score >= 3 THEN 'В зоне риска'
      WHEN r_score <= 2 AND f_score >= 3 THEN 'Не потерять'
      WHEN r_score = 2 THEN 'Засыпающие'
      ELSE 'Потерянные'
    END AS segment
  FROM scored
)
SELECT
  segment,
  count(*) AS customers,
  round(count(*) * 1.0 / sum(count(*)) OVER (), 3) AS share,
  round(avg(recency_days), 0) AS avg_recency_days,
  round(avg(deals_count), 1) AS avg_deals,
  round(avg(revenue), 0) AS avg_revenue,
  round(sum(revenue), 0) AS total_revenue
FROM seg
GROUP BY segment
ORDER BY customers DESC

Откуда берутся цифры для RFM

Расчет идет по сделкам из CRM: у каждой записи есть номер покупателя, дата, статус и сумма. Повторные обращения одного человека связаны одним номером, по нему и собираются давность, частота и сумма. В работу берут выигранные сделки за 12 месяцев от последней даты в данных, так в частоту не попадают покупки двухлетней давности. Проигранные сделки и заявки без номера покупателя в расчет не идут.

Как считать давность, частоту и сумму

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

Что означают сегменты

Чемпионы покупали недавно, часто и на крупные суммы. Лояльные близки к ним по давности, но берут реже. Новички совершили одну свежую покупку. В группу «нужно вовлечь» попадают покупатели со средней давностью и одной сделкой. В зоне риска те, кто покупал часто, но давно. Засыпающие и потерянные ушли дальше всех по давности. В результате запроса рядом с каждым сегментом видно число покупателей, долю, среднюю давность в днях, среднее число сделок и средний чек.

Что делать с каждым сегментом

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

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

Считать по всем сделкам подряд

Проигранные сделки добавляют сумму и частоту тем, кто так и не купил. В расчет берите только выигранные сделки, иначе сегменты съезжают.

Брать всю историю без окна

Покупка двухлетней давности держит покупателя в лояльных. Ограничьте период 12 месяцами от последней даты в данных.

Считать давность от сегодняшнего дня

Если данные заканчиваются в декабре 2025, отсчет от текущей даты сдвигает все группы. Считайте давность от последней даты в данных.

Собирать слишком много сегментов

Пять групп по каждому из трех показателей дают 125 комбинаций, с ними трудно работать. Сведите правила к 6-9 сегментам с разными действиями.

Вопросы

Как часто пересчитывать RFM?

Раз в месяц, после закрытия месяца. Сегменты двигаются, потому что давность растет с каждым днем без покупки.

Сколько сегментов достаточно?

Хватает 6-9 групп, под каждую из которых есть свое действие. Больше групп усложняет работу отдела и почти не меняет рассылку.

Можно ли построить RFM по маркетплейсам?

На маркетплейсах нет номера покупателя, поэтому расчет идет по сделкам сайта и шоурума. Продажи маркетплейсов смотрите отдельно по каналам.

Куда попадает покупатель с одной покупкой?

Он попадает в новичков или в потерянных в зависимости от давности. С новичками работают на второй заказ, потерянных возвращают дешевым охватом.

Метрики на этой странице

Посчитайте это на своих выгрузках

Бросьте выгрузки на доску Surrika и задайте вопрос обычными словами. Ответ придет графиком, а под ним будет SQL, по которому он посчитан.

14 дней бесплатно, карта не нужна.

По теме

Все задачи