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.
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?
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.
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 |
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.
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.
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.
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.
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.
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.
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.