NPS

    NPS with the statistics behind it

    Headline score, promoter / passive / detractor split and the trend over waves, with a significance test of every wave-over-wave change, so a +3 is reported as noise when it is noise. Map Score and a Value; add Wave for the trend.

    Certified by Microsoft30-day free trial: choose Buy now on the listingHow licensing works

    Datasheet
    Status
    Available on Microsoft Marketplace
    Certification
    Microsoft Power BI certified. Exports to PowerPoint and PDF, works in email subscriptions and certified-only tenants.
    Price
    $1.99 /user/mo · $19 /user/yr
    Licensing
    Per user, assigned in the Microsoft 365 admin center, with a 30-day free trial. Unlicensed viewers see the free tier, never a blocked visual.
    Data
    Computed inside Power BI. No external calls, no API keys, no telemetry.
    Visuals API
    5.11
    Accessibility
    Single-tab-stop keyboard navigation, Windows high contrast, captions read by screen readers
    Languages
    English, Czech
    Methodology
    Published at /research/methodology; engine validated against R and scipy
    Works in
    Power BI Desktop, Service, Embedded
    Pl. VIII  ·  NPS  ·  the product spotrecorded from the shipped visual
    NPS visual in Power BI with margin of error, tested wave-over-wave change, histogram and trend
    Pl. VIII  ·  NPS  ·  Headline score with its margin of error and the tested wave-over-wave delta, the 0 to 10 histogram, split bar, trend with a confidence band, the gap to target, smart caption and footnote.rendered from the shipped visual
    What it does

    SmartVisuals NPS is the Net Promoter Score panel for Power BI that knows its own margin of error. Map the 0 to 10 answer and a value and you get the headline score as a number, badge or face, the split, the histogram, bases and the change against the previous wave or the first wave. Add a Wave field and the trend comes with a confidence band and a rolling average.

    The premium tier is the inference: a z-test on the NPS variance behind every wave-over-wave change, segments with letters and tested movement, weighted NPS on Kish effective bases, and the target: a line on the trend, the change measured against it and the gap written as an action, how many more promoters or fewer detractors it takes at the current base. Every number is computed offline inside the visual, the methodology is published, and the engine is validated against R and scipy.

    Search all visuals

    Free and premium

    Where the line is, exactly.

    Report authors see the full premium set in edit mode, so you can evaluate every feature on your own data before assigning a single licence. Unlicensed viewers always get a working chart.

    Free tierevery viewer
    • The headlineScore as a number, a badge or a face, coloured by band, placed left, centre or right, counting up when it changes, with its margin of error and the change against the previous wave or the first wave.
    • Split, histogram and trendThe 0 to 10 histogram, the split bar with shares, bases, the wave trend with a confidence band and a three-wave rolling average, an NPS / eNPS / tNPS label and remappable cut-offs.
    • Says the findingA smart caption with the score, the change and the split, offline, in your language; with the premium tier it also says whether the change is significant, the best and worst segment and the gap to target; an agency footnote; Quick Styles.
    • Every cosmetic optionFour themes, fonts, bar shapes and three fills of your own. Cross-filtering, tooltips, keyboard navigation and high contrast.
    Premium$1.99 /user/mo · first month free
    • Change you can defendA z-test on the NPS variance behind every wave-over-wave delta: the headline says significant or (n.s.), and how big a wave a non-significant change would need.
    • Segments with letters and movementA split bar, score and tested change since the previous wave per segment, lettered against the others and sortable by movement; low bases hatched and flagged; optional Bonferroni.
    • Weighted NPSMap Sum of Weight and Sum of Weight squared and the score, its standard error and every test use effective bases.
    • Target lineYour target drawn on the trend, the change measured against it, and the gap written as an action: "To reach +45: 60 more promoters or 60 fewer detractors".

    NPS in Power BI: the score is easy, the statistics are not

    Computing a Net Promoter Score in DAX takes three measures: the share of 9s and 10s, the share of 0 to 6, and the difference. What DAX does not give you is the margin of error on that score, or an answer to the question every quarterly review asks: the score moved from 41 to 44, is that real? NPS has an unusual variance, because it is the difference of two proportions from the same sample, and a card visual cannot know it.

    SmartVisuals NPS carries the statistics. Map the 0 to 10 score and a value and the headline appears with its margin of error and the promoter / passive / detractor split; the 0 to 10 histogram is one switch away. Add a Wave field and every wave-over-wave change is tested, so a +3 is reported as noise when it is noise, and the caption says how big a wave a non-significant change would have needed.

    The headline, the split and the trend

    The score renders as a number, a badge or a face, coloured by band, placed left, centre or right, counting up when it changes. Under it: the margin of error, the change against the previous wave, the first wave or your target, the 0 to 10 histogram, the split bar with shares and bases. The trend over waves comes with a confidence band and a three-wave rolling average.

    Cut-offs are remappable for eNPS or tNPS conventions (Detractors Up To, Promoters From), and the Score Label field takes NPS, eNPS or tNPS. Four themes, fonts, bar shapes and three fills of your own cover the cosmetics, all free.

    Gap to target: the score as an action

    A target of +45 and a score of +41 is a four-point gap, which tells nobody what to do. With a target set (premium), the visual turns the gap into respondents at the current base: "To reach +45: 60 more promoters or 60 fewer detractors". The smart caption also names the best and worst segment and whether the last change was significant, offline, in your language, and read out by screen readers.

    Segments with letters and movement

    Add a Segment field in the premium tier and each segment gets its score, its split bar and its tested change since the previous wave, lettered against the other segments and sortable by movement. Low bases are hatched and flagged, Bonferroni correction is optional, and a target line sits on the trend.

    Map Sum of Weight and Sum of Weight squared and the score, its standard error and every test use Kish effective bases, so a weighted CX study reports the same numbers in Power BI as in the agency's tables.

    What the visual expects from your data

    One column with the 0 to 10 likelihood-to-recommend answer and one value, a respondent count or a weight. Wave and Segment are optional grouping fields. The visual works from the raw answers, not from a pre-computed score, which is what lets it compute the variance and the tests. The same engine powers the Likert and Crosstab visuals and the all-in-one SmartVisuals Research visual; the formulas are on the methodology page.

    Use cases

    Where NPS earns its place.

    Customer NPS headline with the 0 to 10 distribution

    A CX team at Helios Manufacturing maps the likelihood-to-recommend answer to Score (0–10) and Count of RespondentID to Value. In the Display card they set Score Style to Badge, turn on Colour Score by Band with Good from 30 and Poor below 0, and turn on Show 0–10 Histogram, which draws once the plot area is at least 260 px tall. Readers see the score with its margin of error, the promoter, passive and detractor split bar, and the count at each score from 0 to 10.

    Monthly eNPS pulse for HR

    An HR team maps the eNPS answer to Score (0–10), Month to Wave / Period and Count of RespondentID to Value, and sets Score Label to eNPS. Show Wave Trend draws the score across months with Show Confidence Band on Trend, Trend Smoothing set to 3-wave rolling average adds a rolling line, and Change vs set to First wave measures the latest month against the first. Detractors Up To and Promoters From in the Score Mapping card move the cut-offs if the company counts differently; in the free tier the change is shown without a significance test.

    Regions ranked by movement (premium)

    A service director maps Region to Segment and Quarter to Wave / Period alongside Score (0–10) and Value. In Significance (Premium), Test Change vs Previous Wave tests the headline change at Confidence Level 95 %, Min Base for Testing 50 and Multiple-Comparison Correction set to Bonferroni govern the region letters, and Sort Segments set to By change vs previous wave puts the biggest movers first. Each region shows its score, split bar and tested change, and when a change is not significant the caption says how large a wave would need to be.

    Leadership target with the gap in respondents (premium)

    A Helios Manufacturing leadership page maps Score (0–10), Quarter to Wave / Period and Value, and turns on Show Target in the Target (Premium) card with Target Score 45 and Label set to 2027 goal. The target line sits on the wave trend, Change vs set to Target measures the score against it, and Show Gap to Target writes the gap as the number of additional promoters, or fewer detractors, needed at the current base.

    Getting started

    From empty canvas to first chart.

    1. 01

      Map the 0 to 10 answer to Score and a respondent count (or Sum of Weight) to Value. The headline and split render; switch on Show 0–10 Histogram in the Display card for the distribution.

    2. 02

      Add Wave / Period for the trend with its confidence band and rolling average.

    3. 03

      Set your target and the score cut-offs (NPS, eNPS, tNPS) in the format pane; pick a Quick Style.

    4. 04

      Add Segment and Sum of Weight squared for lettered, weighted segment comparison (premium).

    Get NPS

    Two ways in.

    Installation instructions for both paths are on the download page.

    Microsoft Marketplace (recommended)

    Reviewed by Microsoft, updates automatically, licences assigned in the Microsoft 365 admin center.

    Open Microsoft Marketplace

    Direct download (1.0.1.0)

    .pbiviz package, import into Power BI Desktop or Service, does not auto-update. Includes the full free tier; premium features preview in edit mode and are licensed through Microsoft Marketplace.

    Download .pbiviz

    Sample report

    A Power BI project (.pbip, zipped) on Helios Manufacturing data, with NPS 1.0.1.0 inside. Unzip it and open the .pbip file in Power BI Desktop.

    Download sample
    Accessibility

    Readable and usable for everyone.

    Tab
    Moves into the visual. The whole visual is one tab stop, and focus lands on the first mark, the detractors part of the split bar when the split is shown.
    Right arrow / Down arrow
    Moves to the next mark: detractors, passives and promoters, then the 0 to 10 histogram bars, the segment rows and the waves of the trend, in that order. Stops at the last mark.
    Left arrow / Up arrow
    Moves to the previous mark. Stops at the first mark.
    Page Down / Page Up
    Jumps ten marks forward or back.
    Home / End
    Jumps to the first or the last mark.
    Enter / Space
    Cross-filters the report to the focused mark, for example all promoters or one wave.
    Ctrl+Enter / Ctrl+Space
    Adds the focused mark to the current selection instead of replacing it.
    Escape
    Clears the selection.
    • High contrast

      In Windows high contrast mode the score, split bar, histogram, trend, caption and footnote take the system foreground and background colours, every bar gets an outline, and the transparent background is switched off. The split keeps its fixed order, detractors, passives, promoters, and its percentage labels.

    • Screen readers

      The visual is one labelled region whose name is the smart caption, for example NPS +41 in 2026 H1, the change against the previous wave and the split, so a screen reader reads the finding first. Each mark carries a label such as Promoters: 48.0%, NPS 9: 21.5% or 2026 H1: NPS +41.

    • Reduced motion

      The headline counts up from zero when the score changes. When the operating system asks for reduced motion it does not: the number is shown still. Animate Score in the Display card switches the count-up off for everyone.

    • Not colour alone

      The direction of a change is shown by ▲ or ▼ next to the number, a tested change by ✓ or (n.s.), segment differences by letters and a base too small to test by an asterisk and hatching. With the face score style the band also shows as a smile, a level mouth or a frown.

    • Languages

      English and Czech for the format pane, the smart caption, the footnote and the empty-state help. Other Power BI locales show the English strings.

    Release notes

    What changed, and when.

    Updates install automatically from Microsoft Marketplace. Full history.

    1. 1.0.1.0

      First release on Microsoft Marketplace.

      • NPS headline with promoter, passive and detractor split, histogram and wave trend.
      • Significance of wave-over-wave change, segments and weighted NPS (premium).
      • Right-click context menu on empty space.
    Questions

    Asked before you did.

    More questions? Write to us or search all the documentation.

    Two fields: Score (0–10) with the raw likelihood-to-recommend answer as a number, and Value, a respondent count or a Sum of Weight measure. Wave / Period, Segment and Sum of Weight² (significance) are optional. Non-numeric answers in Score are ignored.

    Because the margin of error and the significance tests come from the distribution of answers, not from the score. A pre-computed NPS measure cannot tell whether a change is real; the raw answers can.

    With a z-test on the NPS variance of the two waves, on effective bases when weighted. The headline says ✓ when the change is significant and (n.s.) when it is not, and the caption says how big a wave a non-significant change would have needed. The formulas are on the methodology page.

    Yes. Detractors Up To and Promoters From in Format → Score Mapping set the cut-offs, so a 1 to 10 scale or another convention works. Score Label is a text field: type eNPS or tNPS and the headline, caption and tooltips use it.

    The last wave in the Wave / Period field's sort order. Change vs in the Display card compares it with the previous wave or the first wave; comparing with the target needs the premium Target card. Sort the wave field chronologically, for example by a date or a wave number.

    Yes. Put a Sum of Weight measure in Value and the score and split are weighted, in the free tier too. Map Sum of Weight² (significance), SUM of the squared weights, and the margin of error and every test use Kish effective bases; that part is premium.

    No. The score, its margin of error, the split, the histogram, the trend with its confidence band and rolling average, the smart caption, the footnote and every cosmetic option are free for every viewer. The wave-over-wave tests, segments with letters and movement, effective bases from Sum of Weight², and the target (the line on the trend and the gap to target) need a per-user licence in reading view; in edit mode everything previews free. Where Power BI reports that licences cannot be checked, for example Report Server, the premium features stay on.

    It is off by default. Switch on Show 0–10 Histogram in the Display card, or pick the Executive summary Quick Style. It needs a tile at least about 260 pixels tall for the plot; in a smaller tile it stays hidden.

    Power BI hands the visual up to 2,000 rows, one per combination of Score, Wave and Segment, which covers 11 scores across many waves and segments. If your data has more combinations, the visual shows Power BI's warning icon instead of silently leaving rows out.

    English and Czech for the format pane, the smart caption, the footnote and the empty-state help. Other Power BI locales show the English strings.

    No. The visual requests no network access, makes no external calls and keeps no data in the browser. Every statistic is computed inside the visual, and the licence check is done by Power BI itself.

    Use the Report a bug block on the support page, or write to hello@smartvisuals.io. A short description, your Power BI version and, if you can, a screenshot or a sample file help us reproduce it.
    Troubleshooting

    When it does not look right.

    Found a bug or missing something? Post it on the requests board or vote for what others asked; the developer answers within two business days.

    The score is wrong or empty
    The visual needs the raw 0–10 answers in Score, one respondent per row (or a count in Value). A pre-computed NPS measure cannot be used, because the margin of error and the tests come from the distribution of answers.
    My scale is 1–10 or uses different cut-offs
    Set Detractors Up To and Promoters From in Format → Score Mapping, and type the label you use (NPS, eNPS, tNPS) in Score Label in the Display card.
    The trend shows one point
    Add a Wave / Period field and make sure it sorts chronologically (Sort By Column on a date or wave number).
    Significance letters do not appear
    Letters are a premium feature: they render in edit mode for everyone, but in reading view they need a per-user license. They also need a Segment field with at least two segments and a base at or above Min Base for Testing — segments below it are hatched, flagged with * and excluded on purpose.
    Premium features locked for a viewer
    Make sure the viewer has been assigned a license in the Microsoft 365 admin center under Billing → Licenses.
    Fields, settings & AI agents

    What goes in, and every setting.

    The fields NPS takes, with the GUID and internal names to add it to a report via PBIR or a report-authoring agent. Full catalog (JSON)

    Visual GUID
    npsChartBAC1A083FCF3471CB82882A8EB97F109
    RoleDisplay nameKind
    scoreScore (0–10)Grouping
    waveWave / PeriodGrouping
    segmentSegmentGrouping
    valueValueMeasure
    weightsqSum of Weight² (significance)Measure
    Missing something?

    Tell us what is missing.

    A feature you need, a bug you hit, a visual that does not exist yet. Every message reaches the person who builds these visuals, and feature requests shape what ships next. We also build visuals to order.

    Also in the family