EnableYourData.com

KPI · Subscriptions and SaaS

Customer churn rate: formula and example.

Customer churn rate is the number of customers who cancel in a period, divided by the number of customers at the start of that period, as a percentage. It shows how much of your customer base you lose each month or year. Because every lost customer has to be replaced before you can grow, customer churn rate is one of the most important metrics for a subscription business.

Customer churn rate formula

Customers who cancel in the period ÷ customers at the start of the period × 100%

Worked example

Acme's subscription service starts September with 420 customers. During September, 13 customers cancel. Customer churn rate is 13 ÷ 420 × 100% = 3.1%.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

Lower churn means you keep customers longer, which raises customer value and makes growth cheaper. Compare churn by plan, customer segment and cohort; new customers often cancel more than those who have stayed a while. An acceptable level depends on your audience and price point, so compare mainly with your own trend and look at cancellation reasons.

Pitfalls with customer churn rate

  • Counting customers who join and cancel in the same month in the numerator but not the denominator.
  • Mixing monthly and annual churn; 3% a month is not 36% a year.
  • Counting a customer with several subscriptions as churned when they cancel only one.

SQL & DAX

Calculating customer 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 months AS (
  SELECT generate_series(date_trunc('month', current_date) - interval '12 months',
                         date_trunc('month', current_date) - interval '1 month', interval '1 month') AS month
),
counts AS (
  SELECT m.month,
         COUNT(DISTINCT s.customer_id) FILTER (WHERE s.started_at < m.month
           AND (s.ended_at IS NULL OR s.ended_at >= m.month)) AS start_customers,
         COUNT(DISTINCT s.customer_id) FILTER (WHERE s.started_at < m.month
           AND s.ended_at >= m.month AND s.ended_at < m.month + interval '1 month') AS churned
  FROM months m CROSS JOIN subscriptions s
  GROUP BY m.month
)
SELECT month, start_customers, churned,
       ROUND(100.0 * churned / NULLIF(start_customers, 0), 1) AS churn_pct
FROM counts
ORDER BY month;
DAX · Power BI
Customer Churn % =
VAR StartDate = MIN('Date'[Date])
VAR StartCustomers =
    CALCULATE(
        DISTINCTCOUNT(Subscriptions[customer_id]),
        Subscriptions[started_at] < StartDate,
        ISBLANK(Subscriptions[ended_at]) || Subscriptions[ended_at] >= StartDate,
        REMOVEFILTERS('Date')
    )
VAR Churned = CALCULATE(DISTINCTCOUNT(MrrMovements[customer_id]), MrrMovements[movement_type] = "churn")
RETURN
    DIVIDE(Churned, StartCustomers)

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for customer 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 churn rate?

Divide the number of customers who cancel in a period by the number of customers at the start of that period and multiply by 100%. With 500 customers at the start of the month and 15 cancellations, churn is 3%. Do not include customers who joined during the period in the denominator.

How do you convert monthly churn to annual churn?

Use 1 − (1 − monthly churn) to the power of 12, not monthly churn × 12. At 3% monthly churn, that is 1 − 0.97^12, roughly 30.6% a year. Multiplying by 12 overstates annual churn because each month you are working from a smaller customer base.

What is the difference between customer churn and revenue churn?

Customer churn counts the number of customers who cancel; revenue churn counts the MRR lost as a result. If mostly small customers leave, customer churn is higher than revenue churn, and vice versa. Track both, as they tell different stories.

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.