
Меня зовут Андрей Рыжик, я разработчик BI. У большинства ритейлеров есть система лояльности. Но далеко не каждый владелец бизнеса имеет внятную аналитику этой лояльности. Кто действительно возвращается, а кто просто копит баллы? Какие клиентские сегменты приносят деньги, а какие висят мертвым грузом? Расскажу про аналитику системы лояльности, которую мы разработали и внедряем в проектах.
В статье покажу, на каких данных все строится, как мы превращаем сырую выгрузку в исчерпывающие метрики, как собираем дашборды, делаем RFM-анализ, а далее помогаем отслеживать перетекание клиентов из одного сегмента в другой с течением времени.
Данные, на основе которых мы делаем аналитику лояльности
В нашей аналитике системы лояльности все начинается с трех основных источников — CSV-файлов, которые мы ежедневно получаем от клиента с помощью автоматической выгрузки.
-
Транзакции (они же Продажи)
Как правило, это файл вида ПродажиГГГГММ.csv (например, Продажи202501.csv)
В этом файле содержатся все необходимые для аналитики продаж поля, но для лояльности мы используем только некоторые, а именно:
-
Дата покупки
-
Номер чека
-
Выручка и выручка без скидок
-
ДисконтнаяКартаИД (уникальный идентификатор каждой карты)
-
Начислено и списано бонусов (опционально, иногда списания и начисления бонусов, привязанных к каждой транзакции, нет в системе клиента)
-
Дополнительные поля: Товар, Магазин, Продавец и так далее
2. Справочник карт лояльности
Файл не разбит по месяцам, а приходит сразу в полном виде. Он хранит полный список всех карт, когда-либо зарегистрированных в системе, а также другую справочную информацию по каждому клиенту. Например:
-
ФИО клиента
-
ШтрихКод (код карты)
-
Почта клиента
-
Отказ от рассылки (та самая галочка, которую вы ставите в бланке на регистрацию карты)
-
Дата рождения
-
Дата регистрации
-
Пол
-
Магазин регистрации карты
-
Телефон
-
Статус карты (опциональное поле, которое есть только при наличии «уровней» в системе лояльности клиента)
-
Текущий остаток бонусов (опциональное поле, данные из которого можно получить иным способом)
-
ДисконтнаяКартаИД (поле для связи с таблицей продаж)
3. Движение бонусов (иногда остаток бонусов)
Опциональный источник данных, который мы используем в случае, если нет возможности выгружать списания и начисления бонусов, привязанные к каждой транзакции. Данный вид файлов выгружается по такому же принципу, как и продажи — ДвижениеБонусовБСГГГГММ.csv (например, ДвижениеБонусовБС202501.csv). Поля, которые мы берем из этой таблицы:
-
Период (иными словами, дата)
-
Сумма бонусов
-
ДисконтнаяКартаИД
-
Вид события (начисление/списание)
-
РегистраторИД/Номер чека (опциональное поле, которое позволяет привязаться к каждой транзакции)
Подготовка данных к RFM-анализу
Классический RFM-анализ состоит из трех метрик: Recency (давность покупки), Frequency (частота покупок) и Monetary (траты на покупки). Исходя из этих показателей, клиенты разбиваются на сегменты и формируется примерно такая матрица:

Но на практике нашим заказчикам было неудобно работать с такими сегментами. Например, «случайные» и «спящие» клиенты не давали им никакой конкретики, они хотели четких статусов, которые сразу показывают, что делать с клиентом. Поэтому мы упростили классификацию, убрав лишние статусы и изменив логику расчета остальных.
Шаг №1. Готовим агрегированные данные по картам из таблицы продаж.
-
Количество чеков за последние 90 дней — receipts_90
-
Количество чеков за последние 365 дней — receipts_365
-
Дата последней покупки (дата последнего чека) — last_purchase
-
Дней с последней покупки — days_since
Шаг №2. Логика присвоения статусов
-
Статус: Новый
Условие: карта зарегистрирована (дата создания) в течение последних 90 дней и у клиента 1 чек.
-
Статус: Редкий
Условие: за последние 365 дней (1 год) всего 1 чек.
-
Статус: Растущий
Условие: за последние 365 дней (1 год) всего 2 чека.
-
Статус: Постоянный
Условие: больше двух чеков за последние 365 дней.
-
Статус: В зоне риска
Условие: последняя покупка была от 365 до 730 дней назад.
-
Статус: Отток
Условие: последняя покупка была от 730 до 1095 дней (3 года) назад.
-
Статус: Потерянный
Условие: последняя покупка была более 1095 дней назад.
Почему так?
-
«Новый» сразу выделяется и попадает в особый дашборд с новыми клиентами;
-
1–2 чека не дают клиенту статус «VIP», но позволяют сегментировать тех, кто еще не в фаворе, но уже не холодный;
-
четкая градация по «зоне риска» и «оттоку» помогает планировать маркетинговую активность по возврату клиентов;
-
«потерянных» фиксируем для того, чтобы пользователь аналитики мог исключить их из «реанимационных» маркетинговых рассылок.
Если не вдаваться в подробности формирования агрегированных данных, то в коде этот алгоритм выглядит примерно так:

Примечание. Порядок условий важен: проверяем «новый» по дате создания, а потом уже уходим в годовой F-блок и Recency-блок ниже. Теперь у каждого клиента есть свой статус, который мы используем для создания визуализаций и дашбордов.
Ключевые метрики лояльности на примере сотового ритейла
RFM-статусы дают базовое понимание о клиенте. Но чтобы получить полную картину его взаимодействия с компанией, нужны еще несколько дополнительных метрик. Они показывают, где, что и как часто он берет, и помогают точнее настроить маркетинг и персональные предложения.
-
Частота возврата за 3 года
Что показывает: долю клиентов с 2+ чеками за 3 года, которые после «потерянного» месяца все-таки вернулись к покупке.
Зачем нужно: оцениваем, как удается реанимировать «потерянных» и насколько эффективно работают компании по «реанимации».
Как считаем:
-
Выделение активных клиентов. Собираются все клиенты, сделавшие две и более покупки за последние три года.
-
Учет «потерянных». Из этих активных вычитаются те, кто был в сегменте «Потерянный» в прошлом месяце.
-
Корректировка «веса» потерянных. Чтобы их неактивность отражалась сильнее, каждый «потерянный» считается сразу за трех.
-
Расчет вернувшихся. От общего числа активных вычитается скорректированное число «потерянных», чтобы получить количество клиентов, вернувшихся к покупкам.
-
Нормировка на пул хотя бы раз купивших. Результат делится на количество клиентов, совершивших хотя бы одну покупку за три года (исключая все еще «потерянных»).
2. Любимый магазин и любимая категория
Задача: понять, в каком магазине или какую категорию товаров клиент покупает чаще всего, чтобы:
а) предлагать ему наиболее актуальные акции,
б) формировать персональные рекомендации.
Логика расчета:
-
Берем все транзакции за последние 2 года, сгруппированные по ДисконтнаяКартаКод и МагазинИД (или КатегорияТовара).
-
Считаем для каждой пары «карта–магазин» (или «карта–категория») количество чеков.
-
Сортируем магазины (категории) по убыванию числа чеков для каждой карты.
-
Для каждой карты выбираем первый (топ-1) элемент — это и есть «любимый магазин/категория».

3. Последний купленный телефон
Почему важно: так можно предлагать аксессуары (чехлы, пленки, зарядки) с максимальной персонализацией.
Как считаем:
-
Из всех продаж по карте за последние 3 года фильтруем только товары категории «Смартфоны» (или КатегорияТовара = “Смартфон”).
-
Берем запись с максимальной датой покупки (Дата).
-
Выводим ее в отдельный атрибут ПоследнийТелефон.

4. Возрастная категория
Чтобы разделить аудиторию по поколениям и адаптировать коммуникацию, мы классифицируем клиентов в группы:

Таким образом у нас появляется поле [Возрастная категория], с которым удобно строить аналитику покупок разновозрастных клиентов.
Строим визуализации на основе данных
Теперь, когда мы подробно разобрали ключевые метрики лояльности — от сегментации клиентов до частоты возврата клиентов, посмотрим, как эти показатели складываются в дашборды.
Дашборд «Клиенты»
На этом дашборде собраны вышеупомянутые метрики, а также блок с таблицами и инструментами для тестирования маркетинговых рассылок. Таблицы также позволяют выгрузить данные в виде PDF-файлов, PNG-картинок и, главное, Excel-таблиц.
Это рабочий инструмент, который помогает компаниям не только отслеживать текущее состояние клиентской базы, но и принимать решения на основе данных.


Дашборд «Новые клиенты»
Также мы разработали дашборд, целиком посвященный новым клиентам.

Витрина данных позволяет оперативно отслеживать прирост клиентской базы и анализировать поведение новых клиентов в первые дни после регистрации.
Структура дашборда:
-
Общее количество новых клиентов (в верхней части экрана) — ключевой индикатор, показывающий, насколько активно растет база.
-
Регистрации по регионам — помогает понять, откуда приходят новые клиенты, и выявлять зоны роста.
-
Регистрации по магазинам — позволяет оценить эффективность каждой торговой точки в привлечении новых участников программы.
-
Регистрации по продавцам — метрика, показывающая вклад конкретных сотрудников в развитие базы.
-
Начисление и списание бонусов — линия времени показывает, как быстро клиенты вовлекаются в бонусную механику: начисляют ли им бонусы и начинают ли они ими пользоваться.
-
Повторные покупки и клиентская активность — блок внизу позволяет отследить, сколько клиентов совершили хотя бы одну покупку после регистрации и сколько из них вернулись снова.
Дашборд адаптирован под ежедневный и ежемесячный мониторинг, содержит гибкие фильтры по дате, магазину, карте и номеру телефона. Он особенно полезен для оценки запуска новых точек, активаций по акциям или работы промо-персонала. Также каждую из визуализаций можно развернуть на весь экран.
Дашборд «Лояльность по периодам»
Этот дашборд — ключевой инструмент для анализа динамики клиентской базы и оценки устойчивости лояльности. Он позволяет заглянуть внутрь сегментной структуры и отследить, как изменяются клиентские статусы во времени: кто удерживается, кто теряется, а кто демонстрирует рост вовлеченности.

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

Следующий блок дашборда — матрица перетекания клиентов по статусам. Каждый клиент в каждый момент времени принадлежит к определенному сегменту:
-
Новый
-
Постоянный
-
Растущий
-
Редкий
-
В зоне риска
-
Потерянный
-
Отток
С течением времени клиенты могут мигрировать между этими сегментами. Матрица показывает, откуда и куда перетекли клиенты между двумя месяцами, давая наглядную картину изменений в лояльности. Цветовая маркировка помогает быстро сфокусироваться на тревожных зонах — например, массовом оттоке или резком приросте.
Барчарт (столбчатая диаграмма) показывает процентное изменение по каждому сегменту за период: кто вырос, а кто сдал позиции.
В целом дашборд дает мощный управленческий инструмент для маркетинга, позволяя своевременно реагировать на сигналы оттока и работать с возвратом и удержанием клиентов.
Заключение
В этой статье я показал, как можно структурировать клиентскую базу, отслеживать динамику, находить инсайты и точки роста в системе лояльности. А теперь попробуйте представить: как принимать маркетинговые решения без понимания, кто именно уходит, кто растет, а кто только зарегистрировался в системе. Думаю, что это будто управлять бизнесом с завязанными глазами. Если нужна помощь, обращайтесь.
Буду рад прочитать в комментариях ваши истории: как в компании анализируют клиентские сегменты, есть ли подобные метрики, как отслеживается отток и возвращение клиентов?
ссылка на оригинал статьи https://habr.com/ru/articles/915722/
Добавить комментарий