---
title: "Churn Rate Formula: Why Monthly and Annual Numbers Disagree"
description: "A churn rate formula gives four different answers on the same accounts. The four definitions that conflict, the denominator trap, and how to reconcile them."
topic: "Metrics"
author: "Jay Bheda, Co-founder, GainTrace"
audience: "Founder, CS Operations"
published: 2026-09-18
modified: 2026-09-18
source: https://gaintrace.com/explore/metrics/churn-rate-formula-monthly-vs-annual
---

# Why Do My Monthly and Annual Churn Rate Formulas Disagree?

*When four correct calculations give four different answers*

**Short answer:** The churn rate formula is not one formula: logo churn, gross revenue churn, net revenue churn and renewal-window churn measure four different things on the same accounts. Monthly and annual figures also disagree because monthly churn compounds instead of multiplying, and because annual contracts can only cancel in their renewal months. Label every number before you compare it.

**Key takeaways**

- Four churn rate formulas usually run on the same accounts at once: logo churn, gross revenue churn, net revenue churn and renewal-window churn. Three of them can be right while all four disagree.
- Monthly churn compounds. 2% a month is 21.5% a year, not 24%, and the gap widens as the rate rises, so the multiply-by-twelve habit always overstates the annual loss.
- On annual contracts a monthly churn rate carries almost no information, because eleven months in twelve contain nothing that can legally cancel. Measure against what reached its renewal date instead.
- The denominator decides the answer. Start of period, average of period and available to renew produce different rates from identical events, so publish the denominator beside the rate.
- Involuntary churn from failed cards belongs on its own line. Folding it into the number a customer success team is measured on hides a payments problem and blames the wrong people.

Someone has pulled a churn rate formula into a board deck, someone else has pulled a different one into a QBR, and the two numbers are eight points apart on the same accounts in the same quarter. Finance says 9%. The customer success dashboard says 2.1% a month, which the deck has turned into 25%. Nobody has made an arithmetic mistake. The two calculations are answering different questions and neither one says which question it answered.
This page is for the founder or CS Ops lead who has to reconcile those numbers before Thursday. It sets out the four definitions that conflict, the three denominators that change the answer without changing a single event, the compounding rule that breaks the monthly-times-twelve habit, and a reconciliation you can run in a spreadsheet in about an hour. For what a good number looks like once you have a defensible one, see [how much churn is normal for a B2B SaaS startup](https://gaintrace.com/explore/retention/how-much-churn-is-normal-b2b-saas).

## Why does one churn rate formula give four different answers?

A churn rate formula gives four answers because four separate measurements share the word churn: customers lost, revenue lost, revenue lost after expansion is netted off, and revenue lost as a share of what came up for renewal. A portfolio of 400 customers that loses 8 small logos and keeps every large one can report 2% logo churn and 0.4% revenue churn in the same month. Both are correct. Printed side by side with no labels, they look like a disagreement.

> **The churn label:** The churn label is the four fields that must travel with every churn number: **unit** (logos or revenue), **window** (the period it covers), **base** (what sits in the denominator) and **scope** (voluntary only, or every loss including failed payments). A churn figure without its label cannot be compared with any other churn figure, including your own from last quarter.

| Formula | What it answers | Use when |
| --- | --- | --- |
| Logo churn | What share of customers left, counting a $2,000 account and a $200,000 account the same. | Sizing support load, onboarding capacity and CSM coverage, where a customer is a unit of work. |
| Gross revenue churn | What share of recurring revenue walked out, including downgrades, before any expansion is counted. | Anything a CFO or an investor reads. Gross revenue churn is the one number nobody can flatter. |
| Net revenue churn | Revenue lost minus expansion from the same set of customers. Goes negative when expansion outruns loss. | Board reporting on the health of the installed base. Useless for diagnosing a retention problem. |
| Renewal-window churn | Of the revenue that reached its renewal date, what share did not renew. | Annual or multi-year contracts, where most of the accounts had no opportunity to leave this period. |

Practitioners feel this long before they can name it. In 4,978 public G2 reviews of customer success platforms, only 11 sentences mention a churn rate at all, and every one of them talks about pushing the number down, never about defining it. The definition argument happens in private, usually at the worst moment.

> "I was told our churn rate was around 5 to 6%. They wanted me to come in to reduce that number... About six months into things humming along, we got our churn rate down to around 3%. A lot of the older mismanaged customers churned out."
>
> — r/CustomerSuccess, 2025

> "I have to complete a presentation on identifying churn risk for an interview and I feel like I dont have any usable information. Can't even calculate the churn rate."
>
> — r/CustomerSuccess, 2025

## Why does monthly churn times twelve overstate the annual churn rate?

Monthly churn times twelve overstates annual churn because churn compounds: each month removes customers from the base the next month draws on, so the same percentage removes fewer customers each time. At 2% monthly, twelve months of survival is 0.98 to the twelfth power, or 78.5%, which makes annual churn 21.5% and not 24%. The error is always in the same direction and it grows with the rate. Call that difference the annualisation gap.

**Monthly to annual churn**

```
Annual churn rate = (1 − (1 − Monthly churn rate)^12) × 100
```

Where:
- Monthly churn rate: expressed as a decimal, so 2% is 0.02. Use the same unit throughout: a logo rate in gives a logo rate out
- The reverse: Monthly churn rate = 1 − (1 − Annual churn rate)^(1÷12). Annual 20% is 1.84% a month, not 1.67%
- What good looks like: the two conversions agree with your reported figures to within a point. If they do not, the two reports are using different units or different bases, not different maths

**The annualisation gap**

```
Annualisation gap = (Monthly churn rate × 12 × 100) − (1 − (1 − Monthly churn rate)^12) × 100
```

Where:
- Annualisation gap: how many percentage points the multiply-by-twelve shortcut adds to the truth. Zero only when churn is zero
- Why it matters: at 1% monthly the gap is 0.6 points and nobody notices. At 5% monthly it is 14 points, which is the difference between a viable SMB product and a dying one

| Monthly churn | Naive: monthly × 12 | True annual churn | Annualisation gap |
| --- | --- | --- | --- |
| 0.5% | 6.0% | 5.8% | 0.2 points |
| 1.0% | 12.0% | 11.4% | 0.6 points |
| 2.0% | 24.0% | 21.5% | 2.5 points |
| 3.0% | 36.0% | 30.6% | 5.4 points |
| 5.0% | 60.0% | 46.0% | 14.0 points |
| 7.0% | 84.0% | 58.1% | 25.9 points |

One caution about the compounding fix: it assumes every customer is exposed to churn every month. That assumption holds for monthly self-serve subscriptions and breaks completely on annual contracts, which is the next section and the more common problem in B2B.

## Why is a monthly churn rate misleading on annual contracts?

A monthly churn rate on annual contracts measures the calendar, not the customers. If every contract runs twelve months, roughly one twelfth of the accounts reach a renewal decision in any given month and the other eleven twelfths are contractually unable to leave. A 0.4% monthly churn rate on those accounts is not a sign of health; it is arithmetic. Annualise it and you get 4.7%, which can sit next to a renewal rate of 78% in the same year without either being wrong.

**Renewal-window churn**

```
Renewal-window churn rate = Non-renewed ARR from contracts reaching their renewal date ÷ Total ARR reaching its renewal date in the period × 100
```

Where:
- Reaching its renewal date: contracts whose term ended inside the window, sometimes called available to renew or ATR. Exclude contracts that were co-terminated or renegotiated early unless you also move their ARR into the denominator
- Non-renewed ARR: the full contract value of anything that did not renew. Put partial reductions in a separate contraction line so a 40% downgrade is not recorded as a save
- What good looks like: the twelve monthly renewal-window rates roughly average to the annual gross retention shortfall. If they do not, contracts are moving between periods

> **Worked example:** 300 customers on annual contracts carry $6M ARR. In Q3, 74 contracts worth $1.48M reach their renewal date. Six do not renew, worth $210,000, and four renew at a lower value, giving away another $95,000. Renewal-window gross churn is $305,000 ÷ $1.48M = 20.6%. The same quarter expressed against the whole account base is $305,000 ÷ $6M = 5.1%, which annualises to about 18.8% and looks like a different company. Logo churn in the quarter is 6 ÷ 300 = 2%. Three numbers, one quarter, no errors. These figures are illustrative; run the same three calculations on your own accounts before you argue about which is right.

> "Churn seems to be an issue within the entire organization, not a CSM issue. But CSMs get blamed when churn rates go up, kinda funny I'd say"
>
> — r/CustomerSuccess, 2026

Renewal-window churn is also the rate that maps onto work. A CSM can influence the contracts reaching a renewal date this quarter and cannot influence the eleven twelfths that are dormant, which is why a gross retention target should be set against the renewal window. [How do I hit a gross retention target on my accounts](https://gaintrace.com/explore/revenue/gross-retention-target-csm) covers what happens when it is not.

## Which denominator should the churn rate formula use?

The churn rate formula should use the start-of-period base for reporting and the available-to-renew base for managing, and it should never use an average base without saying so. A denominator choice can move a reported rate by two or three points on a growing base, because customers acquired during the period either sit in the denominator or do not. Fast growth plus an end-of-period denominator flatters churn; the same events against a start-of-period base look worse.

| Denominator | What it counts | Distortion to watch |
| --- | --- | --- |
| Start of period | Only customers or ARR present on day one of the window. New arrivals cannot churn and cannot dilute. | Ignores customers who signed and cancelled inside the window, which hides an onboarding failure entirely. |
| Average of start and end | The midpoint base, which is the convention in most subscription analytics tools. | When the account base is growing fast, the average base is much larger than the population at risk, so the rate reads low. |
| Available to renew | Only the contracts whose term ended in the window, whatever the rest of the accounts are doing. | Small denominators are volatile. A single large renewal can move a quarterly rate by ten points. |

Whichever denominator you pick, the same-cohort rule decides whether the number means anything: a churn rate should compare a group to itself, not to a group that has changed shape underneath it. That rule is the whole basis of [cohort retention analysis](https://gaintrace.com/explore/metrics/cohort-retention-analysis-without-a-data-team), which is the version of this calculation that survives fast growth.

> "A meaningful chunk of "churn" isn't a customer decision at all. It's a card that got declined for a reason that has nothing to do with satisfaction (insufficient funds on the exact billing day, an expired card the customer forgot to update, a bank's fraud filter flagging a routine charge)."
>
> — r/SaaS, 2026

## Should involuntary churn sit inside the same churn rate?

Involuntary churn belongs in the total churn rate and on its own line underneath it, never blended into the number a customer success team carries. A failed card, an expired card and a bank fraud filter produce a cancellation that no conversation would have prevented, and a payments fix recovers a large share of them. Blending the two makes a payments defect look like a retention defect, and it moves the fix to the wrong team.

> "Churn's a 3-headed beast (at minimum), but it's not all the same. Voluntary's when customers leave you for tough onboarding, bad UX, pricey plans, or they just don't see value. Involuntary's sneakier: failed cards, expired trials, and various "oops" moments."
>
> — r/CustomerSuccess, 2025

> "We recently dug into our decline codes using [the platform] and realized that "Insufficient funds" is our biggest leak, costing us over $51k (30.5% of lost revenue)."
>
> — r/CustomerSuccess, 2026

The same separation applies inside voluntary churn. One practitioner running a new CS function found that a billing migration doubled involuntary churn while the voluntary rate held at 1.6%, and the executive team read the combined number as a retention crisis. Splitting the line ends that argument in one slide.

> "Now our involuntary churn doubled, but our voluntary churn sits at 1.6%, which I would consider best in class... The part that I feel like a crazy person about is that our CEO and COO constantly come back to me and tell me we've got a huge churn problem."
>
> — r/CustomerSuccess, 2025

## How do I reconcile four churn numbers from the same quarter?

Reconciling four churn numbers takes one event list and about an hour. Build a single row per revenue event for the quarter, then compute every published rate from that one list. Every disagreement will resolve into one of three causes: a different unit, a different denominator, or an event that one report counts and another does not.

1. **Export one row per revenue event in the quarter.** Columns: account, event date, event type (cancel, downgrade, upgrade, new), ARR before, ARR after, contract end date, cancellation reason, and whether payment failed. Pull it from billing, not from the CRM, because billing is the system that took the money.
2. **Classify every event once.** Each row is exactly one of: full cancellation, partial contraction, expansion, or new business. Anything a person cannot classify in ten seconds goes in a fifth bucket called disputed, and the disputed bucket is the real output of this step.
3. **Compute all four rates from the same list.** Logo churn, gross revenue churn, net revenue churn and renewal-window churn, each written out with its denominator. You now have four defensible numbers instead of two undefended ones.
4. **Split voluntary from involuntary.** Recompute gross revenue churn twice, once including failed payments and once excluding them. The difference is the payments team's number, and it belongs to them.
5. **Reconcile against the reported figures.** Take each number already circulating in the business and work out which of your four it is closest to. Differences above half a point mean an event is missing, double counted, or dated to a different period.
6. **Publish the churn label next to every rate.** Unit, window, base and scope, in the axis title or the footnote of the slide. This step takes five minutes and prevents the entire argument from happening again next quarter.

**Before the number goes in a deck**
- [ ] The unit is stated: logos or revenue, never implied by a percent sign.
- [ ] The window is stated, and the same window is used for the comparison figure beside it.
- [ ] The denominator is stated, and it is the same denominator as last quarter.
- [ ] Involuntary churn is visible as its own line, not blended in.
- [ ] Downgrades appear as contraction, and a renewal at 60% of last year is not recorded as a renewal.
- [ ] Any annualised figure names the conversion used, and no figure has been multiplied by twelve.
- [ ] The renewal-window rate is shown alongside the blended rate whenever contracts are annual.
- [ ] One person owns the definition, and the definition lives in a document, not in a saved report.

Run the gross revenue version through the [GRR calculator](https://gaintrace.com/tools/grr-calculator) once you have the event list, so the arithmetic is not also in dispute.

## Which churn rate should we report, and to whom?

Report gross revenue churn to anyone making a financial decision, logo churn to anyone planning capacity, and renewal-window churn to the people who own renewals. One audience, one number, always the same one. The published benchmarks follow the same convention: median gross revenue retention was 91% in the SaaS Capital survey of more than 1,000 private B2B SaaS companies fielded in 2025, and 88% in the 2025 Benchmarkit and Pavilion report, against N of 225 on that chart. Both are revenue measures, which is why a logo churn number cannot be compared with either.

| Audience | Report this | What goes wrong otherwise |
| --- | --- | --- |
| CFO, board, investors | Gross revenue churn, quarterly, start-of-period base. | Net revenue churn hides an eroding base behind expansion from a handful of large accounts. |
| Customer success team | Renewal-window churn plus contraction, for the contracts in their own window. | A blended monthly rate makes individual performance invisible and unfixable. |
| Support and onboarding planning | Logo churn, plus new logos in the same window. | Revenue churn understates the workload when the accounts leaving are small and numerous. |
| Product and pricing | Voluntary churn only, split by cancellation reason and plan. | Failed payments pollute the reason codes and send product after a problem that belongs to billing. |

One honest caveat about comparison. Survey-based sources and billing-platform sources disagree by a wide margin on the same metric: ChartMogul, reading billing data from about 2,700 B2B SaaS companies in its December 2025 report, put median net revenue retention at 82%, roughly 19 points below the survey-based median of 101%. Neither is wrong. They measure different populations, and a smaller self-serve population churns harder. Quote whichever matches your own model and name it.

## How does GainTrace keep one churn rate definition honest?

GainTrace computes retention from billing events, not from a CRM field, so a downgrade cannot be logged as a renewal and a failed payment is visible as its own category. Each rate carries its unit, window and denominator on the chart, which is the churn label above, rendered instead of remembered. [Renewal forecasting](https://gaintrace.com/solutions/renewal-forecasting) shows the ARR reaching a renewal date in each period, and [customer health](https://gaintrace.com/platform/customer-health) shows which of those contracts is moving the wrong way while there is still time to act.

## Frequently asked questions

### Why doesn't my monthly churn rate times 12 equal our annual churn rate?

Because churn compounds. Each month removes customers from the base the next month is measured against, so twelve months at 2% leaves 78.5% of the accounts, making annual churn 21.5% rather than 24%. Use 1 minus (1 minus monthly churn) to the power of 12. On annual contracts the multiplication is worse than wrong, because most of the accounts cannot cancel in a given month at all.

### What is the churn rate formula for SaaS?

There are four in common use. Logo churn is customers lost divided by customers at the start of the period. Gross revenue churn is churned plus contracted ARR divided by starting ARR. Net revenue churn subtracts expansion from that numerator. Renewal-window churn is non-renewed ARR divided by the ARR that reached its renewal date. Pick one per audience and publish the denominator with it.

### Do downgrades count as churn?

Downgrades count in gross revenue churn as contraction and do not count in logo churn, because the customer is still a customer. Keep contraction on a separate line from full cancellation. A company losing 15% of its revenue to downgrades has a packaging or a value problem, while a company losing 15% to cancellations has a fit or a service problem, and one line hides which one you have.

### Should failed payments count in our churn rate?

Count them in total churn and show them separately as involuntary churn. A declined card is a billing defect, not a retention decision, and dunning recovers a meaningful share of it. Teams that blend the two end up asking customer success to fix a payments problem. Report voluntary churn as the number the CS team carries, and total churn as the number the business plans against.

### How do I calculate churn when all our contracts are annual?

Use renewal-window churn: non-renewed ARR divided by the ARR whose contract term ended in the period. A blended monthly rate on annual contracts describes the renewal calendar instead of customer behaviour, because roughly eleven twelfths of the accounts have no opportunity to leave. Show the renewal-window rate for management and a rolling twelve-month gross revenue retention figure for reporting.

### Why does finance report a different churn number than customer success?

Almost always one of three causes: a different unit (finance counts revenue, CS counts logos), a different denominator (start of period against available to renew), or an event one side counts and the other does not, usually a mid-term downgrade or a co-terminated contract. Build one event list for the quarter and recompute both numbers from it. The gap resolves in an hour.

## How this was researched

The four definitions, the churn label, the annualisation gap and the reconciliation procedure are our own analysis. The conversion table was computed from the two formulas shown on the page. Practitioner evidence comes from 4,978 public G2 reviews of customer success platforms, of which 11 sentences mention a churn rate, and from 33,600 posts in r/CustomerSuccess, r/SaaS, r/sales and r/startups collected between May 2024 and September 2026, of which 30 discuss a churn rate directly. Benchmark figures are quoted from SaaS Capital (September 2025, more than 1,000 private B2B SaaS respondents, self-selected survey), Benchmarkit and Pavilion (May 2025, N of 225 on the retention chart) and ChartMogul (December 2025, billing data from about 2,700 B2B SaaS companies). The worked example uses illustrative figures.

## Sources

- [SaaS Capital Research Brief 32: 2025 B2B SaaS Retention Benchmarks](https://www.saas-capital.com/wp-content/uploads/2025/09/RB32WS1-2025-B2B-SaaS-Retention-Benchmarks.pdf)
- [Benchmarkit and Pavilion: 2025 B2B SaaS Performance Metrics Benchmarks](https://5242563.fs1.hubspotusercontent-na1.net/hubfs/5242563/Pavilion%20Benchmarkit%202025%20SaaS%20Performance%20Benchmarks.pdf)
- [ChartMogul: The SaaS Retention Report, December 2025](https://chartmogul.com/reports/saas-retention-the-ai-churn-wave/)
- [r/CustomerSuccess: Non BS Churn Advice Plz](https://reddit.com/r/CustomerSuccess/comments/1pfai7h/)
- [r/CustomerSuccess: Voluntary vs Involuntary Churn](https://reddit.com/r/CustomerSuccess/comments/1j9jo8r/)
- [r/SaaS: Involuntary churn is quietly the most fixable revenue leak](https://reddit.com/r/SaaS/comments/1w0l92t/)

## Next steps

Build the event list this week, compute all four rates from it, and put the churn label on every chart that leaves your team. [Start free](https://app.gaintrace.com/auth/login) or [book a demo](https://gaintrace.com/booking).
