1. Scope
Calculates NPS from promoter (9–10), passive (7–8), and detractor (0–6) counts and provides benchmark context. It is not a customer-satisfaction model and does not causally link NPS to revenue.
2. Inputs and outputs
Inputs
- promoters number
- passives number
- detractors number
Outputs
- nps
(promoters − detractors) / total × 100.
- sampleSize
Sum of all three groups.
- distribution
Percentage of each bucket.
Engine source: src/lib/net-promoter-score-calculator/engine.ts
3. Formula / scoring logic
total = promoters + passives + detractors
nps = ((promoters - detractors) / total) * 100 4. Assumptions
- Respondents are a random sample of customers. Survey-response bias (happy/angry customers respond more) is not corrected.
- The 0–6 / 7–8 / 9–10 buckets are the Reichheld-standard definitions.
5. Data sources
6. Known limitations
- NPS-to-growth correlation is disputed in the academic literature. See Keiningham et al. (2007) "A Longitudinal Examination of Net Promoter and Firm Revenue Growth" — Journal of Marketing — for a methodologically critical view.
- Small samples (< ~200) produce unstable NPS. Use confidence intervals, not point estimates.
- Cross-industry benchmarks are noisy; within-vertical peer comparisons are more informative.
7. Reproducibility
Input
promoters = 60, passives = 25, detractors = 15.
Expected output
total = 100, nps = 45, distribution = 60% / 25% / 15%.
8. Change log
- 2026-04-24 methodology page first published.