Blog · Board and management reporting · Customer service
A Power BI NPS dashboard should show response distributions alongside the headline score. Work through customer-group comparisons, response coverage, and the checks that make a trend credible.
A Power BI NPS dashboard should put the score beside the responses that produced it: promoters, passives, detractors, and valid-response counts by customer group. The useful business question is whether sentiment changed within comparable groups, or whether a different mix of customers answered.
Microsoft defines a Power BI dashboard as a single page of highlights, with related reports providing detail. That makes a compact score-and-distribution layout appropriate; see Microsoft's dashboard overview. Covirage is not affiliated with Microsoft or Bain & Company.
Use one reporting window, one survey question, and one customer-group definition. An account that changes segment after submitting its response should retain the segment used for the comparison, or both periods should be restated consistently.
For this example, a fictional Ohio business-services company surveys new and established customers each month. It accepts one completed score per invited customer in each monthly window. Every valid response matches a unique invitation. Blank scores, invalid scores, and duplicate submissions are excluded before the table is built.
The response export needs an invitation identifier, customer identifier, invitation date, response date, group, and rating. A separate invitation list supplies the denominator for response coverage. A response-only file cannot tell you how many customers were invited but stayed silent.
Bain's Net Promoter scoring guidance assigns ratings of 9–10 to promoters, 7–8 to passives, and 0–6 to detractors. Apply those boundaries consistently rather than making a separate definition for each department.
Valid responses = Promoters + Passives + Detractors
NPS = (Promoters − Detractors) / Valid responses × 100
Response coverage = Valid responses / Unique invited customers × 100
NPS is a score measured in points. Response coverage and category shares are percentages. Keep those labels distinct throughout the page.
The counts below are the complete reporting inputs for September and October 2026. Counts are exact. Calculated percentages and scores are rounded to one decimal where needed; all calculations use the unrounded counts.
| Month and customer group | Invited | Promoters | Passives | Detractors | Valid responses |
|---|---|---|---|---|---|
| September: new | 200 | 45 | 30 | 25 | 100 |
| September: established | 300 | 108 | 45 | 27 | 180 |
| September total | 500 | 153 | 75 | 52 | 280 |
| October: new | 240 | 48 | 36 | 36 | 120 |
| October: established | 300 | 126 | 36 | 18 | 180 |
| October total | 540 | 174 | 72 | 54 | 300 |
For October's new customers, valid responses are 48 + 36 + 36 = 120. Coverage is 120 / 240 = 50.0%. Their NPS is (48 − 36) / 120 × 100 = 10.0.
| Group and month | Promoter share | Passive share | Detractor share | Response coverage | NPS |
|---|---|---|---|---|---|
| New: September | 45.0% | 30.0% | 25.0% | 50.0% | 20.0 |
| New: October | 40.0% | 30.0% | 30.0% | 50.0% | 10.0 |
| Established: September | 60.0% | 25.0% | 15.0% | 60.0% | 45.0 |
| Established: October | 70.0% | 20.0% | 10.0% | 60.0% | 60.0 |
The headline improved, but new customers became less positive. That is the reason to show the distribution: the new-customer passive share stayed flat while promoters fell and detractors rose. The customer-service lead should investigate onboarding separately from the established-account experience.
September's NPS is (153 − 52) / 280 × 100 = 36.1. October's is (174 − 54) / 300 × 100 = 40.0. The increase is 3.9 points, calculated before rounding the monthly scores.
The October total also follows from the response-weighted group scores:
| Reconciliation step | Calculation | Result |
|---|---|---|
| New-customer contribution | 120 / 300 × 10.0 | 4.0 points |
| Established-customer contribution | 180 / 300 × 60.0 | 36.0 points |
| Company score | 4.0 + 36.0 | 40.0 points |
| Response classification check | 174 + 72 + 54 | 300 responses |
| October coverage | 300 / 540 × 100 | 55.6% |
The unweighted average, (10 + 60) / 2 = 35.0, is wrong for this company total. It gives unequal response populations equal weight. Coverage also slipped from September's 280 / 500 = 56.0%, so an improved score should not be described as broader participation.
Keep a separate exclusion count in the review pack and reconcile submitted records to accepted plus excluded records. Also tie invitations back to the approved audience list. These checks protect the denominator before anyone interprets the trend.
Suppose one October new-customer response is corrected from a detractor rating to a promoter rating. No invitation or response is added. This single input correction changes both classification counts because the same response moves between categories.
| Measure | Original | After correction |
|---|---|---|
| New-customer promoters | 48 | 49 |
| New-customer detractors | 36 | 35 |
| New-customer valid responses | 120 | 120 |
| New-customer NPS | 10.0 | 11.7 |
| Company promoters | 174 | 175 |
| Company detractors | 54 | 53 |
| Company NPS | 40.0 | 40.7 |
The corrected company score is (175 − 53) / 300 × 100 = 40.7. Coverage stays unchanged. Moving one response from detractor to promoter changes the subtraction by two, so the company movement is 2 / 300 × 100 = 0.7 points after rounding.
That sensitivity is a reason to display counts. It is not evidence that a small movement represents a lasting change in customer sentiment.
Place company NPS, valid responses, and response coverage at the top. Under them, show a stacked distribution for each group and a monthly trend with counts visible. End with a group table that identifies an accountable owner and the question requiring investigation.
Use the broader Power BI dashboard examples for other business layouts, and the executive dashboard examples when this measure must fit a leadership review. Keep the survey detail here rather than squeezing it into every reporting page.
If the immediate need is validating the exported rows, the Power BI alternatives guide discusses the reporting approach. An existing workbook can follow the Excel dashboard guide once the counts agree.
Bring your response export and invitation counts, or a Google Sheet containing the same fields. Covirage maps the columns; its tools compute and check the response distributions, coverage, and group totals, and the external AI model explains the result with every figure traced to its rows. Create a free Covirage account, which takes about a minute, and bring a sample of your own data.
See Covirage for customer-service teams for the supporting business context.
Yes. Passives do not enter the subtraction between promoters and detractors, but they remain in the valid-response denominator. Show their share beside the other categories so readers can distinguish a change in enthusiasm from a change in dissatisfaction.
Only when the scores are weighted by their valid response counts. A simple average gives a small group the same influence as a large group. Pooling promoter, passive, and detractor counts is usually easier to audit.
Set the response rule before comparing periods. For a customer-level survey, you might retain one completed response per customer per reporting window. Keep the excluded records and the reason for exclusion so the reported count can be checked.
No. The result describes the valid respondents under the survey design. Different customer groups can move in opposite directions, and changing response coverage can alter the overall result. Review group scores and participation before making a company-wide claim.