Hapax · Case study · Churn intelligence

The churn a usage model can’t see

The account book for the case study above: 500 fabricated accounts, two churn detectors and a known answer key. The sliders below blend usage-model scores and ticket-reading scores into one live ranking. Set a review budget to see what it catches. Click any account to read the tickets, starting with Hedbrunn Systems AB, the quietly-unhappy account the usage model never flagged.

Fabricated data. The accounts and companies are fictional. Every figure is scored against a held-out answer key.

The risk mixer

Every account gets two opinions: the usage model’s, from the numbers, and the ticket agent’s, from what customers actually wrote. The sliders blend those opinions into one live ranking. Each dial runs from 0 (that channel off) to 100 (its full weight in the fitted model), and the leaderboard re-sorts as you drag. The presets jump to each detector on its own, or to the combination as fitted.

Try this – drag the ticket-sentiment weight to zero and watch which companies drop off the list. Those are the quiet leavers a usage-only model never shows you.

Off by default – the page shows what each method predicts before showing what happened. Switch on to see which flagged accounts actually churned.

Top-flagged leaderboard

#AccountARRMLTicketsBlended

The review budget

A ranking is only useful up to the point where the review effort runs out. A customer-success team that can work through a hundred accounts a cycle needs to know what a list of that length actually catches and what falls just below the line. The slider sets the budget; the counters follow the mixer’s current blend.

Try this – tighten the budget to 50 and watch how much annual revenue drops out of reach; then switch on “Reveal outcomes” above to see how many of the flagged accounts really left.

Top 100 accounts

Who each layer flags

Every account, plotted by where each detector ranks it. The dashed lines mark each layer’s own top-100 watch-list, independent of the mixer above. Top-left, both flag the account – and where they agree they are right almost every time. Bottom-left, only the usage model sees trouble: the visible faders. Top-right, only the tickets do: Hedbrunn’s kind, healthy on every dashboard while the relationship sours in writing. Bottom-right, neither. Most of those accounts are genuinely fine, but thirty churn for reasons neither layer can see.

Try this – click any dot to open that account’s file below; the top-right quadrant is where the interesting reading is.

Read what the model couldn’t

Click any account in the leaderboard or the figure above and read the tickets yourself – this is the evidence the usage model cannot see. Each file shows the account’s usage curves, its full ticket history in order, and the agent’s verdict.

No account selected yet.

The finding

Marked against the answer key, the combination catches more of the accounts that matter and misses fewer euros. The money segment is the quietly unhappy – Hedbrunn’s type, 46 accounts engineered to look healthy on every usage metric while the relationship erodes in the ticket queue:

MethodQuietly-unhappy accounts caught, of 46

€6.53M of annual revenue sat inside accounts that actually churned. The text layer surfaces €1.14M of churned annual revenue the usage model alone does not, in accounts that looked healthy on every dashboard metric until the invoice stopped renewing. Usage returns the favour in the other direction, adding €716K in accounts the text layer under-weighted. Neither layer subsumes the other.

And thirty accounts here churn for reasons invisible in the product – an acquisition, a budget cut, a champion leaving. Two of the thirty survive into the combined top-100, roughly what chance would produce, because there is no signal for either method to find.

What this would look like on your data

Your ticket system already holds this signal. The method transfers to any account base with a support history: a classical model where the numbers are strong, a reading layer where they are silent, and one small explainable model combining the two. The write-up documents every miss as carefully as every catch.

Read the long-form case study · Code and dataset · Contact Hapax