How to calculate Expansion MRR

Expansion MRR is the additional monthly recurring revenue from existing customers who upgrade, add seats or buy more.

Formula

Expansion MRR = sum of MRR increases from existing customers in the period

SQL query

This example assumes: monthly_mrr(customer_id, month, mrr). It is written in PostgreSQL syntax; date functions differ slightly in MySQL, BigQuery and SQLite, and your column names will differ from these.

SELECT cur.month,
       SUM(cur.mrr - prev.mrr) AS expansion_mrr
FROM monthly_mrr cur
JOIN monthly_mrr prev
  ON prev.customer_id = cur.customer_id
 AND prev.month = cur.month - INTERVAL '1 month'
WHERE cur.mrr > prev.mrr AND prev.mrr > 0
GROUP BY cur.month
ORDER BY cur.month;

Common mistakes that make Expansion MRR wrong

  • A returning customer who was at zero last month is reactivation, not expansion.
  • Price increases are expansion on paper; separate them from upsell if you want to judge selling.
  • Currency moves on non-base-currency plans can look like expansion.

Ask for Expansion MRR in plain English

Instead of writing the query yourself, you can type the question. SchemaChat turns it into SQL against your connected database or uploaded file, runs it, and shows the SQL and the figures it used so you can check the answer before you share it. It does not replace your judgement about the definition: check that the query matches the formula your business uses.

  • How much expansion MRR did we add each month?
  • Which customers expanded the most this quarter?

Frequently asked questions

What is Expansion MRR?
Expansion MRR is the additional monthly recurring revenue from existing customers who upgrade, add seats or buy more.
How do you calculate Expansion MRR?
Expansion MRR = sum of MRR increases from existing customers in the period. The SQL example on this page shows the same calculation against a simple table.
What commonly goes wrong when calculating Expansion MRR?
A returning customer who was at zero last month is reactivation, not expansion.