Example readout · invented company
How to tell if a churn model works: an example readout
A churn model works if, on recent months it never saw, it ranks the customers who go on to leave above those who stay, and beats a simple rule you could run without it. The readout you receive when the model is handed over says by how much, whether its scores can be read as probabilities, and what to do with the list. Below is one for an invented company: over its 6 test months, the tenth of customers the model scored highest held 36% of those who left, and on the same number of calls, the model’s list reached 263 leavers to the simple rule’s 169.
The example · invented company
Churn model readout, test months April to September 2026
The company is an invented subscription software company on three plans at flat monthly prices, Starter at €29, Growth at €99 and Scale at €299, with 4,492 paying customers and €342,458 of monthly revenue at the end of September 2026. Customers left at 5.0% a month on Starter, 2.4% on Growth and 1.5% on Scale. Its customer history, 8,189 customers over 24 months, is synthetic: drawn customer by customer when this page is built. Every figure about the company in the readout is computed from it.
Leavers in the top tenth
36%
360 of the 997 customers who left from April to September 2026 were in the tenth the model scored highest. Invented company.
Same calls as the simple rule
263 to 169
Leavers reached by calling the model’s highest scores, about 268 customers a month, against the customers the rule “no login for 30 days” flags. Invented company.
Ranking on unseen months
74 in 100
Pairs of one customer who left and one who stayed, in which the model scored the leaver higher. A coin scores 50. Invented company.
Leavers per signal
338
2,700 leavers in the training months, over the 8 signals tried. The floor is 10. Invented company.
Recommendation. We recommend putting the model live and calling the top tenth of its scores each month, about 437 customers. On months it never saw, it reached 1.6 times the simple rule’s leavers on the same number of calls, and its scores matched the share who left. The recommendation holds for customers, plans and prices like those in the history; the triggers for a refit are under “When to refit”.
Is there enough history?
A churn model learns from the customers who left, so the count that matters is leavers per signal tried. The training months, October 2024 to March 2026, hold 2,700 leavers, and we tried 8 signals: days with a login, seats in use, support tickets, failed payments, the Growth plan, the Scale plan, tenure and seats on the account. That is 338 leavers per signal. A 1996 simulation study of logistic regression, the model used here, found no major problems from 10 events per variable, and a 2014 one found that logistic regression ranked cases stably from about 20 to 50 events per predictor; both simulated medical outcomes, not churn. This history clears both figures several times over. How the count works, and what to do below it, is on churn prediction.
How well it ranks customers
Pick one customer who left in the test months and one who stayed: the model gave the leaver the higher score in 74 pairs of 100. A coin scores 50, and the simple rule 56. On the training months the figure is 74, so the model ranks the months it never saw about as well as those it learned from.
Ranked each month, the top tenth of scores, about 437 customers, left at 13.7% a month against 3.8% for all customers: 3.6 times the average.
Against a simple rule
The rule “no login for 30 days” needs no model. Over the 6 test months it flagged 1,610 customers, about 268 a month, and 169 of them left. Calling the model’s highest scores instead, the same number each month, reaches 263 leavers: 1.6 times as many for the same calls. A model that cannot beat the rule is not worth running; this one beats it in every three-month stretch of the test.
Are the scores right?
Each score is the model’s probability that the customer leaves in the next month. In every tenth of scores, the predicted rate is within 1.0 percentage points of the share that left, and across the 6 months the model expected 980 leavers where 997 left. So the scores read as probabilities: a list’s scores add up to the leavers to expect from it.
Leaving rate in the next month, by tenth of the model’s scores (1 is the highest), April to September 2026
The same data as a table
| Tenth of scores | Scores | Left | Predicted rate | Actual rate | Share of leavers |
|---|---|---|---|---|---|
| 1 (highest) | 2,621 | 360 | 12.8% | 13.7% | 36% |
| 2 | 2,620 | 162 | 6.5% | 6.2% | 16% |
| 3 | 2,620 | 123 | 4.6% | 4.7% | 12% |
| 4 | 2,619 | 89 | 3.5% | 3.4% | 9% |
| 5 | 2,617 | 69 | 2.8% | 2.6% | 7% |
| 6 | 2,621 | 52 | 2.2% | 2.0% | 5% |
| 7 | 2,619 | 47 | 1.8% | 1.8% | 5% |
| 8 | 2,620 | 52 | 1.4% | 2.0% | 5% |
| 9 | 2,620 | 32 | 1.1% | 1.2% | 3% |
| 10 (lowest) | 2,615 | 11 | 0.7% | 0.4% | 1% |
| All | 26,192 | 997 | 3.7% | 3.8% |
What drives the scores
Each row compares two values of one signal for a typical customer, the other signals held at that customer’s values: on Starter, 8 seats on the account, 20 months since joining, a login on 17 days of the month, 75% of seats in use, no support tickets and no failed payments.
| Signal | Compared | Leaving next month | Times as likely |
|---|---|---|---|
| Failed payments | one against none | 7.8% against 2.3% | 3.4 |
| Tenure | 3 months against 3 years | 4.5% against 1.8% | 2.4 |
| Support tickets | three against none | 5.4% against 2.3% | 2.4 |
| Days with a login | none against 15 days | 5.6% against 2.5% | 2.2 |
| Plan: Scale | Starter against Scale | 2.3% against 1.3% | 1.8 |
| Seats in use | half against all of them | 3.0% against 1.7% | 1.8 |
| Plan: Growth | Starter against Growth | 2.3% against 1.8% | 1.3 |
| Seats on the account | 3 against 30 | 2.2% against 2.4% | 0.9 |
Failed payments carry the most: one in a month makes leaving the next month 3.4 times as likely. Seats on the account carry almost nothing: a 3-seat account and a 30-seat one leave at about the same rate. They still count among the signals tried. The effects are associations in the history, not proof of cause: whether getting a customer to log in more keeps them is a question for a test, not for this model.
What the list is worth
Over the 6 test months, calling the top tenth each month reaches 360 leavers, who pay €11,630 a month between them. If a call keeps 1 in 5 of the leavers it reaches, the calls keep about 72 customers and €2,326 of monthly revenue. The rule’s list, on the same assumption, keeps about 34 customers and €1,436.
The 1 in 5 is an assumption, not a finding. Not priced here: what the calls cost. What a lasting cut in churn is worth over two years is the question of our revenue forecast demo, on the same invented company.
What the model is good for, and what it is not
The model is good for two things:
- choosing whom to contact first each month, by the chance of leaving in the next month;
- the number of leavers to expect next month, from the sum of the scores.
It is not built for these:
- why a given customer leaves: the scores rank risk, and the effects are associations;
- leaving further ahead than a month: the model was fitted and tested on next-month leaving only;
- customers, plans or prices the history does not hold, such as a new plan or a price change;
- whether a call keeps anyone: that needs the comparison under “What to do with the list”.
What to do with the list
We recommend this routine each month:
- Score every paying customer on the month’s data, at the end of the month.
- Call the top tenth, about 437 customers. Send customers with a failed payment to billing first, since a card update fixes a failed payment and a retention offer does not.
- Leave a random part of the list uncalled, and compare its leaving with the called customers’ two months on. Without that comparison, what the calls keep stays an assumption, like the 1 in 5 under “What the list is worth”.
- Count each month’s leavers against the sum of the scores; the refit triggers read that count.
When to refit
We recommend refitting the model when any of these happens:
- Over three months, the model’s list reaches no more leavers than the rule on the same number of calls.
- Over three months, the leavers fall outside the range the scores expect. For July to September 2026, the model expected 498: a count below 455 or above 541 is more than chance would explain, at two standard deviations. Every three-month stretch of the test fell inside its range.
- The business changes in a way the history does not hold: a price change, a new plan, or a change in how logins or seats are counted.
- A year has passed since the last fit. The refit reads the latest 24 months, so the training months keep a full year of seasons.
Checks and sign-off
Sign-off. Putting a model live is a decision you act on, so it carries the analytics director’s sign-off. The monthly re-scoring after that is a routine refresh: it carries its checks and no new signature. This readout is an example on an invented company and is never signed.
What carries a sign-off
The decision the readout supports
The analytics director signs every output you will act on, such as a model going live. This decision is an example on the invented company and is never signed, so its stamp stays at “Sign-off pending”.
Decision · example
Put the model live, and call its top tenth each month?
Score the paying customers at the end of each month and call the top tenth, about 437 customers, with a random part of the list left uncalled to measure what the calls keep. In the test months, that list reached 360 leavers; at 1 in 5 kept, about 72 customers and €2,326 of monthly revenue. Not priced here: what the calls cost, and whether a call keeps 1 in 5.
How a churn model is built and pricedOn your data
What you receive with a churn model
The same readout, on your own customer history instead of an invented company’s.
What it reads. A customer list with start dates, and end dates for those who left; billing and plan history; product usage and support tickets, where you record them. How many leavers a model needs is on churn prediction, and where the data goes is on data handling.
How it is built. AI agents rebuild your customer history month by month, fit the model and draft the readout. Scripts, not AI, check its numbers and claims, and before the model goes live a panel of three reviewer agents and a judge reviews it. Then the analytics director signs it.
What arrives. A readout like this one: a memo of up to two pages, with its tables as an appendix. Then the scored customer list, as a file or a monthly report, and the method note listing the checks that ran. The model and its readout are one sprint, from €12k, fixed before work starts; the monthly re-scoring runs on an async retainer, from €8k a month.
Not covered. Calling your customers or running the retention programme, and installing anything on your systems. The model ranks who to call; what a call keeps is measured by your own comparison.
How many leavers the list reaches at the number of calls your team can make, against the simple rule’s, is in the who-to-call demo, on the same invented company.
Start here
Want this readout on your own customers?
Up to thirty minutes on your churn question, then a fixed proposal.