EnableYourData.com

KPI · Subscriptions and SaaS

Revenue churn rate: formula and example.

Revenue churn rate is the MRR lost in a period through cancellations and downgrades, divided by MRR at the start of that period, as a percentage. Where customer churn counts customers, revenue churn rate measures what those leaving or shrinking customers were worth. Subtracting expansion revenue gives net revenue churn.

Revenue churn rate formula

(Churned MRR + contraction MRR) ÷ MRR at the start of the period × 100%

Worked example

Acme's subscription service starts September with €40,000 MRR. Cancellations remove €1,400 and downgrades €400. Revenue churn rate is (€1,400 + €400) ÷ €40,000 × 100% = 4.5%. Adding €900 of expansion, net revenue churn is (€1,800 − €900) ÷ €40,000 × 100% = 2.25%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

Lower revenue churn means you keep more of your existing recurring revenue. Compare it with customer churn: if revenue churn is much higher, it is mainly larger customers leaving, which needs attention. Net revenue churn below zero means expansion within existing accounts more than makes up for the losses.

Pitfalls with revenue churn rate

  • Not recording whether contraction (downgrades) is included, so figures differ between reports.
  • Mixing up gross and net revenue churn.
  • Including MRR from customers who joined in the same month in the starting figure.

SQL & DAX

Calculating revenue churn rate in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
WITH monthly AS (
  SELECT month,
         SUM(amount) FILTER (WHERE movement_type IN ('churn', 'contraction')) AS lost_mrr,
         SUM(CASE WHEN movement_type IN ('churn', 'contraction') THEN -amount ELSE amount END) AS net_new_mrr
  FROM mrr_movements
  GROUP BY month
),
with_start AS (
  SELECT month, lost_mrr,
         SUM(net_new_mrr) OVER (ORDER BY month) - net_new_mrr AS start_mrr
  FROM monthly
)
SELECT month, start_mrr, lost_mrr,
       ROUND(100.0 * lost_mrr / NULLIF(start_mrr, 0), 1) AS revenue_churn_pct
FROM with_start
ORDER BY month;
DAX · Power BI
Revenue Churn % =
VAR StartMRR = CALCULATE([MRR], DATEADD('Date'[Date], -1, MONTH))
VAR LostMRR =
    CALCULATE(SUM(MrrMovements[amount]), MrrMovements[movement_type] IN {"churn", "contraction"})
RETURN
    DIVIDE(LostMRR, StartMRR)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for revenue churn rate per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate revenue churn?

Add up the MRR lost to cancellations and downgrades and divide by MRR at the start of the period. With €50,000 starting MRR and €1,500 lost, revenue churn is 3%. State whether contraction is included.

What is the difference between gross and net revenue churn?

Gross revenue churn counts only MRR lost through cancellations and downgrades. Net revenue churn subtracts expansion revenue from existing customers. Net revenue churn can be negative when existing customers expand by more than is lost.

What does negative churn mean?

Negative churn means expansion revenue from existing customers is greater than the revenue lost to cancellations and downgrades. Recurring revenue from your existing base then grows even without new customers. It is the same as net revenue retention above 100%.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.