Woke up to another cancellation email today.
Felt like a gut punch because I literally talked to this customer last week. Everything seemed fine. They were using the product. Paying on time. No complaints.
So I did what every paranoid founder does - went digging through their usage data.
Turns out "fine" was a lie I told myself.
They'd been checking out for almost a month. Logins went from every day to twice a week. Time in-app cut in half. They completely stopped using the main feature I built.
All the red flags were sitting right there. I just never connected the dots until it was too late.
I always thought customers cancelled because something broke or we screwed up. Like it's this sudden decision.
That's not how it works.
It's way more gradual. Almost boring:
First couple weeks - they're all in. Logging in daily, exploring features, asking questions.
Week 3 - starts slowing down. Maybe 3-4 logins. Sessions getting shorter.
Week 4 - just checking in twice. Barely spending 5 minutes.
Week 5 - one quick login, then nothing.
Week 6 - the cancellation email.
The decision to leave happened around week 3 or 4. You just didn't notice because you were putting out fires and shipping updates.
Started reviewing every customer I've lost. Same stuff keeps coming up:
Someone finishes onboarding, tries my main feature once, never touches it again. They didn't get it. Simple as that.
Account owner adds a couple team members then stops. Not convinced enough to get their whole team on board.
Support questions just stop coming. Not because everything's working - because they gave up trying.
Team accounts slowly shrink from 8 people to 3. Happens so gradually I don't even notice until they're gone.
Their emails get shorter. Colder. They're already mentally checked out before they hit cancel.
The worst part? This data is already in my tools. Mixpanel, Stripe, my support chat thing. I'm just not looking at it in the right way. And honestly, who has time to manually dig through usage data for every single customer?
ChartMogul figured this out the hard way in their early days.
Trial users would sign up, connect their Stripe, then disappear. They couldn't understand why.
Turns out - users who didn't create their first revenue chart within 48 hours? 85% of them churned during trial.
That chart was the moment everything clicked for people. Seeing their own revenue visualized for the first time.
Once they knew this, they changed everything to get users to that moment faster. Setup wizard, targeted emails, quick setup calls.
Trial conversions jumped 23%. Not from better marketing. Just from catching people before they mentally checked out.
Made me realize - churn doesn't start when someone clicks cancel. It starts way earlier when they don't "get it" fast enough.
Tracking logins is useless. Someone can log in every week and still be about to leave.
What actually tells you something:
Multiple signals together - login drops + shorter sessions + stopped using core feature + support messages getting negative. That's when you know.
One thing changing? Could be nothing.
Two things? Maybe pay attention.
Three or more? You need to reach out right now.
Not trying to build some complicated system. Just starting with the basics:
Finding my "aha moment" - that one action that makes people stick around. For me it's when they complete their first [specific action]. Talked to my best customers to figure this out.
Watching one pattern - picked my biggest leak. Trial users who don't activate within a week. Not trying to track everything at once.
Setting up simple alerts - just using Zapier and Slack. When usage drops significantly, I get pinged. When someone doesn't finish onboarding in 48 hours, they get an email from me.
Manually reaching out - when someone hits 2-3 warning signs, I send them a personal message. Not automated. Just me checking in.
That's it. Nothing fancy.
Even saving 10% of at-risk customers does more for revenue than another marketing campaign.
Waiting for perfect data - your current setup is good enough to start. Don't overthink it.
Tracking everything - I tried this. Just creates noise. Pick 2-3 things that actually matter for your product.
Automating too much - sometimes you just need to personally reach out. That works better than any email sequence.
Ignoring small numbers early on - when you only have 10 customers and lose 2, that's huge. Talk to them. The patterns in those conversations matter more than statistics.
Not calling churned customers - this one hurt. Every time I actually called someone who left, I learned something I'd never see in the data.
Before someone churns, I watch for:
Login frequency drops 40%+ from their normal
Sessions getting way shorter
Core features not touched in a week+
Didn't finish onboarding after 3 days
Support messages getting short or frustrated
Team accounts getting smaller
One signal - probably fine.
Two signals - I'm watching.
Three+ signals - I'm reaching out today.
That cancellation you got last week? You probably could've saved it three weeks ago. The warning signs were there. You just weren't looking.
Most churn is actually predictable. We're just not predicting it yet.
Good news - you don't need a data science PhD or expensive tools. You just need to know what to watch for and actually do something about it before they hit that cancel button.
Dealing with churn in your SaaS? Drop your link - I'll look at what you're building and tell you what patterns to watch for.