Back to Blog
Customer SuccessRevOpsCRM

Net promoter score: why B2B NPS is mostly noise

Abhishek Singla Jul 31, 2026 11 min read

A CEO of a 70-person B2B software company told me last month that their NPS had climbed from 31 to 44 over two quarters. He was pleased. The board slide was already made.

I asked how many customers responded.

Nineteen.

Out of about 180 paying accounts. Nineteen people, mostly product champions who like the tool, most of them not the person who signs the renewal. And the 13-point jump he was about to present as evidence of improving customer love was, statistically, three people having a slightly better week.

That is not a knock on him. It is what almost every B2B NPS program looks like once you open the hood. The survey goes out, a small and self-selected group answers, a number comes back, the number goes on a slide, and nothing about how the company operates changes. Meanwhile the actual signal sitting in those 19 responses, which is that two named accounts worth a combined €140K are unhappy and up for renewal in five months, never reaches the person who could do something about it.

So this post is not going to tell you NPS is dead. It is a fine question. It is the operating model around it that is broken in most companies I work with, and the fix is a CRM and data problem far more than a survey problem.

What NPS actually measures, and what people pretend it measures

NPS comes from one question: how likely are you to recommend us, 0 to 10. Nines and tens are promoters, sevens and eights are passives, zero through six are detractors. Score is the percentage of promoters minus the percentage of detractors, on a scale from minus 100 to plus 100.

Fred Reichheld published it in 2003 in Harvard Business Review and called it "the one number you need to grow." That claim has not held up well. The Ehrenberg-Bass Institute has been blunt about it, and independent replications have repeatedly failed to show that NPS predicts future growth better than plain satisfaction questions do. Jeff Sauro's review at MeasuringU graded the growth-prediction claim a C plus: correlated with what already happened, weak at telling you what happens next.

Academic work has also picked apart the arithmetic. The 0 to 10 scale gets collapsed into three buckets with cutoffs Reichheld chose by eye, then two of the buckets get subtracted from each other and the middle one gets thrown away. A customer moving from 6 to 8 is invisible. A customer moving from 8 to 9 swings the whole score. Research comparing calculation methods generally finds that a simple top-box measure, just the percentage of promoters, predicts sales growth at least as well and sometimes better.

None of that makes the question useless. It makes the headline number a poor management tool, which matters because the headline number is the only part most companies use.

The point

The score is the least valuable thing your NPS survey produces.

The valuable output is a list of named accounts, with a sentiment, an owner, an ARR figure, and a renewal date attached. Most companies throw that away and keep the average.

The sample size problem nobody puts on the board slide

Here is the part that should bother you if you run a B2B company under a few hundred customers.

Bain's own benchmark for B2B email NPS is a 12.4 percent average response rate, with the range running from roughly 4 percent to 39 percent. B2B SaaS with an engaged user base does better, usually 15 to 25 percent. Take the middle of that: 200 customers, 12 percent response, 25 answers.

Say those 25 break down as 15 promoters, 7 passives, 3 detractors. NPS is 48. Now three promoters have a rough onboarding month and drop to a 5. New split: 12 promoters, 7 passives, 6 detractors. NPS is 24.

Three people. Twenty-four points.

Run the actual confidence interval on 25 responses at that distribution and you get roughly plus or minus 27 points at 95 percent confidence. Your "48" is somewhere between 21 and 75. Every quarterly movement smaller than about 25 points is noise, and every quarterly movement you have ever reported was almost certainly smaller than 25 points.

12.4%
Bain B2B email response rate
±27
margin of error on 25 replies
100%
of replies that name a real account

This is why I get uncomfortable watching small B2B teams set OKRs on an NPS number. You are asking people to move a metric whose quarter-to-quarter movement they mostly cannot cause. What they can cause is a specific detractor becoming a reference customer, and that never shows up as its own target.

There is a second, worse sampling problem, and it is unique to B2B. In B2C the respondent is the customer. In B2B the account is the customer and the respondent is one human inside a buying committee of six or eight. The daily user who loves your product and the VP who signs the invoice have completely different opinions about your value, and it is almost always the daily user who fills in the survey. I have seen accounts with an NPS of 10 from three enthusiastic users churn at renewal because the economic buyer never got asked anything.

The B2B version that is worth running

Once you stop treating NPS as a company scoreboard and start treating it as an account-level signal, the design changes completely.

Survey the account, not the inbox. Send to every meaningful contact on the account: admin, daily users, the champion, and the person on the contract. Then roll responses up to the company record. An account where the champion says 9 and the budget holder says 5 is a very different account from one where everyone says 7, and a company-wide average hides that entirely.

Weight by revenue when you report. A detractor paying €90K a year and a detractor on a €400 a month plan are not the same event. CustomerGauge popularised this as account experience, and the arithmetic is simple: instead of counting responses, weight each one by that account's ARR. The revenue-weighted score is the only version I have seen correlate with anything a CFO cares about.

Time it to the relationship, not the calendar. Quarterly blast surveys train people to ignore you. Trigger instead: 60 days after go-live, 90 days before renewal, after a support case closes, after an escalation resolves. The 90-days-before-renewal one is the highest value survey most B2B companies are not sending.

Always ask the second question. "What is the main reason for your score" is where the entire value sits. The number tells you nothing you can act on. The sentence tells you the integration broke in March and nobody followed up.

How most B2B teams run NPS
Quarterly blast to one contact per account
Whoever replies, replies
One company-wide average on a board slide
Results live in the survey tool
Detractor feedback read, then filed
Nobody owns follow-up
How it should run
Every buying-committee contact, event-triggered
Coverage tracked as its own metric
Revenue-weighted, split by tier and segment
Response written to the contact and company record
Detractor creates a task with an SLA
Named owner, closed-loop rate reported

Wiring it into the CRM, which is the whole job

Every NPS program I have rescued failed in the same place. The data was in a survey tool, and the decisions were being made in the CRM, and nothing joined the two. Delighted, Retently, or HubSpot's own feedback surveys all collect responses fine. Getting the response onto the company record where a CS manager will actually see it is where teams stall.

Here is the build I use, and it takes about a week of work, not a quarter.

Step 01
Model it
Score, verbatim, survey date and trigger stored on the contact. Latest score, response count and detractor flag rolled up to the company.
Step 02
Trigger it
Fire on lifecycle events, not on the calendar. Day 60 post go-live, day minus 90 to renewal, after ticket close.
Step 03
Route it
Detractor creates a task for the account owner with a 48-hour SLA. Promoter creates a reference or expansion task instead.
Step 04
Report it
Revenue-weighted score by segment, coverage rate, closed-loop rate, and renewal rate split by promoter versus detractor.

In HubSpot this is a custom feedback survey plus three custom properties on the company object and two workflows. If your account structure is more complicated than one company to many contacts, and it usually is once you have multi-entity customers, you want a proper object for it. We covered that pattern in the guide to HubSpot custom objects. In Salesforce it is a custom object related to Account with a roll-up. In Attio it is a record attribute plus an automation.

The piece people skip is step three, and it is the only step that changes revenue. A detractor response that does not create a task with a name on it and a deadline is a diary entry. Bain's own framing of the closed loop is that the follow-up call matters more than the survey, and the teams I have seen get real results treat the 48-hour callback as non-negotiable. One client running a €4M ARR data product moved from zero follow-up to a 48-hour SLA on detractors and pulled back two accounts in the first quarter that their CS lead had already written off. That is not because NPS is magic. It is because someone finally called an unhappy customer before the renewal conversation started.

If you want the sentiment data to sit next to everything else you know about an account, this is the same architecture problem as customer health scoring and the same reason CRM data quality determines whether any of it works. A survey response attached to a contact record with no company association is worth nothing.

What to report instead of a single number

Kill the one-number board slide. Replace it with four things.

Revenue-weighted score, split by segment. Enterprise and SMB customers behave differently enough that blending them produces a number that describes neither.

Coverage rate, which is the percentage of your ARR that has responded in the last two quarters. If 30 percent of your revenue has never told you anything, your score is not a customer metric, it is a survey-taker metric. Coverage is the number I would put an actual target on, because unlike the score, your team can directly move it.

Closed-loop rate, the percentage of detractors contacted inside the SLA. This is the operational metric that determines whether the program does anything at all.

And the one nobody runs: renewal rate for promoters versus detractors, in your own data, over the last eight quarters. This takes an afternoon in a spreadsheet if your CRM is clean. If the gap is small, your NPS question is not measuring anything about retention in your business and you should stop putting it on slides. If the gap is large, you have just proven the program's value internally without citing a single benchmark article. Either result is worth more than knowing that the B2B SaaS median is somewhere around 36 to 41, which tells you nothing about your own customers.

I would pair all of this with net revenue retention rather than reading it alone. Sentiment that never shows up in NRR is sentiment that does not matter commercially, however nice the comments are.

When not to bother

Some honest advice that costs me consulting work: if you have fewer than about 50 customers, do not run NPS. Call them. Ten well-run 30-minute conversations with your economic buyers will teach you more than any survey, and at that account count the statistics are meaningless anyway.

If you have between 50 and 200 customers, run it, but report only verbatims and the account-level list, and do not put a score on a slide. At those volumes the score cannot support the weight people put on it.

Above roughly 200 accounts with decent coverage the aggregate number starts to be worth reading as a trend line, and only as a trend line over a year, not quarter to quarter.

And if your CS team is already at capacity, fix follow-up capacity before you increase survey volume. Asking customers for feedback you have no ability to act on is worse than not asking. It teaches them that telling you things does not work, which is exactly what you do not want them to learn three months before a renewal conversation. The same principle applies to renewal management generally: the process only works if someone owns the response.

Getting a number but not a signal?

We wire customer sentiment into the CRM so detractors create tasks and promoters create pipeline. Book a free 30-minute audit and we will show you the three changes we would make first.

Book an audit →

Frequently asked questions

What is a good NPS score for a B2B SaaS company?

Published benchmarks put the B2B SaaS median somewhere between 30 and 41, with strong vendors in the 40s and 50s, and enterprise-focused products usually scoring a few points above SMB-focused ones. Treat those as background context, not a target. Sampling and survey design vary so much between companies that cross-company comparison is close to meaningless. Your own trend over four quarters, weighted by revenue, is the only comparison worth managing to.

How often should we survey customers?

Stop thinking in frequency and start thinking in triggers. Send at 60 days after go-live, 90 days before renewal, and after significant support interactions. Cap it so no single contact gets surveyed more than twice a year. Quarterly calendar blasts produce declining response rates and train people to delete the email on sight.

Should we send NPS to the user or the buyer?

Both, and store them separately. The daily user's score tells you about the product. The economic buyer's score tells you about the renewal. In B2B those two answers diverge often, and the gap between them is one of the better churn predictors you can build, since a happy user with a disengaged buyer is a classic pre-churn pattern.

Which NPS tool should we use?

The tool matters much less than the integration. HubSpot's built-in feedback surveys are enough for most teams already on HubSpot and keep the data on the contact record by default. Delighted and Retently are stronger standalone options with better multi-channel delivery. Whichever you pick, the requirement is a real two-way sync that writes the score and the verbatim back to the CRM contact and company records. If it only exports CSVs, expect the program to quietly die within two quarters.

Is NPS better than CSAT or CES?

They answer different questions. CSAT measures satisfaction with a specific interaction, CES measures how hard something was, and NPS asks about overall relationship sentiment. For B2B, a relationship-level NPS on a trigger schedule plus a transactional CSAT after support tickets covers most of what you need. Adding a third survey type usually reduces total response rate without adding information you will act on.

Where to start

Pick your last two quarters of survey responses. Join them to account records with ARR and renewal date. Sort by ARR descending, filter to scores of 6 or below, and look at how many of those accounts had a follow-up conversation logged.

For most teams that number is close to zero, and that gap is worth more than any change to the survey itself. Fixing it is a workflow, an owner, and a deadline.

If you want help building the account-level version of this inside HubSpot, Salesforce, or Attio, that is the kind of work we do in CRM and RevOps, and the routing and follow-up layer sits in AI and automation. Or just get in touch and tell me what your response rate looks like.

Second opinion

Wrestling with something like this in your own stack?

Describe the whole problem to us, in total privacy. Within 7 days you get our second opinion in writing: what is actually going on, how we would tackle it, and what we would avoid. We take on a limited number of questions each month.

Ask privately