Skip to content

Visualizing Survey Data for Net Promoter Score Analysis

Visualizing Net Promoter Score means charting the three-way split of promoters, passives and detractors, plus the score itself, with the number of respondents shown. A 100% stacked bar compares segments, a trend line with a margin-of-error band shows change over time, and a 0 to 10 histogram reveals what sits behind the score.

Tracey Stuart
Tracey Stuart

Global VP Analysis & Insights · Updated March 17, 2026

Part of the guide What is Net Promoter Score?

You have an NPS from your latest survey, and someone wants a chart for the quarterly review. This article covers four charts that work for the metric described in our guide to what Net Promoter Score is and how to calculate it, and the habits that keep them honest.

Key takeaways

  • Visualizing Net Promoter Score works best with a 100% stacked bar showing the promoter, passive and detractor split, with the NPS and respondent count labeled on each bar.
  • Show trends as a line chart with a shaded 95% margin-of-error band, because overlapping bands say wait and separated bands say act.
  • Print the number of respondents on every segment bar, since a high score from 60 people is far less certain than one from 500.
  • A 0 to 10 histogram shows what the stacked bar hides, such as 55 of 130 detractors sitting on a 6, one point below the passive line.
  • Avoid gauges with no context, color-only coding, smoothed lines and cropped axes, which hide the split, the base and the real size of a change.

Why is a single NPS number not enough to chart?

NPS is the percentage of promoters minus the percentage of detractors, so it throws away the passives and hides how the score was reached. A score of +20 might mean 50% promoters and 30% detractors, or 25% promoters and 5% detractors. Those are different customer bases.

A good NPS chart does three jobs: it shows the composition behind the score, it makes groups easy to compare, and it shows how much to trust a difference. A table of numbers does none of these well.

How do you chart the promoter, passive and detractor split?

Use a 100% stacked bar. Each bar is one group, such as a product line, a region or a survey wave, and its three segments add up to 100%. Every bar has the same length, so you compare shares directly, even when groups have very different numbers of respondents.

Four choices make it readable:

  • Fix the order. Put detractors on the left, passives in the middle and promoters on the right, in every chart you publish.
  • Label the segments with percentages, and print the NPS at the end of each bar.
  • Sort the bars by NPS so the ranking is obvious.
  • Show the base in each bar label, for example “Shoes (n = 500)”.

Here is a worked example. The shares come from a fashion-line example in our earlier version of this article; the respondent counts are illustrative.

Product lineDetractorsPassivesPromotersNPSRespondents
Accessories20%10%70%+5060
Shoes30%20%50%+20500
Pants10%80%10%0150
Shirts50%10%40%−10300

The arithmetic for each row is promoters minus detractors: 70 − 20 = 50, 50 − 30 = 20, 10 − 10 = 0, and 40 − 50 = −10. The scores are points, not percentages.

The stacked bars add information the NPS column cannot. Pants scores 0 because almost everyone is a passive, which is a lukewarm line. Shirts scores −10 because half of respondents are detractors, which is a problem worth investigating. For the calculation itself, see our walkthrough on how to calculate Net Promoter Score.

Use a line chart with survey waves on the horizontal axis and NPS on the vertical axis. Mark the zero line, plot one point per wave, and shade a band around the line for the 95% margin of error. Print the base under each point.

The margin of error matters because NPS is built from two proportions measured on the same sample. For a simple random sample, use this formula, where p is the promoter share and d is the detractor share, both as decimals:

margin of error = 1.96 × square root of ((p + d − (p − d)²) / n)

The table uses four waves of 400 respondents each. The results are illustrative.

WavePromotersDetractorsNPSMargin of error (95%)
Q140%26%+14about ±8
Q241%25%+16about ±8
Q343%22%+21about ±8
Q446%19%+27about ±7

Between Q2 and Q3 the score rises 5 points, which sits inside the noise. Between Q1 and Q4 it rises 13 points. The margin of error on the difference between two independent waves of 400 is about 11 points, so the 13-point gain is large enough to treat as real. The chart should make that visible: overlapping bands say “wait”, separated bands say “act”.

If your data is weighted, use the effective base instead of the raw count. Do not smooth the line, and break it where you changed the question wording, audience or channel. If you run these waves continuously, a ranked view of what changed across your trackers and studies can flag the movement worth charting.

How do you compare NPS across segments?

Use a horizontal bar chart of NPS by segment, sorted from highest to lowest, with an error bar on each bar and the base in each label. Pair it with the stacked bar so readers get both score and composition.

Bases are what turn a ranking into a fair comparison. Using the fashion-line example, the 95% margins of error are:

Product lineNPSRespondentsMargin of error (95%)Plausible range
Accessories+5060about ±20+30 to +70
Shoes+20500about ±8+12 to +28
Pants0150about ±7−7 to +7
Shirts−10300about ±11−21 to +1

Accessories has the highest score and also the widest uncertainty, because only 60 customers answered. Without the base on the chart, a reader would assume it is the clear winner. With it, the honest reading is that Accessories is probably strong, but you need more responses to say how strong. Agree a minimum base in advance, and flag or combine segments below it.

What does a 0 to 10 histogram add?

A histogram of the raw answers shows where respondents sit relative to the cut-offs. Draw one bar for each value from 0 to 10, color the bars by group, label every value, and start the vertical axis at zero. Here is an illustrative survey of 500 customers.

ScoreRespondentsShareGroup
0 to 57515%Detractors
65511%Detractors
77014%Passives
810020%Passives
99018%Promoters
1011022%Promoters

Detractors total 130 (26%), passives 170 (34%) and promoters 200 (40%), so the NPS is 40 − 26 = +14. The histogram shows something the stacked bar cannot: 55 of the 130 detractors gave a 6, one point below the passive line. If those 55 had been counted as passives, detractors would be 75 (15%) and the score would be +25. That is not how the method works, but it shows how much sits at the boundary, and why a pile of 6s is a different problem from a pile of 0s.

What are the common mistakes when charting NPS?

  • Using a gauge with no context. A speedometer-style dial shows one number, hides the split, carries no base, and its colored zones imply benchmarks that nobody has sourced. If you use a gauge or a single large number as a headline, add the previous wave, the base and a link to the stacked bar.
  • Leaving out the base. An NPS of +20 from 40 respondents and one from 4,000 are not equally reliable. Show the number of respondents on every chart.
  • Relying on color alone. Red and green look alike to many readers. Use direct labels and a color-blind-safe pair.
  • Smoothing or truncating. Smoothed lines invent values between waves, and a cropped vertical axis makes a 3-point move look like a collapse.
  • Showing only the score. Two groups with the same NPS can have very different mixes. Chart the split alongside the score.

How do you do this in practice?

A spreadsheet handles one survey, but slows down across several waves and many segments. Halo Reports is built for this work: crosstabs and banner tables with weighting and significance testing, charts, interactive report pages, and Net Promoter Score views, so you can see the score by segment and share it with colleagues.

What should you do next?

Take your latest NPS data and build the 100% stacked bar first, with bases in the labels. Then add margins of error to your trend line and check which of your recent moves are larger than the noise. Finally, draw the 0 to 10 histogram for the segment that worries you most, and read the comments behind its 6s. If you share loyalty results with a customer experience team, a continuous view of satisfaction drivers and loyalty across trackers and verbatims gives them somewhere to follow the trend.

Frequently asked questions

What is the best chart for Net Promoter Score?

A 100% stacked bar, with detractors, passives and promoters in a fixed order, the NPS printed at the end of each bar and the respondent count in the label. It shows the score and how it was made.

Should NPS be shown as a percentage on a chart?

No. NPS is a difference between two percentages, so it is a whole number from −100 to +100. Label it as a score or in points, and use percentages only for the promoter, passive and detractor shares.

What colors work for an NPS chart?

Use a diverging pair that color-blind readers can tell apart, such as orange for detractors and blue for promoters, with a neutral gray for passives. Add direct labels so the chart never depends on color alone.

How do you chart NPS for a segment with few respondents?

Show the base on the bar and add an error bar, so readers see how wide the uncertainty is. Agree a minimum base in advance, then flag or combine segments that fall below it.

See how customer teams track loyalty in mTab.

Bring a customer tracker or an NPS program. We'll show you the analysis, and what Pulse would surface by segment.

Book a demo