Каноническая формула
Для фиксированной стартовой клиентской когорты C0 и её стартовой recurring revenue базы StartingMRR gross revenue retention за период P определяется так:
GRR(P) = (StartingMRR − ChurnedMRR − ContractionMRR) / StartingMRR
В процентах:
GRR%(P) = GRR(P) × 100
GRR принципиально игнорирует expansion. Эта метрика показывает, сколько стартовой recurring revenue сохранилось до того, как апселы или рост seats начнут маскировать потери.
Определения переменных
- C0: клиентская когорта, active в начале периода
P. - StartingMRR: суммарная recurring monthly revenue, относящаяся к когорте
C0в начале периодаP. - ChurnedMRR: recurring monthly revenue от клиентов из
C0, полностью потерянная за периодP. - ContractionMRR: снижение recurring monthly revenue у surviving customers из
C0за периодP.
Формулы компонентов
Компоненты измеряются так:
StartingMRR = Σ for c in C0 of MRR_start(c)
ChurnedMRR = Σ for c in C0 and fully churned in P of MRR_lost(c)
ContractionMRR = Σ for c in C0 of max(MRR_start(c) − MRR_end(c), 0) excluding full churn
В строгом GRR показатель ExpansionMRR может отслеживаться отдельно, но его вклад в саму формулу равен 0.
Правила когорты
GRR — это fixed-cohort метрика. Стартовая когорта фиксируется в начале периода и не может подменяться набором клиентов на конец периода.
- New logo revenue, привлечённая в период
P, полностью исключается. - Только клиенты из
C0могут давать churn или contraction. - Для
StartingMRR,ChurnedMRRиContractionMRRдолжна использоваться одна и та же recurring revenue policy.
Как только cohort logic меняется или expansion начинает компенсировать потери, результат перестаёт быть strict GRR.
Правила исключения
Из расчёта GRR исключаются:
- Expansion MRR, upgrade revenue и seat growth.
- New customer MRR, полученная после начала периода.
- One-time fees и non-recurring services.
- Taxes, pass-through charges и hardware.
- Разницы в cash collection timing без изменения recurring revenue.
Если вернуть expansion в числитель, метрика превращается уже в NRR, а не в GRR.
Edge cases
- Full churn: потерянная recurring amount идёт в
ChurnedMRR, а не одновременно в churn и contraction. - Partial downgrade: в
ContractionMRRпопадает только recurring delta. - Downgrade followed by upgrade in the same period: downgrade всё равно относится к
ContractionMRR, а компенсирующий upgrade из GRR исключается. - Pauses or temporary credits: их нужно классифицировать по стабильной recurring revenue policy до включения в retention reporting.
- FX translation: правила пересчёта валют должны быть стабильны, иначе GRR начнёт отражать currency movement, а не качество удержания.
Числовой пример
Предположим, что стартовая когорта имеет StartingMRR = 100,000. За период:
ChurnedMRR = 8,000ContractionMRR = 4,000ExpansionMRR = 15,000
Тогда строгая формула GRR выглядит так:
GRR(P) = (100,000 − 8,000 − 4,000) / 100,000
GRR(P) = 88,000 / 100,000 = 0.88
GRR%(P) = 88%
Дополнительный ExpansionMRR = 15,000 улучшает NRR, но на GRR влияет ровно на 0.
Строгий вывод
GRR измеряет gross retention фиксированной стартовой recurring revenue base. Формула вычитает churn и contraction и не позволяет expansion скрывать эти потери.
Если expansion смешивается с формулой или cohort/MRR policy меняются между компонентами, результат уже не является strict GRR.
Связанные материалы
Базовые страницы: