Назад к блогу

Когортный анализ на практике: как читать retention curves и прогнозировать churn

10 мин чтения107January 5, 2026

Когортный анализ и retention

Однажды CEO SaaS-компании показал мне дашборд: «Retention 78%, всё отлично». Я попросил разбить по когортам. Оказалось, что когорта 6-месячной давности удерживалась на 85%, а последние три когорты — на 60%. Общий retention выглядел здоровым, потому что старые лояльные пользователи маскировали отток новых. Компания не знала, что у неё проблема, пока когортный анализ не вскрыл реальную картину.

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

Зачем когортный анализ, если есть общий retention rate

Общий retention rate — это среднее по больнице. Он скрывает как минимум три проблемы:

Рост новых пользователей маскирует отток старых. Если каждый месяц приходит 1 000 новых пользователей, а 300 старых уходят — общая база растёт, retention «в среднем» выглядит хорошо. Но ваш продукт теряет треть клиентов, и как только рост замедлится — база начнёт сжиматься.

Изменения в продукте не видны. Вы запустили новый onboarding 3 месяца назад. Он помог? Общий retention не покажет — в нём перемешаны пользователи с разным стажем. Только сравнение когорт до и после изменения покажет эффект.

Разные каналы привлекают разных пользователей. Органические пользователи могут удерживаться на 70%, а пришедшие из платной рекламы — на 40%. Средний retention 55% скрывает эту разницу.

Когортный анализ группирует пользователей по времени первого события (регистрация, первая оплата, первая сессия) и отслеживает поведение каждой группы отдельно.

Строим retention curve шаг за шагом

Шаг 1. Определите когорту

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

Тип когортыКогда использоватьПример
По дате регистрацииFreemium, мобильные приложения«Все, кто зарегистрировался в январе 2025»
По дате первой оплатыSaaS с trial, подписки«Все, кто впервые заплатил в январе 2025»
По дате первого действияMarketplace, транзакционные модели«Все, кто совершил первую покупку в январе»

Выбор типа когорты зависит от бизнес-модели. Для SaaS с подпиской я рекомендую когорту по первой оплате — она отсекает пользователей, которые зарегистрировались, но никогда не платили.

Шаг 2. Выберите период

  • Дневные когорты — для мобильных приложений и игр, где активность измеряется в днях
  • Недельные — для продуктов с циклом использования в несколько дней
  • Месячные — для SaaS, подписок, B2B-продуктов. Это самый распространённый вариант

Шаг 3. Рассчитайте retention для каждой когорты

Формула retention для месяца nn:

R(n)=Активные пользователи когорты в месяце nРазмер когорты (начальный)×100%R(n) = \frac{\text{Активные пользователи когорты в месяце } n}{\text{Размер когорты (начальный)}} \times 100\%

Пример расчёта для когорты «Январь 2025» (начальный размер: 500 пользователей):

МесяцАктивныеRetention
M0 (Январь)500100%
M1 (Февраль)34068%
M2 (Март)26553%
M3 (Апрель)23046%
M4 (Май)21543%
M5 (Июнь)21042%
M6 (Июль)20541%

Шаг 4. Постройте кривую

Retention curve — это график R(n)R(n) по оси Y (0-100%) и периодов по оси X. Форма кривой расскажет вам о продукте больше, чем любой средний показатель.

M0 всегда 100% — это месяц первого события. Некоторые аналитики начинают с M1, что создаёт путаницу при сравнении. Стандартная практика — начинать с M0 = 100%.

Ещё одна ошибка, которую я часто вижу — путаница между «вернулся хотя бы раз» и «активен в конкретном месяце». Retention считается за конкретный период: пользователь активен именно в месяце M3, а не «был активен где-то между M1 и M3». Второй вариант — это cumulative engagement, не retention.

Читаем heatmap: паттерны удержания

Heatmap когортного анализа — таблица, где строки — когорты, столбцы — периоды, а цвет ячейки отражает retention (тёмный = высокий, светлый = низкий). Три паттерна, которые нужно уметь распознавать:

Здоровая кривая: быстрое падение, затем плато

M0    M1    M2    M3    M4    M5    M6    M7    M8    M9    M10   M11
100%  65%   50%   43%   40%   38%   37%   36%   35%   35%   34%   34%

Первые 2-3 месяца — резкое падение. Уходят те, кому продукт не подошёл. После этого кривая выравнивается на плато. Плато — сигнал product-market fit: оставшиеся пользователи нашли ценность и остаются надолго.

Уровень плато зависит от категории продукта:

КатегорияТипичное плато (M12)
SaaS B2B Enterprise85-95%
SaaS B2B SMB60-75%
SaaS B2C (подписки)30-50%
Мобильные приложения15-25%
E-commerce (повторные покупки)20-35%

Тревожная кривая: медленное падение без плато

M0    M1    M2    M3    M4    M5    M6    M7    M8    M9    M10   M11
100%  80%   68%   58%   49%   42%   36%   31%   27%   23%   20%   17%

Кривая не выходит на плато — отток продолжается. На первый взгляд, M1 = 80% выглядит отлично. Но через 12 месяцев остаётся 17%. Это «молчаливый» паттерн: нет резкого обвала, который привлёк бы внимание, но продукт стабильно теряет пользователей. Типичная причина — продукт решает разовую задачу, а не создаёт привычку.

Отличная кривая: рост retention (smile curve)

M0    M1    M2    M3    M4    M5    M6    M7    M8    M9    M10   M11
100%  55%   45%   42%   40%   41%   43%   45%   47%   48%   49%   50%

Редкий и ценный паттерн. После начального оттока retention начинает расти. Это значит, что оставшиеся пользователи активируют других (виральность), или продукт становится ценнее со временем (сетевой эффект). Smile curve — сильный сигнал инвестору.

Сравнение когорт на heatmap

Допустим, у вас три когорты. Heatmap покажет разницу сразу:

КогортаM0M1M2M3M4M5M6
Янв 2025100%62%48%41%38%36%35%
Фев 2025100%68%55%49%46%44%43%
Мар 2025100%71%58%52%———

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

Churn Rate: обратная сторона retention

Churn — это retention наоборот, но считать его можно по-разному.

Gross Churn vs Net Churn

Валовый отток=Ушедшие пользователиАктивные на начало периода×100%\text{Валовый отток} = \frac{\text{Ушедшие пользователи}}{\text{Активные на начало периода}} \times 100\%

Чистый отток=Ушедшие−РеактивированныеАктивные на начало периода×100%\text{Чистый отток} = \frac{\text{Ушедшие} - \text{Реактивированные}}{\text{Активные на начало периода}} \times 100\%

Если gross churn = 8%, но 2% пользователей возвращаются (реактивация через email-кампании, промо-акции), то net churn = 6%. Для финмодели используйте net churn — он реалистичнее.

Revenue Churn vs Logo Churn

Logo churn — отток по количеству клиентов. Revenue churn — отток по выручке. Эти показатели могут расходиться кардинально:

МесяцУшедших клиентовПотерянная выручкаLogo ChurnRevenue Churn
Январь15 из 300$750 из $15 0005.0%5.0%
Февраль12 из 285$2 400 из $14 2504.2%16.8%

В феврале ушло меньше клиентов, но revenue churn резко вырос — потому что ушли крупные. Revenue churn важнее для P&L, logo churn — для понимания продуктовых проблем.

Net Revenue Retention (NRR)

NRR добавляет к этому expansion (upsell, cross-sell):

NRR=MRR начало−Потерянный MRR−MRR от снижения тарифов+MRR от расширенияMRR начало×100%NRR = \frac{\text{MRR начало} - \text{Потерянный MRR} - \text{MRR от снижения тарифов} + \text{MRR от расширения}}{\text{MRR начало}} \times 100\%

NRR > 100% значит, что вы зарабатываете с существующих клиентов больше, чем теряете от оттока. Benchmark для B2B SaaS — 110-130%.

Расчёт месячного churn из retention curve

Месячный отток(n)=1−R(n)R(n−1)\text{Месячный отток}(n) = 1 - \frac{R(n)}{R(n-1)}

Пример:

МесяцRetentionМесячный churn
M0100%—
M168%32%
M253%22%
M346%13%
M443%6.5%
M542%2.3%
M641%2.4%

Месячный churn снижается со временем. Это типичная картина: ранний отток «случайных» пользователей высок, а те, кто остался, уходят реже. Усреднённый churn 5% в месяц не отражает эту динамику.

Именно поэтому, когда инвестор спрашивает «какой у вас churn?», ответ «5%» — неполный. Правильный ответ: «M1 churn — 32%, но к M6 стабилизируется на 2-3%, что говорит о сильном product-market fit для ядра пользователей.» Об этом обязательно спросят при защите финмодели перед инвестором.

Как retention влияет на P&L и LTV

Разница в retention, которая кажется незначительной (5 процентных пунктов), на горизонте 36 месяцев меняет LTV кратно.

LTV через retention curve

Традиционная формула LTV=ARPU/ОттокLTV = ARPU / \text{Отток} предполагает постоянный churn. Более точная формула — сумма дисконтированных ARPU по кривой удержания:

LTV=∑n=0NARPU×R(n)(1+d)nLTV = \sum_{n=0}^{N} \frac{ARPU \times R(n)}{(1 + d)^n}

где dd — месячная ставка дисконтирования (обычно 1-2%).

Без дисконтирования:

LTVпростая=ARPU×∑n=0NR(n)LTV_{\text{простая}} = ARPU \times \sum_{n=0}^{N} R(n)

Таблица: как 5% разницы в retention меняет LTV

Две кривые: Сценарий A — плато на 35%, Сценарий B — плато на 40%. ARPU = $25/мес.

МесяцRetention ARetention BРазница
M0100%100%0%
M165%70%+5%
M342%47%+5%
M636%41%+5%
M1235%40%+5%
M2435%40%+5%
M3635%40%+5%

Теперь считаем LTV (сумма ARPU * R(n) за 36 месяцев):

МетрикаСценарий AСценарий BРазница
Сумма R(n), 36 мес14.316.4+15%
LTV (ARPU $25)$358$410+$52 (+15%)

На 36 месяцах разница — 15%. Но если смотреть на LTV через 60 месяцев:

МетрикаСценарий AСценарий B
Сумма R(n), 60 мес22.726.2
LTV (ARPU $25)$568$655
Разница—+$87 (+15%)

А теперь возьмём более радикальную разницу — плато на 30% vs 45%:

МетрикаПлато 30%Плато 45%Разница
LTV, 36 мес$303$463+53%
LTV, 60 мес$480$745+55%

15 процентных пунктов на плато дают больше 50% разницы в LTV. Ни один другой параметр финмодели не двигает результат так сильно.

Прогнозирование выручки по когортам

Выручка в месяце tt — это сумма ARPU по всем активным пользователям из всех когорт:

Доход(t)=∑c=0tNc×ARPU×R(t−c)\text{Доход}(t) = \sum_{c=0}^{t} N_c \times ARPU \times R(t - c)

где NcN_c — размер когорты cc, R(t−c)R(t-c) — retention когорты через t−ct-c месяцев.

Пример (ARPU = $25, рост когорт +10%/мес):

МесяцНовые (когорта)Актив. из M0Актив. из M1Актив. из M2Всего актив.Выручка
M0200200——200$5 000
M1220136220—356$8 900
M2242106150242498$12 450
M326692117165640$16 000

Здесь retention curve: M0=100%, M1=68%, M2=53%, M3=46%. Каждая строка — накопление когорт. Выручка растёт быстрее, чем размер когорт, потому что старые когорты продолжают приносить доход.

Такой прогноз точнее, чем «активная база * ARPU», потому что учитывает состав аудитории. 640 активных пользователей в месяце M3 — это 92 из первой когорты (самые лояльные), 117 из второй, 165 из третьей и 266 новых. Каждая группа имеет разную вероятность оттока в следующем месяце, и retention curve это учитывает.

Когортный retention в финансовой модели

От фиксированного churn к retention curve

Я видел десятки финмоделей с фиксированным churn: «5% в месяц». Это удобно для расчётов, но искажает реальность в двух направлениях:

  1. Переоценивает отток на позднем этапе. Если реальная кривая выходит на плато, фиксированный churn продолжает «убивать» пользователей, которые в реальности остались бы.

  2. Недооценивает ранний отток. Первые месяцы — самые опасные. Реальный churn может быть 30-40% в M1, а фиксированная модель покажет 5%.

Сравнение прогнозов:

МесяцФикс. churn 5%Retention curveРазница
M01 0001 0000
M1950680-270
M3857460-397
M6735410-325
M12540380-160
M24292360+68

При фиксированном churn 5% через 24 месяца остаётся 292 из 1 000. Retention curve с плато на 37% даёт 360. На раннем этапе фиксированный churn оптимистичен (занижает отток), на позднем — пессимистичен (завышает). Ошибка уходит в P&L, прогноз выручки и LTV.

Сезонность и когорты

Retention зависит от сезона. Пользователи, пришедшие в январе (после новогоднего пика рекламы), могут удерживаться хуже, чем осенние когорты. Причины:

  • Разное качество трафика (импульсные vs намеренные установки)
  • Сезонные колебания использования (каникулы, отпуска)
  • Промо-когорты с завышенными ожиданиями

В финмодели это учитывается через seasonality multiplier к retention curve:

Rсезонная(n)=Rбазовая(n)×S(c)R_{\text{сезонная}}(n) = R_{\text{базовая}}(n) \times S(c)

где S(c)S(c) — сезонный коэффициент когорты cc (0.8-1.2).

Практика: визуализация и инструменты

Когортный анализ полезен ровно настолько, насколько легко его читать и обновлять. На практике нужны три вещи:

1. Heatmap

Таблица с цветовой кодировкой, где сразу видно:

  • Какие когорты удерживаются лучше/хуже
  • На каком месяце кривая выходит на плато
  • Есть ли тренд (улучшение/ухудшение со временем)

2. Retention curve overlay

Несколько кривых на одном графике. Позволяет визуально сравнить когорты и увидеть эффект изменений в продукте.

3. Связь с P&L

Кривая удержания должна жить внутри финансовой модели, а не в отдельном отчёте: изменили кривую — сразу видно, что стало с LTV, выручкой и break-even.

В ProductWave retention curve задаётся в параметрах модели, и от неё считаются активные пользователи, выручка и LTV. Виджет Cohort Heatmap на дашборде показывает тепловую карту удержания по когортам. Переключатель «Когортный retention» в настройках модели меняет расчёт с фиксированного churn на кривую удержания, так что два прогноза можно сравнить.

Подробнее о том, как retention curve влияет на unit-экономику — CAC, LTV, Payback — разобрано в гайде по unit-экономике. О построении полной P&L-модели с учётом когортного retention — в пошаговом руководстве.

Если когортного анализа у вас пока нет, начните с одного: постройте heatmap по месяцам первой оплаты и посмотрите, выходит ли кривая на плато. Если не выходит, у продукта нет ядра лояльных пользователей, и маркетингом это не исправить.

Сравнить два прогноза на своих цифрах можно в ProductWave: включите когортный retention в настройках модели и посмотрите, насколько он расходится с фиксированным churn.

January 5, 2026

АналитикаПродакт-менеджментSaaSГайд
107

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