BlogNet Promoter Score

NPS Can't Reduce Churn - But Not For the Reason You Think

Updated:
September 10, 2026
September 10, 2026
15
min read
Eylül Nowakowska Beyazıt
Chief Customer Officer
Table of contents
false

You can usually tell a relationship is in trouble before anyone says it is over, and customer relationships are no different. The cancellation email is only the formal ending. The real breakup may have happened months earlier, when setup stalled, the champion left, or the outcome the customer bought slipped out of reach.

NPS is supposed to catch that trouble. Too often, it takes one snapshot after the decisive moment, or records the clearest warning a customer gives you as no information at all.

That is why I think the usual argument about NPS and churn starts in the wrong place. People ask whether a low score predicts cancellation and whether a high score protects against it.

Let’s grant NPS the best possible case and assume the correlation is perfect. It can still fail you. A metric that runs on your calendar can arrive too late, flatten answers that mean very different things, and leave the team with nothing it can act on.

In the account below, NPS worked exactly as designed. It filed the most useful thing that customer told us all year as nothing worth acting on.

The account that stayed green until it churned

This piece grew out of our August 27 webinar, Churn Autopsy: What NPS Never Told You, where Irina Vatafu and I walked through an account named Northwind. Irina runs Customer Success and Support at Custify.

She builds health scores, and workflows that are supposed to catch when those scores begin to fall. The Northwind case is fictitious. We built it around a failure we have both watched happen: the customer looks fine in the data until the cancellation lands, and only then does the team see what it missed.

Live polling from Survicate's and Custify's webinar on why NPS cannot predict churn
Live polling from our webinar on why NPS cannot predict churn. Live participants: 86

On paper, Northwind stays healthy for almost a year. When it cancels, the only explanation on record is price. Go back through the account and you see the relationship begin to fail much earlier. NPS doesn’t catch it while there is still time to act. 

We’ll follow Northwind from kickoff to cancellation, identify the point at which the relationship actually began to crack, and trace the three failures that let the warning signs pass unseen. Then we’ll introduce the Churn Signal Test, a four-question framework for choosing a sentiment signal for a health score, and show how to build that signal in practice. 

12 seats, 12 months, one cancellation

Our fictitious account Northwind that churns despite no earlier NPS flag

Northwind is a mid-market B2B SaaS company. Annual contract, 12 seats, roughly $14,400. The job they hired the product to do was simple enough: kill a manual process running on spreadsheets across three teams, then give leadership one place to see the whole thing.

Their VP of Operations ran the evaluation, chose us, and put her own credibility behind the decision. Remember that, because it matters later.

For the next 12 months, our systems recorded plenty of activity around the product. They never told us whether that manual process had actually gone away.

Northwind canceled at renewal. The only explanation anyone wrote down was that we were too expensive.

The year as everyone saw it

The timeline for our fictitious account Northwind, from signup to churn
The timeline for our fictitious account Northwind, from signup to churn

Week 1: Kickoff. Seven of 12 seats activated, the champion on the call, nobody raising concerns.

Week 3: Setup and integration work begins. Nothing moves in the health score, because nothing is supposed to.

Week 6: Logins down around 30%, account still active. They are clicking around the product without building anything in it, and no dashboard tells those apart.

Month 2: Four seats used every day. As a flat number, four active users looks fine.

Month 5: The annual NPS survey goes out to all 12 contacts. Two people respond. Neither is a detractor.

Month 6: The VP of Operations leaves the company and nobody tells us. Her seat stays active, so a departed champion keeps producing usage data. A new contact starts poking around.

Month 9: The score finally moves to amber. No alert, no workflow, no owner. It joins the queue behind three accounts that are already red.

Month 12: Northwind cancels.

I'll be straight about my own read here. If you had shown me that timeline in month 6, I wouldn't have flagged this account either. It was active, and nothing in the score was asking for my attention. That's exactly what makes it worth studying: the warning signs only look obvious once you know how it ended.

When the relationship ended, and when we found out

Read the same year backwards and the cancellation date turns out to be the least informative date in it.

Northwind decided by month 10, when the new owner ran a stack review and picked a replacement. By the time we heard in month 12, there was no renewal conversation left to have. We were being notified.

It all ended in week 3. The ops lead sat down to connect the product to the systems where the data actually lived. Two of those connections didn't work the way everyone had assumed during the evaluation. She worked around it by hand for about a week, then stopped. No ticket, no email, no complaint. Nobody on our side ever knew it happened.

Irina Vatafu, Head of Customer Success at Custify
Irina Vatafu, Head of Customer Success at Custify

Irina looked at the same usage data and noticed something our flat number had hidden:

"A green health score that ends in churn is where a CS team's maturity actually starts, because you have to go back and ask what the score was measuring. Four active users looks healthy. Four out of twelve licenses inside one account is 33%, and that would have gone amber at month 3. Same four people, completely different signal."

Even so, usage could only ever tell us who was present. It couldn't tell us whether the manual workflow Northwind wanted to kill had actually gone away. That takes a question, asked at a moment when the answer is still useful.

The setup problem was fixable for weeks. It stayed invisible because our feedback and health-score process failed in three separate places, and all three are things you can change yourself.

Failure 1: We only asked the customers who succeeded

The first time anyone asked Northwind a question was month 5. By then the relationship had been in trouble for four months.

The obvious fix is to add something during onboarding. That's right, and it's also where the trap sits. Irina sees two options:

"The survey didn't fire because something happened to that customer. It fired because it was time to be sent. That's the thing I'd change first: put it on the customer's lifecycle, or trigger it on what they actually did. Anything but your own calendar."

I'm with her on the calendar. Where I'd be more careful is the behavior trigger, because it tends to reproduce the same problem.

Finish the setup and the survey fires. Spend a week failing to connect two systems, give up, and nothing happens at all. The customers who get stuck just before the threshold disappear from your feedback program entirely.

I know because I built one of these. A behavior-triggered program that only ever talked to customers who had completed the action. The results looked reassuring, and then a room full of us sat there wondering why they didn't match the churn number.

Northwind's ops lead crossed no threshold after week 3. A survey timed to her first month would have landed in the middle of the integration work, when she had something very specific to tell us. And it would have reached the right person, which is the second thing most programs get wrong. The question has to find whoever is actually doing the work. In Northwind that was never the champion.

Failure 2: The 7 we filed as fine

Month 5. Twelve contacts surveyed. Two responses. One 7, from the champion. Zero alerts.

The 7 went nowhere. Not low enough for the detractor workflow, nobody assigned to follow up, so it entered the account history as neutral.

Now think about who gave it. The VP of Operations, four months after the project she had staked her name on, ran into a wall. Her reason for buying had already quietly failed, and she was the one person in that account with something to lose by saying so. The system read her answer as an uneventful middle category.

A 7 can't be read without asking who gave it and what was happening in the account at the time. Irina's example from outside B2B makes that better than another definition would:

"I stayed somewhere in Greece this summer. Lovely place, but the room wasn't comfortable. The staff, though, were super friendly and helpful, and at the end they asked me for a rating. I gave them an 8. That 8 says nothing about the comfort problem. It says they were nice enough that I felt I should rate them higher than what I actually thought. Someone can be quietly shopping for alternatives and still leave you an 8, because an 8 doesn't require a conversation."

That's the mechanism. A high-but-not-top score is the cheapest thing a disappointed person can hand you. It lets someone acknowledge the friendly staff without turning an uncomfortable room into a confrontation.

Northwind's champion answered honestly. The metric couldn't carry her answer. Once her 7 became a passive, the part that mattered never started a conversation, and our system knew how to chase detractors and nothing else. A program built to turn passives into promoters asks very different questions from one built to find out what has already gone wrong.

There's a second failure stacked on that one, and it's less obvious: ten people didn't answer. Ten non-responses lowered nothing, triggered nothing, and vanished from the account view. One of them was the ops lead who hit the wall in week 3.

One missing response proves nothing. When the silence repeats and the customer has also stopped making progress, it isn't neutral.

Failure 3: The champion left and nothing moved

To a usage score, a seat is a seat. It can't see that the person who cared about the outcome has left the building. Her login stayed switched on for months and somebody new was working under it.

Neither Irina's score nor mine catches this, and the obvious fix makes it worse. Weight the champion's seat more heavily and month 6 still reads green, because that seat was still producing activity. It just reads green with more confidence.

So this one doesn't arrive as data at all, and no survey is going to find it either. Contact changes belong in your CRM and contact-level data, feeding the score as their own input. If you hold regular account reviews, ask what has changed since the last call and log the answer somewhere your workflow can actually reach it, because meeting notes are where these things go to die. If you don't hold reviews, a plain check-in email does the same job. Either way, treat repeated silence on it the way you would treat two skipped surveys.

The Churn Signal Test: how to choose a sentiment signal

The churn signal test to choose a good sentiment signal for a custom health score

A health score needs a sentiment signal because usage alone cannot tell you how the customer sees the relationship. The harder question is which sentiment metric can warn you while the account is still recoverable. Northwind had an NPS response, but it never became that kind of signal.

That choice often gets reduced to CSAT versus NPS. I’d start somewhere more practical: what does the input need to do inside the health score? A familiar metric can still be badly suited to that job.

One technical limit first, because it comes up every time. You can't average raw NPS and CSAT responses as though they shared a scale. A 5 on a 0 to 10 NPS scale isn't a 3 on a 1 to 5 CSAT scale, and the category boundaries land in different places. The formula will run and the result won't mean anything. Have you ever heard of sushi pizza? It sounds like that. Disturbing. 

That doesn’t prevent sentiment from entering a health score. You define how each input affects the score instead of averaging the raw responses. To help choose what will serve as the sentiment signal in that model, the Churn Signal Test asks four questions. 

Recency: is it current for this customer?

If the score is a statement about today, the sentiment inside it can't be months older than everything else in there.

Northwind was surveyed in month 5, four months after the account had started to fail. A biannual program would have landed at roughly the same useless point. Frequency is not the issue when neither date has anything to do with where that customer is.

Combine weekly usage with sentiment on a fixed calendar and your CSM is looking at two different moments inside one number. The score is current even though one of its inputs isn't.

Granularity: does it keep meaningful answers apart?

The standard NPS calculation takes eleven possible answers and collapses them into three categories. A 2 and a 6 are both detractors, and they are not the same customer. A 6 and a 7 land on opposite sides of a boundary when the underlying experience is nearly identical.

To be clear about what the objection is: it's the collapsing, not the length of the scale.

Five points kept in raw form carry more usable signal than eleven points squashed into three buckets. You can preserve the raw 0 to 10 response in your own model, and if you do, NPS passes this one. Feed the score the standard categories or an aggregate and the detail is gone, which means answers that call for different interventions arrive looking the same.

Comparability: does the same number mean the same thing across accounts?

A threshold only helps if it means roughly the same thing across your book. Raw NPS makes that hard, because customers use the scale differently depending on language and cultural context.

Our 2025 Global NPS by Language report analyzed 504 survey-language records from 264 surveys run by 108 companies. Median NPS ran from 76.60 for Hungarian-language surveys to minus 1.21 for Croatian. Spanish sat at 67.23, Japanese at 25.20.

That spread isn't purely linguistic, and the report says so: the companies and industries inside each language group differ too. It's still wide enough to make a single raw NPS threshold across every account hard to defend. Left uncorrected, your lower-scoring language groups can read permanently at risk while your higher-scoring ones read permanently fine, and the model ends up telling you how customers use a scale when you asked how likely they were to leave.

If your whole book answers in one language, this one bites less. It doesn't disappear, though. The same effect tends to show up between segments, seniority levels, and buyer personas, and it's harder to spot there because you can't blame it on the language column.

Ownership: is someone responsible for acting on it?

A signal doesn't have to be under CS's control to predict churn. Somebody, however, does have to receive it and know what happens next.

A low NPS score can come from product quality, from a pricing decision made far outside CS, or from expectations marketing set before the account ever reached the team. That makes it an unfair performance target for CS alone, and unfair targets quietly lose people's trust. As an operational signal it can still work, as long as the response has an owner and a follow-up path.

The first three questions tell you whether the signal is timely and interpretable; ownership tells you whether your organization can do anything with it. Fail either half and the input isn't ready to go into the score unchanged.

How we built the sentiment signal at Survicate 

Survicate's Customer Pulse Program - 5 micro-surveys for measuring CSAT in our CS team, presented over a year.
Survicate's Customer Pulse Program

About three years ago we stopped running our biannual NPS at Survicate. We didn’t deprioritize it or send it less often, we stopped running it entirely. For a customer feedback platform, that made for a slightly awkward internal conversation, but I'd make the same call again.

As I wrote in my take on the CSAT versus NPS debate, NPS still had strategic value for us. A twice-yearly recommendation score just told us almost nothing about an individual customer while there was still time to do something about it.

To replace periodic NPS as an operational signal, we built our Customer Pulse program: five in-app micro-surveys placed on the customer’s lifecycle and timed to where each account actually is. Those five surveys provide the inputs for one lifecycle-based sentiment signal. 

Day 15: onboarding satisfaction. An early friction check while they're still setting up.

Day 45: needs fit. How well does Survicate meet what they came for?

Month 4: perceived value. Are they getting the outcome they expected?

Month 7: workflow integration. How far has this become part of their working day?

Month 11: renewal recommendation likelihood. It fires before the renewal conversation, not during it.

Each one then repeats annually, so we get a trend per customer and can compare someone with their own answer from a year ago.

How Customer Pulse feeds the health score 

Timing solves only part of the problem. For Customer Pulse to work inside the health score, its responses need to be comparable and lead somewhere. These are the rules we use.

One scale everywhere. All five run on the same CSAT scale, 1 to 5. That's the only reason they add up to a single comparable number, and you can't retrofit it later.

A defined action per outcome, decided before the question exists. My test is what we would do differently if this came back low. If I can't answer that, I delete the question.

Route the answer the same day. An open comment automatically starts a one-to-one support conversation. A low score sends a Slack alert and the CSM follows up inside one business day. "We couldn't connect it to our warehouse" has to reach a human while it is still true, or you have built a very tidy archive of the reasons your customers left. Everything then lands in Research Hub, where the open comments get read across accounts, which is how the pattern behind five separate complaints becomes visible.

Ask about expectations, not feelings. I don't ask customers whether they're happy, because happiness is a mood and their bad Tuesday isn't about our product. Expectations are concrete: were they met, and if not, who needs to respond?

Get those rules right and Customer Pulse can give the health score a consistent account-level view of sentiment. It should modify the usage signal rather than sit alongside it as an equally weighted input. Irina is firm about this, and she’s right: 

"Usage refreshes constantly. Sentiment refreshes rarely, even on a good lifecycle cadence. Weight them the same and either one stale response dominates the score for months, or it gets drowned out by the noise in daily usage. Sentiment should work as a modifier on the usage signal, capped at ten or fifteen points either way, not as an equal input."

So where does that leave NPS, and what do you build instead?

None of this makes NPS worthless, and I've argued that in public before, including when Gartner predicted its death. It became the dominant metric for a real reason. Loyalty was fluffy until NPS made it measurable and repeatable, and nothing before it stuck.

Run it periodically and it still hands you a list of the people who will vouch for you, which is worth having. That's a strategic job, not a daily prioritization tool for Customer Success.

What I'd question is how much it adds to churn detection once lifecycle surveys are running. If you already know at month 4 whether a customer is getting the value they expected, an annual recommendation score isn't going to tell you much you can act on sooner.

Which brings us back to the health score itself, and the two things it has to answer at once: is the customer using the product, and are they getting what they came for? Our dashboard had enough activity to answer the first one green. It knew nothing about two broken integrations or a champion clearing out her desk.

A lifecycle-based sentiment signal could have filled in some of that missing context and brought Northwind to someone’s attention while there was still time to intervene. If you build one thing this month, take the earliest lifecycle question that can expose friction during setup, and make sure every open comment lands with a named owner.

For Northwind, a day-15 onboarding check would have landed right around the time the integration work started, while it was all still fixable. Our full Customer Pulse program has the questions, the timing, and where each answer lands, if you want to steal it.

Run your own churn review with our AI skill

Run our skill (.md markdown file) in your favorite AI assistant to review your churned accounts

Lastly, we've created a markdown file you can paste into whatever AI assistant you already use:

https://assets.survicate.com/docs/churn-autopsy-kit-survicate.md

It walks you through your last three to five churned accounts one at a time and gives you the date each was actually lost, the gap between that and the day you found out, and the pattern across all of them.

P.S. If you are a Survicate customer, don't forget to use our MCP to fully make use of your available customer feedback signals 

FAQs

Can NPS predict churn?

Across a customer base, NPS can sometimes correlate with churn. The trouble starts when a periodic result gets treated as an early warning for one account. It arrives when your calendar says so, which has nothing to do with where any individual customer is, and running it more often doesn't fix that.

Why do promoters churn?

Because a recommendation and a renewal answer different questions. Someone can recommend you and still lose the budget argument, lose their champion, or never get the outcome they bought you for.

Can a customer churn while the health score still looks fine?

Unfortunately yes, and it's the case worth studying. It usually means the score was measuring presence rather than progress: people were logging in, nothing crossed a threshold, and the outcome the customer actually paid for never showed up. Northwind is a case built from exactly that pattern.

What should I use instead of NPS to spot churn risk?

Use a health score that combines usage and outcome data with a lifecycle-based sentiment signal. Run that sentiment input through the Churn Signal Test: is it current, does it keep different answers apart, do its thresholds travel across accounts, and who owns the response? For usage, Irina’s rule is blunter: track the percentage of licenses in use within each account and the trend, never the flat number. 

How often should I survey for churn signals?

Tie each question to a moment in the customer's own lifecycle. Ours run at day 15, day 45, month 4, month 7, and month 11, then repeat annually.

Do NPS passives churn?

Yes, and they're harder to catch than detractors, because nothing about a 7 fires a workflow. Who gave you the 7 matters more than the 7 does.

So what truly makes customers churn?

Custify's customer churn guide separates between voluntary and involuntary churn. Examples of voluntary churn reasons: product limitations or issues, poor fit for customer or on pricing, competitive disadvantage, and weak onboarding experience. Examples of involuntary churn reasons: old payment information or payment errors, and cards that are stolen, lost or have insufficient funds.

Share this article:
Copy link icone
No items found.
Get expert tips on customer research
Subscribe for monthly insights on product, marketing, CX and mastering user feedback.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
By submitting you agree to terms described here.
Customer feedback made easy
Tap into valuable insights with our effortless feedback tool. Sign up now and make customer-driven decisions.
Start free

FAQs

See more questions
Hide some questions
attribute_section_arrow

Treat yourself to premium features, for free

Test drive Survicate’s Business plan for 10 days — no card, no hassle.
Love it? Upgrade to a plan that fits, or keep using the free version.