Blog · Finance metrics and formulas · Software
Convert a constant monthly churn rate into compounded annual churn. Follow a complete customer-cohort example, distinguish projected losses from observed losses, and check the result against monthly subscription exports.
To calculate annual churn from monthly churn, subtract the compounded monthly survival rate from one: 1-(1-m)^12. A constant 2% monthly churn rate gives 21.53% annual churn, rounded to two decimals. This is a projection for a fixed starting cohort, so compare it with actual losses from that same cohort before using it in a company plan.
Projected annual churn = 1 - (1 - Monthly churn rate)^12
Projected annual retention = (1 - Monthly churn rate)^12
Enter the monthly rate as a percentage or decimal, not as a whole-number percentage. For example, 2% is 0.02. Each month retains 98% of the customers who survived into that month. The next month's loss applies to that smaller population.
This is different from the basic churn rate, which divides observed losses by an opening population for a stated period. Annualizing a rate answers a conditional question: what would happen if this monthly rate continued? A full-year cohort report answers what actually happened.
The conversion assumes the same rate each month, consistent eligibility rules and no return to the survivor population after a first loss. It also assumes the rate applies to the cohort being projected. A rate from recently acquired monthly subscribers may be unsuitable for long-standing annual contracts.
Suppose a US SaaS business starts with 1,000 paying customer accounts. It wants a planning scenario with 2% of the remaining accounts lost each month. New customers are outside this calculation.
| Step | Calculation | Result |
|---|---|---|
| Monthly churn | Given scenario input | 2.00% |
| Monthly survival | 1 - 0.02 | 98.00% |
| Annual survival | 0.98^12 | 78.471672% |
| Annual churn | 1 - 0.98^12 | 21.53% |
| Expected year-end survivors | 1,000 × 0.98^12 | 784.72 |
| Expected losses | 1,000 - 784.7167237 | 215.28 |
The survival percentage is displayed to six decimals; annual churn and expected account counts are displayed to two decimals. Calculations use the unrounded power result. Fractional customers describe the mathematical expectation, not an actual account list.
The arithmetic check is immediate: expected survivors plus expected losses equal the opening 1,000 accounts. Annual retention plus annual churn equals 100% before display rounding.
In Google Sheets, put the monthly percentage in B2:
=1-POWER(1-B2,12)
The POWER function raises its base to the specified exponent. Here the base is monthly survival and the exponent is the number of monthly intervals. Format the answer cell as a percentage.
Multiplying 2% by twelve produces 24.00%. It overstates compounded annual churn by 24.00% - 21.5283276% = 2.47 percentage points, rounded to two decimals. The linear calculation repeatedly charges losses against the original population, including customers already lost.
Use monthly subscription or customer-status exports with stable customer IDs, opening paid status, effective loss date and closing paid status. Define whether cancellation counts at the request date or when service ends. Use account-level records if one customer can have several subscriptions.
For a first-loss measure, freeze the opening customer list and remove each customer only once. Exclude later acquisitions and track reactivations separately. A customer who requests cancellation but remains active through the reporting date has not yet left under a service-end policy.
For comparison, the business observes these actual losses during the completed 2025 calendar year. There are no reactivations in this example. Each closing balance becomes the next month's opening balance.
| Month | Opening cohort survivors | First losses | Closing cohort survivors |
|---|---|---|---|
| January | 1,000 | 20 | 980 |
| February | 980 | 20 | 960 |
| March | 960 | 19 | 941 |
| April | 941 | 19 | 922 |
| May | 922 | 18 | 904 |
| June | 904 | 18 | 886 |
| July | 886 | 18 | 868 |
| August | 868 | 17 | 851 |
| September | 851 | 17 | 834 |
| October | 834 | 17 | 817 |
| November | 817 | 16 | 801 |
| December | 801 | 16 | 785 |
| Year reconciliation | 1,000 original accounts | 215 | 785 |
Opening and closing balances are stocks, so do not sum those columns. Only the first-loss column is additive across months. Its total is 215, and 1,000 - 215 = 785 matches the closing survivor count.
Observed annual churn is 215 / 1,000 = 21.50%. The constant-rate scenario was 21.53%. Their difference reflects the observed monthly losses; it is not a reason to overwrite the actual customer counts with fractional expected balances.
Annual cohort churn = 1 - Product of each month's cohort survival factor
For each row above, monthly survival is closing survivors divided by opening survivors. With opening balances in B2:B13, losses in C2:C13 and closing balances in D2:D13, use E2 for monthly churn and F2 for survival, then fill down:
Monthly churn: =C2/B2
Monthly survival: =D2/B2
Annual cohort churn: =1-PRODUCT(F2:F13)
Direct annual check: =SUM(C2:C13)/B2
The product telescopes: (980/1000) × (960/980) × ... × (785/801) equals 785/1000. Subtracting from one returns 21.50%, the same as the direct annual check. Keep full precision in the monthly cells; rounded displayed rates can prevent an exact tie.
Stripe's retention-by-cohort documentation illustrates successive monthly retention and distinguishes subscriber counts from recurring revenue, which can also change through upgrades and downgrades. The cohort definition and loss rules must match whichever measure you compare. Covirage is not affiliated with Google or Stripe.
Do not multiply survival rates from monthly company-wide reports without checking their populations. New customers, returns and different cohort ages can make those denominators change. A cohort retention table preserves the starting groups. If renewal timing creates seasonal losses, inspect the pattern separately using the sales seasonality method, rather than treating one unusually busy renewal month as a permanent rate.
Bring monthly subscription exports with customer IDs, status dates and your cohort rules. Covirage maps the columns, and its tools compute projected annual churn, observed cohort losses and the survivor reconciliation; the external AI model explains the comparison with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See renewal analysis with Covirage for the supporting business context.
That is a rough linear approximation. It assumes each month's losses use the original starting population. Compounding instead applies the monthly rate to the survivors, which is appropriate for projecting first losses from a fixed cohort under a constant-rate assumption.
It can apply to a consistently defined gross recurring-revenue loss rate on the surviving cohort balance. Keep expansion, contraction and reactivation rules explicit. Customer churn and net revenue retention measure different things, so do not substitute one for the other.
Multiply the monthly survival factors and subtract the product from one. Each rate must use the surviving members of the same starting cohort. Rates from changing company-wide populations do not automatically reconstruct that original cohort's annual loss.
Choose whether the measure tracks first loss or active status at year end. For first-loss churn, a returning customer remains counted as having churned. For year-end retention, identify returns separately and reconcile them to the closing population.