NPS & CSAT
How to Calculate NPS: Formula, Example and Common Errors
5 min read · Updated
NPS = 100 × (promoters − detractors) ÷ all valid NPS answers. Promoters score 9 or 10, detractors score 0–6, and passives score 7 or 8. Keep passives in the denominator. Calculate with the original counts and round the final result if you report a whole-number score.
This guide shows the calculation, the errors to avoid, and how to interpret the number alongside your Shopify survey's audience and timing. The examples are illustrative, not customer results.
Start with the right question and scale
NPS uses a recommendation question on a 0–10 scale, such as “How likely are you to recommend us to a friend or colleague?” The standard groups and subtraction method are described in Bain's NPS definition.
| Answer | Scoring group | Role in the calculation |
|---|---|---|
| 9–10 | Promoter | Included in the promoter count and total |
| 7–8 | Passive | Included in the total |
| 0–6 | Detractor | Included in the detractor count and total |
These labels describe scoring groups. An individual score does not prove that someone will recommend your store, buy again or leave.
Use answers to the intended NPS question. A five-star satisfaction rating, an order quantity or a number written in a text answer is not an NPS answer. See NPS, CSAT and CES for the differences between those questions.
Worked example: 200 answers, NPS 35
Suppose one NPS question receives these answers during a defined reporting period:
| Group | Count | Share of all valid answers |
|---|---|---|
| Promoters | 110 | 55% |
| Passives | 50 | 25% |
| Detractors | 40 | 20% |
| Total | 200 | 100% |
Using percentages, 55 − 20 = 35. Using counts, 100 × (110 − 40) ÷ 200 = 35. Both methods produce the same NPS.
Report “NPS 35, based on 200 answers,” together with the question, audience, placement and dates. The result is a score between −100 and +100, not a percentage of satisfied customers.
Keep passives in the denominator
If you incorrectly remove the 50 passives, the calculation becomes 100 × (110 − 40) ÷ 150 = 46.666… . Rounded at the end, that incorrect result is 47, not 46. Rounding each percentage first can introduce another error.
Removing passives pushes a positive score higher and a negative score lower. A zero score stays zero if any answers remain. The problem is distortion, whichever direction it goes.
Keep 7s and 8s out of the promoter count
If you instead count the 50 passives as promoters, the same example becomes 100 × (160 − 40) ÷ 200 = 60. That measures a different grouping and cannot be presented as standard NPS.
Decide which answers belong in the calculation
Before counting, define a consistent reporting rule:
- Question: use one intended NPS question, with unchanged wording and scale where possible.
- Period: use the same date boundaries and timezone for counts and comparisons.
- Audience and placement: separate groups when the experience being measured differs.
- Missing answers: exclude a skipped NPS question from the NPS denominator; do not turn it into a zero score.
- Invalid answers: investigate values outside whole numbers 0–10 rather than converting arbitrary text or ratings.
- Repeated records: remove duplicate records of the same answer. If someone answers on separate purchases, decide whether you are reporting purchase experiences or unique customers, and apply that choice consistently.
A survey with an NPS question and two text follow-ups still has one NPS answer per completed NPS question. Counting all three answer rows would use the wrong denominator.
Read small samples carefully
There is no universal response count that makes a score reliable. The mix of answers, the people who respond and the comparison you want to make all matter. More answers do not by themselves correct a biased sample.
For an illustrative set of ten answers, five promoters, two passives and three detractors produce NPS 20. If one of those passives had instead answered as a detractor, the same ten-answer sample would produce NPS 10. That is a ten-point difference from one answer changing groups.
Keep the response count and underlying groups visible. Read comments for actionable problems even when there are few answers, but do not call a small score change a proven improvement. If a decision depends on statistical significance, use an appropriate analysis of the actual sample and collection method; a fixed rule such as “100 responses is enough” cannot establish it.
Calculate NPS with OrderSurvey
Create an NPS question and publish the survey on the intended Thank you or Order status page. The Thank you setup guide explains the separate steps of enabling the survey and saving its Shopify block.
The dashboard's NPS card uses valid NPS-question answers from the last 90 days, across surveys. It excludes ordinary ratings and other numeric answers. This is not automatically the same population as one calendar month, one survey or one customer segment. If you have several NPS questions or changing audiences, review them separately before comparing results.
For your own report, Unlimited's CSV export contains one row per answered question. In your spreadsheet, keep the intended survey, question and date range, then count only its valid NPS answers. The export does not automatically add order totals or existing customer tags; use separately obtained order data if your analysis needs those fields.
Online targeting supports first/repeat-order audiences and order conditions. Existing customer-tag targeting is unavailable on the Thank you and Order status blocks. The segmentation guide explains the available conditions and first-order setup requirements.
Timing also changes the interpretation. A first-time buyer answering immediately after checkout usually cannot assess delivery or product use. The Order status block appears on eligible page visits; it does not wait for delivery. Keep those limits beside the score. See how to compare ecommerce NPS before choosing a benchmark.
Collect answers you can act on
Start with one question and an optional conditional follow-up asking why the buyer chose that score. Review the reasons, choose a specific improvement and record what changed. The NPS follow-up guide explains Unlimited alerts and a practical response process.
Free includes 100 responses across the store per rolling 30 days and conditional follow-ups. Unlimited is $24 USD/month for unlimited responses, CSV export and webhook alerts, among its features. See pricing.
Install OrderSurvey to start collecting feedback, or book a personal setup walkthrough for help publishing the blocks and verifying the first saved response.
Frequently asked questions
Do passives count when calculating NPS?
Yes. Scores of 7 or 8 count in the total number of valid NPS answers. They are neither promoters nor detractors, but removing them from the denominator changes the score.
What is NPS when nobody has answered?
It is not yet defined. Report no responses rather than zero. An NPS of zero means that a nonempty set of valid answers contains equal numbers of promoters and detractors.
Does OrderSurvey calculate NPS automatically?
The dashboard summarizes valid NPS-question answers from the last 90 days. Ordinary ratings and other numeric answers are excluded. For a particular survey or date range, review the relevant responses; Unlimited CSV export supports your own calculation.
Run your first post-purchase survey
Ask how customers found you or collect feedback on Shopify's Thank you and Order status pages. One $24 USD/month plan includes unlimited use and every feature. After installing, add the survey block to each page in Shopify's editor.
Install OrderSurveyWant help getting started? Book a 20-minute setup call.