Net Revenue Retention (NRR): формула и интерпретация

Что такое NRR

Net Revenue Retention (NRR) — показатель, насколько вы удерживаете и растите выручку от существующих клиентов за период, обычно год. Это одна из главных метрик SaaS-бизнеса, которую смотрят инвесторы и советы директоров.

Простая интерпретация: если вы перестали привлекать новых клиентов, как изменилась бы выручка от уже имеющихся за год? NRR 100% означает, что выручка осталась бы той же. NRR 120% — выросла бы на 20% без новых клиентов. NRR 80% — упала бы на 20%.

Высокий NRR означает product-market fit и здоровый бизнес. Низкий — фундаментальные проблемы с удержанием. Разница между 90% и 120% NRR для 10-миллионного ARR — это $3 миллиона в год. Метрика серьёзная.

Формула

Классическая формула:

NRR = (MRR существующих клиентов на конец периода) / (MRR тех же клиентов на начало периода) × 100%

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

Пример. На начало года MRR 100 clients равен $100k. За год:

  • Часть ушла (churn): -$15k.
  • Часть снизила тариф (downgrade): -$5k.
  • Часть увеличила тариф (expansion): +$25k.
  • Некоторые вернулись (resurrection): +$3k.

Итоговый MRR тех же клиентов на конец: 100 - 15 - 5 + 25 + 3 = $108k.

NRR = 108 / 100 = 108%.

Это значит: без единого нового клиента бизнес вырос на 8% за год. Великолепный показатель.

Компоненты NRR

NRR состоит из нескольких сил, которые тянут в разные стороны.

Churn — полностью потерянный revenue. Клиент отменил подписку. Снижает NRR.

Downgrade — клиент перешёл на более дешёвый тариф. Снижает.

Expansion — клиент перешёл на более дорогой тариф, добавил пользователей, купил add-ons. Увеличивает.

Resurrection — клиент, который раньше ушёл, вернулся. Увеличивает, но редко.

Простейшая декомпозиция:

NRR = 1 - Churn Rate - Downgrade Rate + Expansion Rate + Resurrection Rate

Для здорового SaaS expansion обычно доминирует. Это возможно, когда продукт имеет usage-based pricing или tier upgrades, и клиенты со временем платят больше.

GRR vs NRR

Часто путают с Gross Revenue Retention (GRR). Разница важна.

GRR считает только потери: churn и downgrade. Expansion не учитывается. GRR максимум = 100%.

GRR = (MRR существующих на конец) / (MRR на начало)
       где не учитывается revenue от upgrades

NRR считает всё, включая expansion. NRR может быть больше 100%.

GRR показывает, как хорошо вы удерживаете базу. NRR — как хорошо удерживаете плюс растёте на existing.

Обе метрики важны. GRR — фундамент. NRR — возможность масштабирования.

Нормы по индустрии

Для B2B SaaS:

  • NRR < 90% — тревожно. Теряете revenue быстрее, чем expansion даёт рост.
  • NRR 90-100% — нормально для small/medium SaaS.
  • NRR 100-110% — хорошо. Здоровый бизнес.
  • NRR 110-120% — отлично. Фундамент для быстрого роста.
  • NRR > 120% — exceptional. Snowflake в лучшие годы был 150%+, Zoom 130%+.

Для B2C подписок NRR обычно ниже, потому что expansion возможностей меньше. 90% — норма.

Для enterprise SaaS (Salesforce, Workday) NRR часто 110-120% за счёт добавления seats и modules.

Ваш NRR сравнивайте с похожими компаниями. Absolute value без контекста ни о чём.

Глубокое понимание SaaS-метрик помогает на собеседованиях в продуктовых компаниях и финтехе. В тренажёре Карьерник есть задачи на расчёт метрик и их интерпретацию.

Расчёт в SQL

Для ежегодного NRR:

WITH start_cohort AS (
    -- Клиенты на начало периода
    SELECT customer_id, monthly_amount AS start_mrr
    FROM subscriptions
    WHERE status = 'active'
      AND started_at <= '2025-04-01'
      AND (ended_at IS NULL OR ended_at > '2025-04-01')
),
end_mrr AS (
    -- Их текущий MRR
    SELECT customer_id,
           COALESCE(SUM(monthly_amount), 0) AS end_mrr
    FROM subscriptions
    WHERE status = 'active'
      AND customer_id IN (SELECT customer_id FROM start_cohort)
      AND started_at <= '2026-04-01'
      AND (ended_at IS NULL OR ended_at > '2026-04-01')
    GROUP BY customer_id
)
SELECT
    SUM(s.start_mrr) AS total_start_mrr,
    SUM(COALESCE(e.end_mrr, 0)) AS total_end_mrr,
    ROUND(SUM(COALESCE(e.end_mrr, 0)) * 100.0 / SUM(s.start_mrr), 1) AS nrr_pct
FROM start_cohort s
LEFT JOIN end_mrr e USING (customer_id);

Результат — единая цифра. Для подробной декомпозиции нужны дополнительные CTE: отдельно посчитать churn, downgrade, expansion.

NRR декомпозиция

Для понимания, откуда идёт NRR, разбиваем по компонентам:

WITH cohort AS (
    -- Снимок начала года
),
changes AS (
    SELECT
        customer_id,
        start_mrr,
        end_mrr,
        CASE
            WHEN end_mrr = 0 THEN 'churned'
            WHEN end_mrr > start_mrr THEN 'expanded'
            WHEN end_mrr < start_mrr THEN 'downgraded'
            ELSE 'stable'
        END AS status
    FROM cohort
)
SELECT
    status,
    COUNT(*) AS customers,
    SUM(start_mrr) AS start_mrr,
    SUM(end_mrr) AS end_mrr,
    SUM(end_mrr - start_mrr) AS delta
FROM changes
GROUP BY status;

Получаете таблицу:

status      customers   start_mrr   end_mrr   delta
churned     15          15000       0         -15000
downgraded  8           8000        5000      -3000
stable      60          60000       60000     0
expanded    17          17000       27000     +10000

Видно, откуда NRR formируется. Если churn — самый большой компонент, надо работать над retention. Если expansion маленький — над upsell.

Пример реальной декомпозиции

Представим SaaS с ARR $10M:

  • Start-of-year cohort MRR: $833k.
  • Churn: -$100k (12%).
  • Downgrade: -$25k (3%).
  • Expansion: +$200k (24%).
  • End-of-year cohort MRR: $908k.

NRR = 908 / 833 = 109%.

Декомпозиция показывает, что продукт теряет 15% MRR за год к churn+downgrade, но expansion 24% перекрывает. Здоровая ситуация, но есть что улучшать в retention.

NRR и growth

NRR — фундамент масштабирования. С NRR 110% и тем же маркетинговым бюджетом компания растёт быстрее, чем с NRR 95%, даже если обе привлекают одинаковое число новых клиентов.

Упрощённо: total revenue growth = NRR на existing + revenue от new customers.

Если NRR = 120% и new customers добавляют ещё 30% — total growth 50%. Если NRR = 90% и new 30% — growth 20%. Разница огромная.

Инвесторы смотрят на NRR как на predictor будущего роста. Высокий NRR в scale (после достижения product-market fit) позволяет привлекать capital на лучших условиях.

Улучшение NRR

Тактики:

Снижение churn. Качественный customer success, onboarding, proactive outreach когда видите признаки отказа.

Reducing downgrade. Гибкие планы, возможность paused subscription вместо cancellation.

Encouraging expansion. Usage-based pricing, tier upgrades с дополнительной ценностью, cross-sell других продуктов.

Expansion triggers. Автоматические предложения upgrade при достижении лимитов текущего плана.

Resurrection campaigns. Winback email-ы, персональные предложения ушедшим клиентам.

Для B2B SaaS самый большой рычаг — expansion через добавление seats и usage. Для B2C — снижение churn, потому что expansion возможностей мало.

Cohort NRR vs aggregate

Простая формула даёт aggregate NRR. Более точно — cohort NRR:

Для каждой когорты (клиенты, появившиеся в определённый квартал):
- Стартовый MRR.
- MRR через 12 месяцев.
- NRR для этой когорты.

Общий NRR — weighted average.

Cohort NRR показывает тренды: улучшается ли удержание новых когорт. Aggregate скрывает это.

Типичные ошибки

Включать новых клиентов. NRR только по existing, иначе это просто revenue growth.

Сравнивать по календарным периодам без normalization. Когорта Q4 появилась недавно и ещё не успела уйти. NRR будет искусственно высоким.

Игнорировать discount. Если дали 50% скидку на продление, MRR снизился. Это downgrade, влияет на NRR.

Считать на месячных/квартальных окнах. NRR — annual метрика. Короткие окна слишком шумные.

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

FAQ

NRR или GRR — что важнее?

Оба. GRR показывает retention, NRR — retention плюс рост. Инвесторы смотрят на NRR как на headline-метрику.

Какой NRR считается хорошим?

Для B2B SaaS: 110%+ — хорошо, 120%+ — отлично. Для B2C — 95%+ норма.

Как часто мерить?

Annual. Короткие периоды слишком шумные, не показывают реальную картину.

NRR для маркетплейсов?

Применима, если есть recurring buyers. Для one-time purchases концепция не работает.