Sign in

Blog · Forecast and pipeline

Predictive analytics for customer retention: test the signals

Predictive analytics for customer retention tests whether earlier account risk flags identify later churn. Work from dated exports, compare account cohorts, and check precision, recall, and the revenue behind missed renewals.

The short answerPredictive analytics for customer retention tests whether information recorded before a renewal identifies accounts that later leave. Freeze the risk flags, wait for a separate outcome period, and compare flagged and unflagged accounts within comparable cohorts. Measure how many flags preceded churn, how much churn the flags caught, and the recurring revenue they missed.

Predictive analytics for customer retention tests whether earlier risk signals identify accounts that later fail to renew. Start with dated flags and later outcomes, then compare the flagged group with the accounts the rule left out. A useful flag finds more churn than the background rate while leaving a manageable review list.

The broader predictive analytics guide explains prediction across business functions. Here the question is narrower: did the retention signals in your historical export deserve the attention they received?

Freeze the question before looking at outcomes

Choose the account population, signal date, and renewal outcome window first. Include every eligible renewal, including those with no risk flag. Define churn consistently: this example means no renewed contract by the end of the stated outcome window; a smaller renewed contract is not counted as account churn.

For a US subscription business, freeze the supplied risk flags on March 31, 2026. Include accounts due to renew from April 1 through June 30, 2026, and assess their final outcomes after that window closes. Resolve extensions and late paperwork before labeling the rows. Do not turn a pending renewal into churn merely to complete the table.

Keep an older period for choosing or adjusting the signal rule and a later, untouched period for testing it. Google's guidance explains why evaluation needs separate data that was not used to develop the approach. This business test applies that principle to dated account exports; it does not require fitting statistical models.

Prepare the account rows

Export account ID, cohort, snapshot date, supplied risk flag, renewal due date, outcome date, outcome, and recurring contract value at the snapshot. Store one row per eligible account renewal. Keep the original indicator definition beside the file so the next reviewer knows what generated a flag.

Use the same account ID in the risk and renewal exports. Check unmatched IDs and duplicate renewal records before calculating rates. If your underlying population is unclear, first use a cohort retention table to settle which accounts belong in the denominator.

The compact table below omits the repeated dates. Every row shares the snapshot and outcome window above. Flag and churn are numeric: 1 means yes; 0 means no. Contract values are USD, with no currency conversion.

Account Cohort Flag Churn Recurring annual value (USD)
A Small 1 1 12,000
B Small 1 1 18,000
C Small 0 1 24,000
D Small 0 0 16,000
E Small 0 0 30,000
F Midmarket 1 1 60,000
G Midmarket 1 0 48,000
H Midmarket 0 0 72,000
I Midmarket 0 0 36,000
J Midmarket 0 0 84,000
Total 4 4 400,000

Count the hits, misses, and review burden

Put the table headings in row 1 of a Google Sheet, with account through recurring value in columns A through E. The COUNTIFS function counts rows meeting multiple criteria. These formulas produce the four mutually exclusive groups:

Flagged and churned:   =COUNTIFS(C2:C11,1,D2:D11,1)
Flagged and renewed:   =COUNTIFS(C2:C11,1,D2:D11,0)
Unflagged and churned: =COUNTIFS(C2:C11,0,D2:D11,1)
Unflagged and renewed: =COUNTIFS(C2:C11,0,D2:D11,0)
Group Accounts Count Interpretation
Flagged and churned A, B, F 3 Churn preceded by a flag
Flagged and renewed G 1 Review that did not end in churn
Unflagged and churned C 1 Missed churn
Unflagged and renewed D, E, H, I, J 5 Renewals outside the review list
Total 10 3 + 1 + 1 + 5

Precision = Flagged accounts that churned / All flagged accounts

Recall = Flagged accounts that churned / All accounts that churned

Churn lift = Flagged churn rate / Overall churn rate

These are the standard precision and recall definitions, applied with churn as the positive outcome. The calculations are:

Measure Calculation Result
Precision 3 / 4 75.0%
Recall 3 / 4 75.0%
Overall churn rate 4 / 10 40.0%
Unflagged churn rate 1 / 6 16.7%
Churn lift 75.0% / 40.0% 1.875 times

Percentages are rounded to one decimal place; lift uses unrounded values. Precision in Google Sheets is:

=IFERROR(COUNTIFS(C2:C11,1,D2:D11,1)/COUNTIFS(C2:C11,1),"No flags")

For recall, change the denominator to COUNTIFS(D2:D11,1) and the empty-result message to "No churn". An undefined ratio should remain explicit rather than becoming a reassuring zero.

Compare cohorts and check the dollars

A combined result can hide different performance across account types. Use the supplied size cohorts rather than inventing groups after seeing the churn. The ledger-based segmentation guide covers how to define commercially comparable groups.

Cohort Flagged Flagged churn Unflagged Unflagged churn Flagged churn rate
Small 2 2 3 1 100.0%
Midmarket 2 1 3 0 50.0%
Total 4 3 6 1 75.0%

For example, small-account flagged churn uses =COUNTIFS(B2:B11,"Small",C2:C11,1,D2:D11,1). Divide by the same formula without the churn criterion for its rate. These tiny groups illustrate the method; they cannot establish stable future performance.

The account counts reconcile twice: 4 flagged + 6 unflagged = 10, and 4 churned + 6 renewed = 10. Recurring value also matters. Churned accounts A, B, C, and F total $114,000; the flagged churn captures $90,000, leaving C's $24,000 missed. Thus 90,000 + 24,000 = 114,000, and value capture is 90,000 / 114,000 = 78.9%.

Flagged recurring value is $138,000: $90,000 that churned plus G's $48,000 that renewed. That is exposure on a review list, not a prediction that all $138,000 will disappear. Compare the review workload with the cost of customer retention before expanding outreach.

Where it goes wrong

  • Signals recorded after the decision. A cancellation note added after a customer left cannot support an earlier warning claim. Use information available at the snapshot.
  • Rewriting flags after seeing churn. An improved historical result may only show that the rule was tuned to those outcomes. Retest the revised rule on a fresh period.
  • Missing outcome rows. Dropping difficult matches or unresolved renewals can distort both rates. Reconcile the eligible population and label exclusions.
  • Confusing prediction with intervention effect. G may have renewed because someone acted on its flag. Record interventions; a renewed flagged account does not by itself prove the alert was useless.
  • Calling a group rate a probability. Historical precision describes this group and window. It does not establish calibrated probabilities for individual accounts.

Test the signals on your own file in Covirage

Bring a sample of your own dated risk snapshot and renewal outcome export. Covirage maps the columns, its tools compute and check the cohort comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring the account history behind your review list.

See renewal watch for the supporting renewal-review context. Covirage is not affiliated with Google.

Questions people ask

Which data is needed to test customer retention predictions?

Use stable account IDs, a dated snapshot of the risk indicators, renewal due dates, and later renewal outcomes. Include the recurring value at the snapshot and a cohort such as contract size. Keep unresolved renewals separate until the outcome window closes.

What is a good accuracy rate for predicting customer churn?

There is no useful universal cutoff. Compare the flags with the churn rate in the same eligible population and report precision and recall separately. A high overall accuracy can hide missed churn when most customers renew. Business value also depends on account value and intervention cost.

Can a historical risk flag be treated as a churn probability?

No. The share of flagged accounts that later churned describes an observed group in that period. It does not establish an individual account's probability of leaving or prove calibration. Keep the result as a cohort comparison unless a separate probability assessment supports more.

How often should retention risk signals be reviewed?

Review the results after an outcome period has matured, then repeat the unchanged test on a later cohort. Keep operational reviews separate from validation. Changing a rule after seeing its results means the revised rule needs a fresh period before its performance is assessed.