What it means
NPS reduces an eleven-point answer to three buckets and then subtracts one bucket from another. Respondents who answer 9 or 10 are promoters, 7 or 8 are passives, and 0 through 6 are detractors. The score is the promoter percentage minus the detractor percentage, and passives count in the denominator while contributing nothing to the result.
The design is deliberately lossy. It throws away the difference between a 2 and a 6, and between a 7 and an 8, in exchange for a single number that a whole company can hold in its head. Whether that trade is worth making is a genuine and long-running argument in survey research, and the fair summary is that NPS is a decent organising device and a weak predictive model. Used as a common language and as a trigger for follow-up conversations it earns its place. Used as a forecast it does not.
The most valuable output of an NPS programme is usually not the score. It is the list of named detractors with their free-text reasons, arriving fast enough that somebody can call them. A programme that produces an anonymous number and no phone calls has kept the cost and discarded the benefit.
The formula, written out
NPS = %Promoters - %Detractors
- %Promoters:
(count of scores 9 and 10 / total responses) x 100 - %Detractors:
(count of scores 0 through 6 / total responses) x 100 - Total responses: all answers received, including the 7s and 8s. Excluding passives from the denominator is a serious error that inflates the score substantially.
Because the buckets are fixed and the arithmetic is linear, each individual respondent moves the score by a known amount:
points per respondent per band step = 100 / n
With n = 640 that is 0.156 points. Moving one person from detractor to passive, or from passive to promoter, is worth 0.156. Moving them from detractor to promoter is worth twice that.
The confidence interval matters more here than for most metrics, because bucketing inflates variance:
Var(NPS) = ( p + d - (p - d)^2 ) / n, where p and d are the promoter and detractor proportions
95% interval = NPS plus or minus 1.96 x sqrt(Var) x 100 points
A worked example, end to end
A relationship survey goes to 4,100 customers and 640 answer, a 15.6% response rate. The distribution across the eleven points is in the table below. Grouped:
- Promoters (9 and 10):
172 + 116 = 288, which is288 / 640 = 45.00% - Passives (7 and 8):
121 + 84 = 205, which is32.03% - Detractors (0 through 6):
41 + 33 + 22 + 18 + 13 + 11 + 9 = 147, which is22.97%
NPS = 45.00 - 22.97 = +22.03, reported as +22
Now the interval, with p = 0.4500 and d = 0.2297:
p + d = 0.6797
(p - d)^2 = 0.2203^2 = 0.0485
Var = (0.6797 - 0.0485) / 640 = 0.000986
sqrt(0.000986) = 0.0314, so the standard error is 3.14 points
95% interval = +22 plus or minus 6.2, so +15.8 to +28.2
That interval is the most useful line in the whole report. A following quarter that comes in at +27 has not improved: the two results are statistically indistinguishable. A quarter at +34 has.
The leverage arithmetic is worth doing once, because it changes where teams spend effort. Take thirty passives and turn them into promoters: promoters become 318 (49.69%), detractors are unchanged at 22.97%, and the score is +26.72, a gain of 4.69. Now instead take thirty detractors and turn them into passives: promoters stay at 45.00%, detractors fall to 117 (18.28%), and the score is again +26.72. Exactly the same gain, because both moves shift 30 out of 640, or 4.69 percentage points, on one side of the subtraction. Turning thirty detractors directly into promoters is worth 9.38 points, precisely double.
The practical reading: rescuing an unhappy customer and delighting a merely-content one move the number identically, so choose between them on business grounds, such as which cohort holds more revenue, rather than on which will move the score more.
Three ways the number goes wrong
Averaging the raw scores instead. The mean of this same distribution is 4,910 / 640 = 7.67 out of 10. There is nothing wrong with reporting a mean, but it is not NPS and it behaves differently. Moving one respondent from 6 to 7 changes NPS by 0.156 points and the mean by 0.0016. More importantly, the mean hides polarisation completely: a base split evenly between 10s and 4s and a base clustered entirely on 7s and 8s can share a mean near 7.7 while producing wildly different NPS values and completely different renewal risk. If you report a mean, report the band distribution with it.
Excluding passives from the denominator. Computing promoters over promoters plus detractors gives 288 / 435 = 66.2% and detractors 147 / 435 = 33.8%, for a "score" of +32.4 instead of +22. Ten points of pure arithmetic, and the error is easy to make because a chart filtered to two categories looks tidier than one with three.
Sampling on the outcome. If the survey is sent only to customers who logged in during the past thirty days, then everyone who has already disengaged is excluded by construction, and those are precisely the future churners. In a base where 22% of accounts had not logged in that month, the surveyed population is not the customer base, it is the healthy part of it. The same trap appears in transactional NPS sent only after successfully closed cases. Send to the full population, and if you must filter, publish what you filtered out.
How NPS is actually derived from CRM data
The response is a row, and everything interesting is in its context:
- The response record: contact ID, account ID, score, free-text reason,
sent_at,responded_at, survey wave ID, channel and language. - The contact: role, because an administrator fighting an integration and an executive who signed the contract answer the same question very differently.
- The account: ARR, tenure, plan and health, so the score can be weighted or segmented rather than only averaged.
Edge cases that determine what the number describes:
- Rolling window versus wave. A rolling 90-day NPS changes smoothly and lags reality by up to a quarter. A wave-based NPS jumps on the day the wave lands and is comparable only to other waves. Both are defensible, mixing them in one chart is not.
- Duplicate respondents. The same person answering twice inside the window should count once, normally the most recent answer. Without this rule a single motivated detractor can answer repeatedly.
- Account weighting. If 640 responses come from 318 accounts, an account with twelve respondents contributes twelve votes and one renewal decision. Compute an account-level score by collapsing each account to one classification, and report it next to the response-weighted number. In B2B they can differ by ten points or more.
- Anonymity. An anonymous survey cannot be followed up, which removes the main operational value. If you must offer anonymity, offer it as a choice rather than as the default.
- Language. A survey sent in a language the recipient does not read produces no response, not a low one, so it removes a market from the sample rather than lowering the score.
- Timing relative to incidents. A wave that lands the week after an outage measures the outage. Record known incidents alongside waves so the series can be read honestly.
Why it matters
The score's real function is organisational. It gives support, product, sales and the board one number they all recognise, and it converts a vague argument about whether customers are happy into a time series with an interval around it. That is genuinely useful, and it is a smaller claim than the one usually made for NPS.
Its second function is triage. Every detractor is a named person who just told you something is wrong, days or weeks before it becomes a churn event. Routing detractor responses straight into a follow-up queue, with an owner and a deadline, converts a reporting exercise into a retention programme. That routing is where NPS programmes either pay for themselves or quietly stop mattering.
Common mistakes
- Writing it with a percent sign. It invites false comparison with CSAT.
- Reporting without a confidence interval. Most quarterly NPS movements are noise, and the interval says so.
- Setting a company target on it. The score is easy to lift by changing who gets surveyed, which is the first thing that happens once it becomes a target.
- Comparing across markets. Scale-use differences between cultures are well documented and larger than most real changes in satisfaction.
- Not reading the comments. The number tells you something moved. Only the text says what.
Related concepts
- CSAT: the transactional counterpart, computed as a real percentage.
- Churn rate: the outcome detractor follow-up exists to prevent.
- First response time: one of the operational inputs that moves sentiment.
- ICP: NPS split by account fit usually shows the profile working or not.
- Omnichannel CRM: where detractor follow-up actually happens.
- Conversion funnel: promoters are a referral source with measurable volume.
How Pinlyx handles it
Pinlyx stores each response against both the contact and the account, so response-weighted and account-weighted scores are available from the same data. Detractor responses can be routed straight into a follow-up queue with an owner and a due date, surveys go out in the contact's language, and the band distribution and response rate sit next to the headline number rather than three clicks away from it.