Когортный анализ повторных покупок: таблица удержания клиентов по шагам

Аналитика клиентов ·

Кусок торта и чашка кофе на столе
Фото: Branimir Petakov

Редакция Лояльности 360 · Практическое руководство

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

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

Чем когорта отличается от сегмента

Сегмент «покупал за последние 30 дней» постоянно меняет состав. Когорта «первая покупка в июне» сохраняет исходных участников и сопровождает их дальше. Это различие важно для знаменателя: нельзя каждую неделю удалять из группы неактивных и затем радоваться высокому удержанию оставшихся.

Начните с одного признака — периода первой покупки. Дополнительные срезы по каналу, филиалу или первому товару добавляйте после проверки основной таблицы. Если сразу разделить небольшую базу на десятки сочетаний, в ячейках останутся единицы людей и случайность будет выглядеть закономерностью.

Какое событие выбрать началом отсчёта

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

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

ПолеПримерПравило
ID клиентаКлиент 104Одинаковый во всех источниках
ID покупкиЗаказ 781Уникальный, без дублей оплаты
Дата завершения12 июняЕдиный часовой пояс
Первая покупка12 июняМинимальная корректная дата в полной истории
КогортаИюньПрисваивается один раз
Возраст покупки35 днейОт её даты минус дата первой покупки

Выберите тип возврата до построения таблицы

Есть два разных вопроса. Первый: сколько клиентов сделали хотя бы одну повторную покупку за первые 30, 60 или 90 дней? Это накопительный показатель. Второй: сколько покупали именно в возрастном интервале, например с 31-го по 60-й день? Это интервальный показатель. Они по-разному меняются и не должны стоять в одной таблице под одинаковой подписью.

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

Учебный расчёт повторной покупки за 30 дней

Доля второй покупки за 30 дней = клиенты с завершённой повторной покупкой в течение 30 дней после первой / все клиенты исходной когорты × 100%.

Допустим, в июне впервые купили 120 человек. Из них 36 вернулись в течение первых 30 дней, а 54 — в течение первых 60 дней. Показатели равны 30% и 45%. Если десять клиентов сделали по четыре заказа, они всё равно дают десять вернувшихся людей, а не сорок.

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

КогортаКлиентов на стартеПовтор за 30 днейПовтор за 60 днейПовтор за 90 дней
Июнь12036 / 120 = 30%54 / 120 = 45%60 / 120 = 50%
Июль10035 / 100 = 35%46 / 100 = 46%Нет полного наблюдения
Август14042 / 140 = 30%Нет полного наблюденияНет полного наблюдения

Это вымышленные данные для демонстрации метода. «Нет полного наблюдения» не означает ноль. Чтобы заполнить 30-дневную ячейку месячной когорты полностью, 30 дней должны пройти даже для клиента, купившего в последний день этого месяца.

Как учитывать незрелые группы

Самый понятный способ для небольшого бизнеса — показывать только полностью созревшие окна всей когорты. Рядом храните дату выгрузки. Более сложный вариант — считать только клиентов, у которых нужный срок уже завершился, и выводить отдельный знаменатель зрелой части. Тогда это другая версия показателя, и её нельзя выдавать за результат всей месячной группы.

При сравнении июньской и августовской когорт берите общий доступный горизонт: например, первые 30 дней. Фраза «июнь принёс больше повторов за всё время» почти ничего не объясняет: июньские клиенты просто имели больше возможностей купить.

Как собрать таблицу в электронной таблице

  1. Выгрузите завершённые покупки с клиентскими ID и статусами возвратов.
  2. Удалите технические дубли, отмены и тестовые операции по записанному правилу.
  3. Найдите минимальную дату покупки каждого клиента в доступной полной истории.
  4. Присвойте период когорты и рассчитайте возраст каждой следующей покупки.
  5. Поставьте клиенту признак наличия повтора в нужном окне.
  6. Сведите уникальных клиентов по когорте и поделите на исходный размер группы.
  7. Закройте незрелые ячейки и проверьте несколько историй вручную.

Не суммируйте флаги повторов по строкам чеков: один человек может попасть в них много раз. Сначала получите одну строку на клиента и горизонт, затем делайте сводную. Это одна из частых причин завышенных процентов.

Какие решения принимать по рисунку повторов

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

Это направления проверки, а не доказанные причины. Одновременное изменение цены, сезона и рекламного канала не позволяет приписать разницу одной акции. Важные изменения помечайте в календаре и проверяйте сопоставимые группы.

Как добавить деньги и не потерять смысл

Покупательский retention и выручка на исходного клиента — разные показатели. Можно удержать меньшую долю людей, но получить больше выручки от нескольких крупных заказов. Поэтому выводите их рядом, с отдельными определениями, и смотрите распределение: один корпоративный заказ не должен маскировать слабые повторы остальных.

Финансовые данные берите из кассы или учётной системы. Лояльность 360 помогает вести гостей, визиты, подарки и коммуникации через Telegram и MAX; описанная когортная таблица собирается отдельно. Не заменяйте оплату фактом чтения сообщения, а сумму заказа — числом начисленных визитов.

Как превратить анализ в регулярную работу

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

Для разработки сценария после анализа используйте материал о частоте покупок. Таблица отвечает на вопрос, где теряется повтор, а сценарий — что конкретно изменить в опыте клиента. Если разделять эти задачи, когортный анализ становится инструментом решений, а не разноцветной картинкой для отчёта.

Источники и методика

Stripe: структура и применение когортного анализа; Amplitude: временные окна удержания. Определения адаптированы к малому бизнесу; таблицы и числа в статье — учебные примеры редакции.

Посмотреть возможности Лояльности 360

Кейс «Сочного клуба»: бар и магазин