Track expansion revenue monthly

Build a monthly sheet that separates expansion, contraction and churn, shows which accounts grow and which stall, and gives you a short list of actions.

Define each movement once

Write the definitions on the first tab of your sheet, so everyone counts the same way. For each account, in each month, one of these things happened to its recurring revenue:

  • New: a customer started paying for the first time.
  • Expansion: an existing customer paid more, through more seats, a higher plan, extra usage or a cross-sell.
  • Contraction: an existing customer paid less but stayed.
  • Churn: an existing customer stopped paying.
  • Price change: you changed the price for everyone. Record this separately.

The last line matters. A price rise is not expansion, because the customer did not buy more. Mix them and you will overstate how well your offers work.

Pull the data from the source of truth

Use your billing system, not the CRM, as the source for amounts. Stripe Billing and Chargebee both record subscription changes with dates. Take the recurring amount per customer on the first day of the month and again on the last day.

Use the CRM, for example HubSpot, for context: account type, owner and the reason for the change. Count revenue when it goes live, not when the contract is signed.

Build one row per account

In Google Sheets, create these columns:

  • Account name and type.
  • Recurring revenue at the start of the month.
  • Recurring revenue at the end.
  • Change.
  • Movement type from your list.
  • Expansion method: seats, upgrade, usage or cross-sell.
  • Owner and a short note.

Sort by change. The top and bottom ten rows tell you most of what you need to know.

Calculate three rates

Keep the sums simple. Using the customers you had on day one:

  1. Expansion rate: expansion revenue divided by starting revenue.
  2. Contraction and churn rate: the losses divided by the same starting revenue.
  3. Net change: expansion minus losses, divided by starting revenue.

Take an example indexed to 100. Customers you had on 1 March paid 100 in total. By 31 March, upgrades added 5, downgrades removed 1 and a cancellation removed 2. Expansion rate is 5 per cent. Net change is 2 per cent. The idea behind the net figure is covered in What net revenue retention actually measures, and the reason to read it beside gross retention in NRR vs GRR.

Segment the numbers

One total hides the story. Split expansion by account type, by method and by owner. You may find that most expansion comes from seat growth in mid-sized accounts, while cross-sells almost never land. That tells you where to spend time.

Compare against the right group. Benchmarks by segment are in NRR benchmarks, and your own last six months is a better yardstick still.

Find the stalled accounts

Add a filter for accounts with healthy usage and no change in revenue for six months. These are your best targets, because they already get value. Send that list to the account owners as the monthly action list, and compare it with Identify untapped accounts.

Set a target as a rate

A target such as "expansion of 2 per cent a month on starting revenue" works at any size. Revisit it each quarter. Avoid targets in absolute amounts, because they reward a few big accounts and say nothing about the base.

Run a 30 minute review

On the fourth working day, look at four things: the three rates, the top ten movers, the stalled list and the reasons for contraction. Leave with three actions with owners and dates. Chart the trend in Looker Studio if a picture helps the team, but the sheet is enough to start.

Common mistakes

  • Counting price rises as expansion.
  • Counting signed contracts before they go live.
  • Mixing new customers into the starting base.
  • Looking only at totals, not at segments.
  • Reviewing without leaving with named actions.

How you know it works

After three months you should see the rates move in response to what you did. Account owners should know their stalled accounts without asking. Your numbers should match the billing system to the last unit. When someone asks "is expansion working?", you should answer in one sentence and show the row behind it.