Что такое MRR и что в него не входит
MRR — сумма всех регулярных платёжных обязательств ваших клиентов, приведённая к месяцу. Ключевое слово — регулярных. Это не cash basis, не billings и не признанная выручка по GAAP. MRR живёт в своём измерении и специально изолирован от разовых событий.
В MRR не входят:
- Разовые платежи: setup fee, professional services, onboarding.
- Предоплаты без нормализации: годовой контракт на $1,200 это $100 MRR, а не $1,200.
- Оплата за прошлые периоды в arrears billing для usage-based моделей.
- Условные суммы, например overage, который ещё не зафиксирован.
- Временные скидки вне периода их действия.
ARR = MRR × 12
ARR — это не сумма реальных годовых поступлений, а аннуализированный snapshot текущего момента. Поэтому ARR нельзя путать с revenue в P&L.
Пять компонентов MRR
Смотреть на суммарный MRR без разбивки всё равно что смотреть на температуру без анализа крови. Нужна детализация, чтобы понимать: бизнес растёт за счёт новых клиентов или за счёт апселов? Потери от оттока перекрываются расширением или нет?
New MRR
Доход от клиентов, которые платят впервые в этом месяце. Важно: клиент считается новым только в первый платёжный период. Со второго месяца его MRR — это база, на которой считаются все остальные движения.
New MRR = Σ (тариф × лицензии) по всем новым подпискам месяца
Детализация по каналам привлечения обязательна для зрелого анализа:
New MRR = New MRR (прямые продажи) + New MRR (self-serve / сайт) + New MRR (партнёры, рефералы)
Это позволяет считать реальный CAC по каналу и сравнивать его с LTV.
Expansion MRR
Дополнительный доход от тех, кто уже платил в прошлом месяце. Самый ценный компонент, потому что он не требует затрат на привлечение и напрямую улучшает NRR.
Expansion MRR = Σ (MRR клиента в текущем месяце − MRR клиента в прошлом месяце) для всех клиентов, где разница > 0
Внутри Expansion четыре разных механизма, которые стоит считать раздельно:
- Upsell: переход на более дорогой тариф.
- Cross-sell: покупка отдельного модуля или продукта.
- Add-on: добавление мест, хранилища или API-лимита.
- Usage-based Expansion: превышение включённого лимита.
Пример: тариф включает 10,000 API-запросов. Клиент использовал 15,000 при цене $0.002 за запрос сверх лимита, значит Expansion = $10.
Contraction MRR
Потеря от клиентов, которые остались, но стали платить меньше. Это тихий убийца MRR: клиент формально не ушёл, а выручка уже просела.
Contraction MRR = Σ (MRR клиента в прошлом месяце − MRR клиента в текущем месяце) для клиентов, где разница > 0 и подписка не отменена
Три типовых источника контракции:
- Downgrade: переход на более дешёвый тариф.
- Seat Reduction: уменьшение количества мест.
- Usage Reduction: падение потребления в usage-based модели.
Высокая контракция при низком Logo Churn означает, что клиенты не уходят, но перестают видеть ценность полного тарифа. Это отдельная продуктовая проблема.
Churned MRR
Полная потеря от клиентов, которые отменили подписку в этом месяце.
Churned MRR = Σ полного MRR всех клиентов, отменивших подписку
Критически важно разделять два типа churn:
- Voluntary Churn: клиент ушёл сознательно. Это проблема продукта, поддержки или ценообразования.
- Involuntary Churn: платёж не прошёл и клиента не удалось восстановить в grace period. Это проблема dunning-логики, а не продукта.
Смешивать их в одну цифру — значит применять неправильное лечение.
Reactivation MRR
Доход от клиентов, которые ранее ушли и вернулись в этом месяце. Реактивированный клиент — не то же самое, что новый: у него уже есть история, он знает продукт, а его CAC обычно заметно ниже.
Reactivation MRR = Σ (тариф × лицензии) для реактивированных клиентов
Tracking этого компонента позволяет оценить реальную эффективность win-back кампаний.
MRR(конец) = MRR(начало) + New MRR + Expansion MRR − Contraction MRR − Churned MRR + Reactivation MRR
Это контрольное равенство должно сходиться до копейки. Если не сходится, проблема обычно в двойном счёте, неверной атрибуции события или в ошибке границы месяца из-за timezone.
Производные метрики
Net New MRR
Net New MRR = New MRR + Expansion MRR − Contraction MRR − Churned MRR
Чистый прирост за месяц. Если он отрицательный при положительном New MRR, потери превышают привлечение.
Expansion Efficiency
Expansion Efficiency = Expansion MRR / Churned MRR
Значение больше 1 означает, что апселы компенсируют уходящих клиентов. Выше 1.5 — зона отрицательного churn.
Revenue Churn Rate
Revenue Churn Rate = (Churned MRR + Contraction MRR) / MRR(начало месяца) × 100
Правильная формула включает и churn, и contraction. Если считать только churn, потери будут занижены.
Quick Ratio
Quick Ratio = (New MRR + Expansion MRR) / (Churned MRR + Contraction MRR)
Показывает, насколько рост перекрывает потери. Если показатель ниже 1, бизнес сжимается.
Типичные ошибки при расчёте MRR
- Записывать годовые контракты по полной сумме оплаты вместо нормализации к месяцу.
- Смешивать разовые платежи и услуги с recurring revenue.
- Неправильно определять границу месяца и не нормализовать время по UTC.
- Считать downgrade как churn плюс new revenue вместо contraction внутри одного аккаунта.
- Признавать churn до окончания grace period и всех попыток dunning.
Пример расчёта
Стартовый MRR: $50,000
- 3 новых клиента по $500: New MRR = +$1,500.
- Один клиент перешёл с $1,000 на $2,000: +$1,000.
- Один аккаунт добавил 5 мест по $50: +$250.
- Другой аккаунт убрал 5 мест по $50: −$250.
- 2 клиента ушли с MRR $1,000 и $500: Churned MRR = −$1,500.
MRR(конец): 50,000 + 1,500 + 1,000 + 250 − 250 − 1,500 = 51,000
Net New MRR: +1,000
Quick Ratio: (1,500 + 1,250) / (250 + 1,500) = 1.57
Expansion Efficiency: 1,250 / 1,500 = 0.83
Quick Ratio 1.57 означает, что рост есть, но Expansion пока не перекрывает Churned. Значит, нужно либо снижать отток, либо усиливать апселы.
В разных моделях ценообразования MRR ведёт себя по-разному. Flat-rate проще всего. Per-seat требует строгого учёта мест. Usage-based добавляет волатильность. Hybrid-модель лучше делить на committed component и variable component, чтобы видеть стабильную базу отдельно.
Как Dnoise считает MRR
При подключении Stripe Dnoise автоматически разбивает MRR на все пять компонентов на уровне транзакций. Система смотрит на полную историю подписки и определяет, является ли событие New, Expansion, Contraction, Churned или Reactivation.
Годовые контракты автоматически нормализуются к месяцу. Логика grace period для involuntary churn настраивается. Контрольное равенство проверяется на каждом пересчёте.
CTA
Dnoise автоматически считает MRR по исходным данным и раскладывает его на движения, которые реально объясняют рост.