ClientCoreБлогНа сайт

RFM-анализ для розницы: как учитывать офлайн-чеки и сезонность

Стандартная RFM уверена: ваш лучший клиент ушел. На деле он просто ждет декабря. Как учесть офлайн-чеки и сезонность, чтобы модель перестала врать.

Картина знакомая: открываете RFM-дашборд в марте, а сегмент «потерянных» вырос на треть. Маркетинг бьет тревогу, готовит реактивационные рассылки со скидкой 20%, жжет маржу. В декабре эти «потерянные» возвращаются сами — как возвращались каждый год. Просто в вашей категории покупают раз в 10 месяцев, а модель об этом не знала.

RFM-анализ для розницы упирается в две вещи, о которых учебники молчат: офлайн-чеки и сезонность. Первая ломает исходные данные, вторая — логику оценки. Как перенастроить модель, чтобы она видела реальную базу, рассказывает Егор Череватенко, CRM-маркетолог ClientCore.

ЧИТАЙТЕ ТАКЖЕ

«RFM показывает, сколько клиент потратил, но молчит о том, стабилен ли его спрос. Разбираем, как ABC/XYZ-анализ закрывает слепые зоны RFM и делает сегментацию рабочим инструментом, а не отчетом для…»

ABC/XYZ + RFM: как комбинировать модели сегментации для точных решений

Почему стандартная RFM-модель ошибается на рознице

Классическая RFM-сегментация клиентов выросла из каталожной торговли и e-commerce: там каждый заказ привязан к профилю, дата и сумма известны до копейки. Подставил три числа — получил сегмент. В рознице картина другая.

Recency наказывает тех, кто покупает по циклу. Клиент оптики обновляет очки раз в 12–24 месяца: через 90 дней тишины модель записывает его в «дрейфующие», хотя для категории он активный. Родитель, закупивший школьную форму в августе, в сентябре выглядит ушедшим. Покупатель новогодних подарков дает всплеск Frequency на две недели и год молчания — квантили превращают его в аномалию.

Смотрел недавно сегментацию сети товаров для дачи: модель отправила в „спящие“ 41% базы. Начали проверять вручную — две трети этих людей покупали строго с апреля по июнь, два года подряд. Модель их хоронила, а они просто ждали сезона».
Егор Череватенко

Егор Череватенко

CRM-маркетолог, ClientCore

Frequency искажается похожим образом: один чек на 40 позиций перед праздником и 40 визитов по одному товару — разное поведение, но по F первый покупатель выглядит случайным прохожим.

Сначала данные: склейка офлайн-чеков и профилей

Второй источник ошибок — сырые данные. В типичной рознице 30–60% чеков пробивается без карты лояльности. Эти покупки живут в кассовой системе, но для RFM их не существует: клиент совершил пять визитов, модель видит два. Recency и Frequency занижены у всей базы, причем неравномерно — сильнее всего у тех, кто ленится доставать карту.

Склейка профилей — отдельная боль. Один человек заводит карту на кассе, потом регистрируется в интернет-магазине с другой почтой, потом оформляет заказ по телефону. В CRM живут три профиля с разной историей, и каждый получает свою рассылку. Надежный ключ склейки — телефон: он меняется реже почты и фамилий.

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

Норма
  • доля идентифицированных чеков измерена и отслеживается как KPI
  • офлайн-чеки попадают в CRM в течение суток после покупки
  • профили склеены по телефону, дубли схлопываются автоматически
  • возвраты вычитаются из Monetary и Frequency
Red flag
  • RFM считается только по онлайн-заказам, офлайн «потом докрутим»
  • возвраты включены в выручку
  • у клиента несколько профилей, и никто не знает, сколько их на самом деле

Сколько чеков вашей базы RFM-модель просто не видит?

Проверим идентификацию, дубли и возвраты — покажем, насколько искажена ваша сегментация

🇷🇺

Настройка Recency и Frequency под сезонный спрос

Главная правка для сезонного ритейла — перестать мерить давность покупки в абсолютных днях. Работают два приема.

Первый: считать R-балл внутри категорийного цикла. Если нормальный интервал покупки в категории — 10 месяцев, то «давно не покупал» начинается на 12–15-м месяце, а не на 90-м дне. Практически это означает квантили по категориям или Recency относительно ожидаемой даты следующей покупки.

Второй прием — сравнение с тем же периодом год назад. Клиент, купивший в прошлом декабре и молчащий до ноября, в норме. Он становится «дрейфующим», только если не вернулся к декабрю текущего года. Считать так сложнее, зато модель перестает реактивировать людей, которые вернутся сами.

Frequency под сезон тоже стоит почистить: разовые оптовые закупки (садовый центр в мае, школа в августе) разумно объединять в одно «сезонное событие», иначе всплеск искажает квантили.

Правило простое: реактивацию сезонных клиентов запускаем за 6–8 недель до пика, когда они еще не выбрали, где купить. Кампания в разгар сезона проигрывает той, что ушла раньше: по нашим замерам у „ранних“ писем open rate выше на треть».
Егор Череватенко

Егор Череватенко

CRM-маркетолог, ClientCore

Работает и обратная механика — подогрев базы в низкий сезон. В проекте для ресторанов «Урюк» мы запустили розыгрыш сертификатов в период спада: выручка от акции оказалась в 20,7 раза выше затрат на призовой фонд, а программа лояльности получила 2435 новых участников (кейс). Сезонный провал в данных — часто просто окно для механики, которую конкуренты проспали.

Monetary: почему сумма чеков врет

У Monetary в рознице три подводных камня. Возвраты уже обсуждали. Второй — корпоративные и оптовые чеки: закупщик подметает полку на 300 тысяч для офиса, и модель назначает его VIP-клиентом с персональными предложениями. Такие чеки стоит выделять отдельным признаком и выводить из B2C-модели.

Третий — оборот вместо маржи. Клиент со стабильным чеком 15 тысяч в месяц и маржой 35% ценнее промо-охотника, который за год набирает 200 тысяч оборота по акциям с маржой около нуля. Если платформа позволяет, считайте M по марже или хотя бы по выручке за вычетом скидки.

Был клиент, у которого в топ-1% по Monetary попал покупатель с одним чеком на 480 тысяч — товар он вернул через две недели. Модель успела отправить ему персональное предложение и скидку VIP-сегмента. После этого случая ввели правило: чек учитывается в M только после закрытия окна возврата».
Егор Череватенко

Егор Череватенко

CRM-маркетолог, ClientCore

Норма
  • Monetary считается по выручке net: минус возвраты и отмены
  • оптовые и корпоративные чеки выделены в отдельный сегмент
  • чек попадает в модель после закрытия окна возврата
Red flag
  • топ по M состоит из разовых крупных чеков годичной давности
  • покупка по акции весит столько же, сколько покупка по полной цене
  • один B2B-закупщик перекашивает квантили всей базы

Как часто пересчитывать модель

Для массовой розницы с коротким циклом покупки (косметика, аптеки, продукты) разумный ритм — пересчет раз в месяц. Для длинных циклов (оптика, мебель, электроника) — раз в квартал, но R-метрику по «дрейфующим» проверять чаще, чтобы не пропустить точку возврата.

Окно данных должно закрывать минимум один полный сезонный цикл: для большинства категорий это 12 месяцев, для длинных — 24. Меньше — модель снова не увидит сезонных покупателей и запишет их в ушедшие.

В Mindbox сегменты пересчитываются автоматически, и само по себе это дает эффект: переход клиента из «лояльных» в «дрейфующие» — готовый триггер для цепочки. Такой переход виден через 30–60 дней после отклонения от цикла, когда вернуть клиента еще дешево. Разовый Excel от аналитика такого не даст — он устаревает в день выгрузки.

Что делать с сегментами перед пиком и после него

Практический календарь для сезонной розницы:

За 6–8 недель до пика — реактивация прошлогодних сезонных покупателей: напоминание, подборка, повод вернуться. Эти люди еще не решили, где купить, и обходятся дешевле любого перформанса.

В пик — не жечь базу скидками. Тот, кто купил в прошлом декабре по полной цене, вернется и без промокода: ему достаточно повода и ассортимента. Скидку получают те, чей цикл подходит к концу, а покупки нет.

После пика — работа со вторым чеком. Новички сезона — самая хрупкая часть базы: без онбординга 70–80% из них не вернутся. Welcome-цепочка, кросс-продажа через 2–3 недели, затем перевод в регулярный контент.

Ставка на точность сегментов окупается лучше, чем рост охвата. В проекте для MINIDINO мы пересобрали логику рассылок вместо отправок всей базе разом — и получили +110% к эффективности email за квартал без увеличения числа кампаний (кейс).

ЧИТАЙТЕ ТАКЖЕ

«20% клиентов приносят 80% выручки, но рассылки все равно уходят всем одинаковые. Разбираем, как посчитать ABC-сегментацию и что делать с каждой группой.»

ABC-анализ клиентов: как отделить тех, кто приносит деньги, от балласта

Успеваете пересчитать сегменты до начала сезона?

Настроим RFM-модель с учетом офлайна и сезонности: сегменты обновляются сами, кампании уходят вовремя

🇷🇺

Часто задаваемые вопросы

Подходит ли RFM-анализ для интернет-магазина без офлайн-точек?

Да, и работает он там проще: все заказы идентифицированы, данные чище. Но сезонность никуда не девается. Если вы продаете новогодние товары или садовый инвентарь, R-балл все равно придется привязывать к циклу категории, иначе модель будет хоронить живых клиентов каждое межсезонье.

Какой период брать для расчета?

Минимум один полный сезонный цикл. Для категорий с покупкой раз в 2–3 месяца достаточно 12 месяцев истории, для длинных циклов — 18–24. Если истории меньше, чем цикл, честнее считать RFM только по активным клиентам, а остальных пометить как «недостаточно данных».

Что делать с чеками без карты лояльности?

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

Как понять, что модель настроена неверно?

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

Над проектом работали

Егор Череватенко

Егор Череватенко

CRM-маркетолог, ClientCore