Два вида Churn и два разных диагноза
Большинство основателей совершают одну и ту же ошибку: смотрят на churn как на одну цифру. Но Logo Churn и Revenue Churn — это не два ракурса одной и той же метрики. Это разные диагностические инструменты, которые требуют разных действий.
- Logo Churn: процент клиентов, ушедших за период. Считает логотипы, а не деньги.
- Revenue Churn: процент регулярного дохода, потерянного за период из-за ухода клиентов и даунгрейдов. Считает деньги, а не логотипы.
Эти сочетания означают совершенно разные вещи:
- Высокий Logo Churn и низкий Revenue Churn: уходят мелкие клиенты, а крупные остаются.
- Низкий Logo Churn и высокий Revenue Churn: клиенты остаются, но даунгрейдятся, значит ценность дорогих тарифов размывается.
- Оба высокие: вероятна системная проблема продукта или рынка.
- Оба низкие: бизнес здоров.
Если считать только одну из этих метрик, картина будет неполной.
Определения и основные компоненты
Logo Churn Rate
Logo Churn Rate = Клиенты, ушедшие за период / Клиенты на начало периода × 100
Пример: 500 клиентов на начало месяца, 15 ушли за месяц, значит Logo Churn = 3%.
Что считать ушедшим клиентом, нужно определить жёстко и не менять между периодами.
Считать churned:
- Подписка отменена и grace period уже закончился.
- Платёж не был восстановлен после grace period и всех dunning-попыток.
- Клиент ушёл на $0-план, если freemium считается неплатящим.
Не считать churned:
- Поставленные на паузу подписки.
- Клиентов внутри grace period.
- Даунгрейды, которые относятся к contraction, а не churn.
Grace Period и момент фиксации churn
Grace period — это промежуток между первым неуспешным платежом и окончательной отменой аккаунта. До его завершения клиента нельзя считать churned.
День 0: платёж не прошёл → клиент активен в grace period → retries и уведомления → churn только после истечения grace period
Если записывать churn в момент первого неуспешного платежа, каждый технический сбой биллинга раздувает churn, а каждое последующее восстановление создаёт фальшивую reactivation.
Revenue Churn
Revenue Churn должен включать и полный отток, и contraction.
Revenue Churn = (Churned MRR + Contraction MRR) / MRR(начало) × 100
Если учитывать только Churned MRR, реальные потери регулярной выручки будут занижены. При $6,000 churned и $4,000 contraction на базе $200,000 правильный Revenue Churn равен 5%, а не 3%.
Gross Revenue Retention
GRR = (MRR(начало) − Churned MRR − Contraction MRR) / MRR(начало) × 100
GRR не может быть выше 100%, потому что не учитывает expansion. Именно поэтому это один из самых честных retention-показателей.
Voluntary vs Involuntary Churn
Это разделение даже важнее, чем Logo vs Revenue. Без него невозможно понять, что чинить в первую очередь.
Voluntary churn означает, что клиент ушёл осознанно. Причины: слабая воспринимаемая ценность, лучший конкурент, плохой onboarding, ценовой дискомфорт или изменения в бизнесе клиента.
Involuntary churn означает потерю клиента из-за сбоя биллинга: expired card, insufficient funds, decline со стороны банка или ошибка процессинга.
Churned MRR = Voluntary Churned MRR + Involuntary Churned MRR
В SMB SaaS involuntary churn может составлять значимую долю от всего потерянного MRR. Продукт это не исправит. Биллинг-логика — да.
Типовая dunning-последовательность:
- День 0: неуспешный платёж и первое письмо.
- День 1: retry.
- День 3: retry и письмо с обновлением карты.
- День 7: retry и SMS/push.
- День 14: последняя попытка, grace period заканчивается, аккаунт churns.
Smart retry должен зависеть от кода ошибки.
Early Churn
Early Churn — это отток в первые 30-90 дней после подписки. Это отдельный диагноз.
Early Churn Rate (30d) = Клиенты, ушедшие в первые 30 дней / Все новые клиенты за период × 100
Высокий Early Churn при нормальном общем Logo Churn обычно означает, что продукт подходит тем, кто его понял, но onboarding не доводит новых клиентов до value достаточно быстро.
Annual Churn для годовых контрактов
Для годовых контрактов месячный Logo Churn часто выглядит искусственно низким, потому что клиент не может уйти до renewal. Реальный churn-событие происходит в момент продления.
Annual Renewal Rate = Контракты, продлённые в периоде / Контракты, истекшие в периоде × 100
Annual Logo Churn = 1 − Annual Renewal Rate
Если в декабре истекло 80 годовых контрактов и продлились только 68, Annual Renewal Rate равен 85%, а Annual Logo Churn — 15%.
Производные метрики
Customer Lifetime
Customer Lifetime (месяцы) = 1 / Monthly Logo Churn Rate
Это только грубая оценка, потому что реальные churn-кривые не бывают плоскими.
LTV
LTV = ARPA × Gross Margin / Monthly Churn Rate
Churn нелинейно влияет на LTV. Снижение churn с 5% до 3% может резко увеличить lifetime value.
Net Revenue Churn
Net Revenue Churn = (Churned MRR + Contraction MRR − Expansion MRR) / MRR(начало) × 100
Если expansion превышает churn плюс contraction, Net Revenue Churn становится отрицательным. Это и есть net negative churn.
Churn Cohort Analysis
Cohort Churn Rate(month t) = 1 − Retention Rate(month t)
Churn не постоянен во времени. Когортный анализ показывает его реальную форму, особенно повышенные потери в первые месяцы.
Weighted Logo Churn
Weighted Logo Churn = Σ(MRR churned-клиентов) / Σ(MRR всех клиентов) × 100
По сути это Revenue Churn без contraction. Показатель помогает увидеть влияние размера клиентов за headline-числом Logo Churn.
Churn по сегментам
Агрегированный churn часто скрывает противоположные реальности в разных сегментах. Enterprise может выглядеть здорово, пока SMB резко ухудшается. То же верно и для Revenue Churn.
Типичные ошибки при расчёте churn
- Включать trials в знаменатель. Триальные пользователи не являются платящими клиентами.
- Не разделять churn и contraction. Даунгрейд — это contraction, а не churn плюс new revenue.
- Фиксировать churn при первом неуспешном платеже. В grace period клиент ещё активен.
- Игнорировать сезонность. Month-over-month churn может сильно искажаться бюджетными циклами и renewal-таймингом.
- Смотреть на raw Logo Churn без контекста размера клиента. Потеря аккаунта на $50 и на $5,000 — не одно и то же событие.
- Переписывать исторический churn после reactivation. Возврат в следующем месяце не отменяет факт churn в текущем.
Пример полного расчёта с диагностикой
Начало месяца: 800 клиентов, $160,000 MRR
| Событие | Количество | Logo | MRR |
|---|---|---|---|
| Новые клиенты | 40 | +40 | +$8,000 |
| Добровольные отмены | 18 | −18 | −$4,500 |
| Involuntary churn после failed dunning | 8 | −8 | −$1,200 |
| Даунгрейды (клиенты остались) | 12 | 0 | −$2,400 |
| Reactivation | 3 | +3 | +$600 |
| Апселы | 15 | 0 | +$3,000 |
Logo Churn Rate: (18 + 8) / 800 × 100 = 3.25%
Voluntary Logo Churn: 2.25%
Involuntary Logo Churn: 1.00%
Churned MRR: $5,700
Contraction MRR: $2,400
Expansion MRR: $3,000
Revenue Churn: (5,700 + 2,400) / 160,000 × 100 = 5.06%
GRR: 94.94%
Net Revenue Churn: (5,700 + 2,400 − 3,000) / 160,000 × 100 = 3.19%
NRR: 96.81%
MRR(конец): $163,500
Диагноз: headline Logo Churn выше нормы, но почти треть его — involuntary. Значит, заметная часть проблемы находится в billing recovery, а не в продукте. Revenue Churn выше Logo Churn, что также намекает на потерю или даунгрейд клиентов крупнее среднего.
Как снижать churn
Для voluntary churn:
- Улучшать onboarding и сокращать time to value.
- Использовать early warning сигналы по падению product usage.
- Собирать данные exit survey при отмене.
- Предлагать pause вместо отмены там, где это уместно.
- Давать downgrade-путь перед полным выходом.
Для involuntary churn:
- Использовать smart dunning по коду decline.
- Уведомлять клиентов за 7-14 дней до истечения карты.
- Добавлять ссылку на обновление платёжных данных в каждое billing-письмо.
- Использовать SMS или push для критических ошибок платежа.
- Подключать card updater и настраивать grace period с учётом платёжной истории.
Dnoise автоматически разделяет Logo Churn на voluntary и involuntary на основе Stripe-сигналов отмены и восстановления. Contraction фиксируется отдельно от Churned MRR, grace period настраивается, а Early Churn виден через retention-срезы 30, 60 и 90 дней.
Revenue Churn и GRR обновляются в реальном времени с сегментацией по клиентским группам.
CTA
Dnoise считает churn по исходным данным и разделяет типы churn, которые требуют разных действий.