Business Metrics
Intermediate 14 min read Business Metrics

Growth Metrics

Momentum has quarters of truth, not one number

Growth accounting segments new, resurrected and returned activity across periods. Understanding which lever moves means better experiments and honest momentum narratives.

growth accountingnew vs returningactivationretentionchurnexpansionresurrection
Before we start

What you will learn

  • Segment activity into new, resurrected and retained buckets
  • Use activation and retention as leading growth signals
  • Explain why MRR growth can slow despite more signups
Introduction

What is this?

Growth metrics decompose change into sources: new customers, resurrected (re-gained) customers, retained (kept) customers, and lost/churned ones. Growth accounting then explains period-over-period changes: faster acquisition, slower churn, or expanded value. Activation (the first meaningful session) and retention (still active N days later) are the leading indicators that precede revenue growth.

Motivation

Why do you need it?

  • A raw 'users up 10%' hides whether that is real or a window artifact.
  • Growth accounting separates luck (resurrection) from durable retention.
  • Activation predicts growth before revenue does; fixing it is cheaper than acquiring more users.
  • Investors ask the retention question; your cohort curves are the answer.
Think about it

Mental model

Imagine

A bucket brigade replenishing a well

Think of

Growth accounting

Water rising depends on new buckets arriving (new users), buckets coming back (resurrection), buckets that keep filling (retention), and buckets that stop (churn). One leak in retention kills a brigade of otherwise-acquiring new people.

Mechanics

How it works

  • Define a period (week/month) and an activity event (order, login, session).
  • Tag each active customer by history: new (first activity), resurrected (returned after a gap), retained (was active last period too).
  • Churn counts customers who were active but stopped.
  • Rate curves plot cohorts by activity week to compare retention.
  • Expansion revenue comes from existing customers increasing spend.

Growth accounting buckets in a period.

All active
New
Resurrected
Retained
Lost / churned
Hands-on

Examples

Growth accounting by SQL

Growth accounting by SQL
SELECT month,
COUNT(DISTINCT CASE WHEN first_month = month
THEN customer END) AS new,
COUNT(DISTINCT CASE WHEN last_month < month AND active
THEN customer END) AS resurrected,
COUNT(DISTINCT CASE WHEN prev_active THEN customer END) AS retained
FROM customer_activity
GROUP BY month;

Each bucket is defined from first_month, last seen month and previous-month activity so the totals partition cleanly and any month can be reproduced exactly.

Real world

In production

  • A streaming product reports 'new vs returning' weekly and separates resurrected binge watchers from durable subscribers.
  • An e-commerce team uses activation (first organic order) as its north-star leading metric.
  • An enterprise tool shows expansion within existing logos before pushing new acquisition spend.
Guidelines

Best practices

  • Define active precisely (the event + the period window) in the dictionary.
  • Publish cohort retention curves alongside headline growth.
  • Separate new money, expansion money and retained money in revenue accounting.
  • Benchmark activation against time-to-first-value for the segment.
Watch out

Common mistakes

  • Counting resurrected users as new, flattering the acquisition line.
  • Measuring retention only on revenue cohorts, blinding the insight team to free users.
  • Looking at aggregate retention ignoring cohort composition shifts.
  • Attributing month-over-month growth to acquisition when expansion revenue is the driver.
Root cause analysis

Common issues

Error
New-user count doubled but MRR is flat
Root cause

Cheap signups not converting to revenue

Fix

Track activation and revenue-per-user, not acquisition alone.

Error
Retention looks flat yet growth stalls
Root cause

Cohort mix shifted toward weaker segments

Fix

Slice retention curves by channel and cohort.

Error
Resurrection spikes distort the trend
Root cause

Seasonal windows or email blasts return dormant users

Fix

Report resurrection separately from new and retained.

When things break

Debugging tips

  • Decompose: (new + resurrected + retained) must equal active for each period.
  • Check the gap-window used for 'resurrected' — too short a gap inflates new.
  • Plot cohort curves on the same axis to compare like-to-like.
  • When MRR grows but active users don't, calculate average revenue per active.
Interviews

Interview checkpoint

Test yourself

Quick quiz

0/2
1

Which bucket catches a customer who was active, went dormant, then returned?

2

Retention curves compare cohorts of different ages on the same axis.

Go deeper

Official documentation