Find the customers behind your churn number. Then find out whether your fix worked.
Your dashboard gives you one churn rate. It can't tell you which customers are leaving, what to do about them, or whether last quarter's fix did anything.
I answer the first two in four weeks, from your own billing and product data: a short brief naming the groups leaving fastest and the one fix to run first. A comparison group answers the third, eight to twelve weeks later. One analyst, fixed price, read-only access.
Retention by segmentIllustration
Illustration only. Not customer data. A blended retention line usually hides groups that leave at very different rates and times.
You've tried things. You can't tell which of them worked.
Churn dipped after the new onboarding emails. Or after the price change. Or it was just a good month.
The board asks why customers leave. The honest answer is one blended chart and a few exit-survey quotes.
Your team calls the accounts that look shaky. Nobody knows whether the calls keep anyone.
The real analysis is on someone's list. It has been for two quarters.
ChartMogul, Baremetrics, Stripe or a dashboard someone built will draw you a retention line. It shows when customers leave on average. It doesn't show which customers leave in terms you can act on, and it can't tell you whether anything you did made a difference.
Most consultants tell you what to do. I measure whether it worked.
What you get
Three things, in plain terms
01
The brief
6–8 pages · Week 4
Names the 3–5 groups leaving fastest, how many accounts and how much revenue in each, and the one fix to run first.
02
The list
Week 4
Those accounts as a spreadsheet and as a saved audience in your email or CS tool, split into “call these” and “leave these alone.” Your team starts Monday.
03
The answer
One page · 8–12 weeks later
Did the fix work, did it not, or was the test too small to tell. Plus three calls along the way.
Half the group gets the fix, half doesn't, so the result is a number and not a feeling. That comparison group is the one part I won't skip.
Sample result
One group was nearly a quarter of the churn. A 20-minute call nearly halved it.
SYNTHETIC SAMPLE — not customer data. A made-up SaaS company (5,439 paying accounts, $18.2M ARR) generated by a seeded script, so you can see what you get before you buy. Not a client result, not a benchmark.
What a Diagnostic hands you, using that made-up company: one finding, one play, one measured result.
1 · The finding
2.8×
New self-serve monthly accounts that don't invite a teammate in their first 14 days leave at 2.8× the normal rate.
That one group is 23% of all churn. 242 accounts fit it today.
The bigger pattern: accounts with no second user by day 14 are 37% of signups and 62% of everyone who left.
2 · What to do
20 min
A setup call from customer success between day 14 and 21, with one goal: get the first teammate invited.
No discount. About half an hour of CS time per account.
Your team calls half the group. The other half is kept as the comparison group, so the result is measurable.
3 · The impact
8.2% vs 15.3%
After 8 weeks, 8.2% of called accounts had asked to cancel, against 15.3% of the comparison group. Cancellations nearly halved.
In the test: 7 accounts kept, $6,473 of ARR, for $3,675 of CS time.
If it holds for a year of new accounts in this group: about 81 kept, roughly $75k of ARR, about $33k after the cost of the calls.
Is that proven? Not yet, and the readout says so. With 98 accounts in each group the result is directional: the true effect could be anything from a 16-point drop to a 2-point rise. If the effect is as big as it looks, about 360 accounts per group would confirm it, roughly six more months of new accounts. You decide whether to keep going with those numbers in front of you.
At-risk segments vs. base
The finding: R1 (new, no teammate) and three other at-risk groups against the base rate
Called vs. comparison group, 8 weeks
The impact: called accounts vs. the comparison group, with the honest range
“Normal rate” is the base: 7.0% of paying accounts ended within 90 days of a monthly snapshot (Jan 2025–Jul 2026). The group (rule R1) is monthly plan, self-serve signup, no second user invited by day 14, under 90 days old; 19.5% of them ended within 90 days. The test metric is requesting cancellation within 8 weeks. The test outcome is simulated (the generator builds in a 25% relative drop), and the generator was built with the patterns the analysis finds, so none of this shows the method “works”. Range: 95% interval −16.5 to +2.0 pts, p = 0.13.
Year math: about 22 new accounts join the group each week, so ~1,140 a year × 7.1 pts = ~81 kept × $925 average ARR in the called group = ~$75k. Cost: 1,140 × 0.5 h × $75/h (an assumed rate) = ~$43k. Like the PDF's readout, it counts a kept account's full annual value. Confirmation size: standard two-group test, 80% power, 95% confidence, 14.7% baseline down to 8.2%. Everything else, including the SQL and the audience list (CSV), is in the PDF.
Who does the work
One analyst. Me.
Cam HarrisProduct analytics lead Greenville, SC
I'm Cam Harris. I run every ChurnWave engagement myself: the data pull, the analysis, the brief and the readout call.
My day job is leading product analytics and BI for a large product line that has grown from B2C to B2B to Enterprise. I've spent over eight years in product analytics across several verticals, and this kind of work is the part I keep coming back to: finding which customers are leaving, sizing the group, and testing a fix against a comparison.
My last retention work, at a real-estate SaaS company, cut 30-day churn 35% year over year.
Start with week 1 on its own for $599. Intro price for the first five clients. It ends with one churn number your team agrees on and your own retention curve split by segment.
Stop there and $599 is all you pay, whatever the reason. Continue, and the $599 comes off the price: half the balance when you continue, half when the brief is delivered.
Everything before the readout within 20 business days of data access, or the second half of the balance is waived.
Design-partner rate
$2,500
First two engagements only, and both are open. Same full scope, and the same $599 first week. In exchange: a published case study that names your company, with your written consent and with the curves and numbers anonymized; a reference call; and permission to use anonymized aggregates in benchmarks. Not free, and it goes away after two.
About 500–1,500 paying accounts. The same work, but the readout is a 12-week directional readout: an estimate with a range. Find out where churn is coming from now; measurement comes when volume does. Same $599 first week.
Timeline
Fit call — 30 minutes, freeIf it fits, a one-page SOW the same day.
Week 1 — the start, $599I connect read-only, we agree one churn number, and you see your retention curve split by segment. Continue or stop.
Weeks 2–4 — the rest of the diagnosticI find who's leaving, and you get the brief, the fix and the list of accounts to run it on.
The next 8–12 weeks — your team runs the fixHalf the group gets it. I check once a month that nobody “helped” the other half.
The readoutOne page, one call, one of three answers.
Who it's for
Subscription SaaS, B2B or prosumer, with roughly 1,500 to 50,000 paying accounts.
Someone who owns retention and can approve one fix and leave the comparison group alone for 8–12 weeks.
Not a fit: edtech and learning platforms, consumer subscriptions at 100,000+ subscribers, regulated finance or telecom, or anyone who wants the recommendations without the comparison group.
Access is read-only, always: restricted Stripe keys, a warehouse read role, exported events. You own the deliverables. Mutual NDA on request. Anonymized aggregates are used in benchmarks only if you opt in.
FAQ
Questions people ask
We already have cohort charts.
Almost certainly blended, and cut by signup month. They tell you when customers leave. The question here is which ones, stated as a rule you can act on — and whether acting on it changes anything.
Can you skip the comparison group and just give us recommendations?
I could, and they'd be worth what every other churn deck is worth. The comparison group is how you'll know whether to spend more on this next quarter. If a comparison group is off the table, this isn't the right engagement.
Our data is messy.
Everyone's is. Week 1 exists for that. If it's unworkable, you'll hear it in week 1 and we stop there. The $599 you paid to start is all you pay.
What data do you need?
At minimum: an account table with a stable ID and creation date, and subscription or invoice history (Stripe subscriptions and invoices is enough), with at least 12 months of history — 24 if you sell annual plans. Product usage by account and week, acquisition channel and plan-change history make the segments much better. The early work is credible from roughly 100 churn events in the lookback window.
Why not just use ChartMogul, Amplitude, or a churn tool?
If you have 100,000 subscribers, use the software built for that. If you only want the blended line, your billing analytics is fine. This is for the gap in between: enough data to find segments, not enough team to find them yourself.
Who runs the intervention?
You do. It has to be you, or the comparison group isn't clean. I find the segment, design the test, assign the groups and measure the result.
Will you need write access to anything?
No. Read-only, always.
Have you done this before?
Yes. My day job is leading product analytics and BI for a large product line that has evolved from B2C to B2B to Enterprise, and I've done this kind of retention diagnostic work before: finding which customers are leaving, sizing the group, and testing a fix against a comparison. Over 8 years of product analytics experience across several verticals. ChurnWave is new packaging for that work: a fixed scope and a fixed price for subscription SaaS companies. Because the packaging is new, the first two engagements are at a design-partner rate.
Thirty minutes to find out if it fits.
No pitch deck. I ask what you've tried, look at where your data lives, and tell you what week 1 would show.
Bring your rough account count, how you measure churn today, and where your billing and product data live. If it's not a fit — too small, wrong kind of business, no room for a comparison group — I'll tell you on the call.
Everything above, in the terms your analysts will use. Every number in the brief can be reproduced from the queries I hand over.
Seven deliverables, fixed in advance
Data I can reach read-only: a warehouse (BigQuery, Snowflake, Redshift, a Postgres replica) or Stripe plus a product-events source.
D1Week 1
Churn Definition Memo
The definitions in use, the one we standardize on and why, and trailing-12-month numbers under each.
Form2-page memo + SQL
D2Week 2
Segmented Survival Analysis
Curves by plan, channel, company size or activation state (whatever your data supports), 95% confidence bands, median survival by segment, marked risk windows.
FormHTML notebook + 3–5 deck-ready charts
D3Week 3
Explainable At-Risk Segments
3–5 segments, each a plain-language rule with population, churn rate vs. base, revenue at risk and a confidence note.
FormTable + SQL per segment
D4Week 4
Intervention + Comparison Group Test Design
One intervention for one segment: eligibility, randomization, split, duration, primary metric, minimum detectable effect at 80% power, and the decision rule — written down before the test starts.
Form3-page pre-registration
D5Week 4
Executive Brief + readout call
For a non-analyst: findings, the one recommendation, what we're testing and when you'll know.
Form6–8 page PDF + 45-min call
D6Week 4
Audience Export
Segment membership as CSV and as a definition in your messaging tool (Customer.io, HubSpot, Intercom, Klaviyo, Braze…).
FormCSV + definition
D7
Lift Readout Included
Treatment vs. comparison group with an interval, retained revenue net of any incentive cost, and one of three verdicts.
1–2 pages + 30-min call8–12 weeks after the test starts
You keep everything: the documents, the charts and the SQL. Every number in the brief can be reproduced from the queries I hand over.
Not included: building the intervention itself (email flows, in-app messages, CS playbooks), ongoing dashboards, a production churn model, integrating anything into your stack, or a second intervention. Those are outside this engagement.
What the method commits to
01
A churn number your team agrees on
Most subscription companies run two or three definitions at once — logo vs. revenue, cancel date vs. end of term, downgrades counted or not. I reconcile them and we pick one before anything else happens.
02
Segments written as rules a person can read
Not a risk score. Something like “self-serve accounts on the entry plan that never invited a second user in their first 14 days” — with how big the group is, how much faster it churns, and how much revenue is in it.
03
Survival curves on your own data
Retention by segment over customer lifetime, with confidence bands and the risk windows marked.
04
One intervention, and a test that can detect it
Not a list of twelve ideas. One, matched to one segment, with a pre-registered comparison group and an honest estimate of the smallest effect the test can see.
05
A readout that's allowed to say “no lift”
Treatment vs. comparison group, and one of three verdicts: lift detected, no lift detected, or underpowered. A null is a valid result, and I commit to that in writing.
The three verdicts
Lift detected
The 95% interval for treatment minus comparison group is entirely below zero.
No lift detected
The interval is entirely above zero, or sits within ±2 points.
Underpowered
Anything else. The readout is directional, and you'll know that before you sign, because it's in the SOW.
The math I'll show you before you pay
Detecting a change in churn takes more customers than most people expect. Two worked examples, using the standard two-group comparison at 95% confidence and 80% power:
So the test goes where churn is concentrated, not across everyone. If your eligible segment is under about 400 accounts, the readout will be directional — an estimate with a range, not a verdict — and you'll know that before you sign, because it's in the SOW.
When churn itself is too slow to read in 8–12 weeks, the primary metric may be a leading indicator (re-activation, a second user invited, usage recovering) that we agree on and write down in advance. Logo churn is the primary outcome; revenue-weighted results are reported too.
Testing on your whole base monthly churn 3.0% → 2.25%
~7,000
accounts in each group. Very few mid-market SaaS companies can run that.
Testing on an at-risk segment 90-day churn 30% → 20%
~300
accounts per group — about 600 eligible. This is the design we aim for.
Worked examples to show the shape of the math, not predictions for your business.
Week by week
I default to interventions you already have the tools for and that cost little or nothing — service recovery, an onboarding nudge, proactive outreach, a plan-fit review — rather than discounts. Discounts only if you insist, with the margin math written into the test spec.
Before we start — freeA 30-minute fit call. If it fits, a one-page SOW the same day. Then access: a read-only warehouse role or a restricted Stripe key plus an events export, and 30 minutes with whoever knows your schema.
Week 1 — DefinePull and profile the data, build one clean customer-lifetime table, draft D1. We agree the churn definition on a 30-minute call, and you get a first survival split by plan and signup channel. This is the $599 start: continue or stop here.
Week 2 — SurvivalThe full set of curves by candidate segments, checked to make sure the separations are real and not noise.
Week 3 — SegmentsFind the at-risk rules. Keep only ones with enough accounts behind them that hold up across two time windows. Rank by revenue at risk, then pressure-test them against what you already believe.
Week 4 — Test design and briefOne segment, one intervention, the test spec with the power math, the comparison group assigned. Brief, readout call and audience export.
The test runs — 8 to 12 weeksYou run the intervention; I hold the assignment list. A 15-minute monthly check that the comparison group is intact and nobody “helped” it.
Lift ReadoutOne page, one call, one of three verdicts. No spin.