NPS

Some handy snippets for calculating NPS and accuracy. 

[nps] 

((promoters/total ) - (detractors/total))

[nps_var] 

((1 - [NPS]) ^ 2 * promoters/total + (0 -  [NPS]) ^ 2 * neutral/total + (-1 - [NPS]) ^ 2 * detractors/total)

Suggested Usage: 

select
  npsdate
  , total as sample_size
  , [NPS] as nps
  , (sqrt([NPS_VAR]) / sqrt(total))  as moe2
  , (sqrt([NPS_VAR]) / sqrt(total))  as moe
  , [NPS] - (sqrt([NPS_VAR]) / sqrt(total)) as moe_lower
from
  (
    select
      [created:aggregation] as npsdate
      , count(1)::float as total
      , count(
        case
          when recommend <= 5
            then 1
        end )::float as detractors
      , count(
        case
          when recommend > 5
          and recommend < 9
            then 1
        end )::float as neutral
      , count(
        case
          when recommend >= 9
            then 1
        end )::float as promoters
    from
      your_nps_survey_table
    group by
      1
  )
  as respondents

You can use moe_lower, moe and moe2 to show error bars on results. Make moe_lower the same color as the background.

7replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • I wonder what a good NPS monitoring regimen would have in it. Has anyone here done anything like that before?

    Reply Like
      • Sean Cook
      • Product Analyst @ Facebook
      • Sean_Cook
      • 1 yr ago
      • Reported - view

      Adam Brzozowski I led NPS for Quickbooks at Intuit, and touch it lightly here at Periscope. How it works depends highly on scale. At Periscope I can easily read every comment and maintain a pretty good understanding of what is important and trending. At Intuit with >2k replies a day, I had to do everything programmatically!

      I did write a post on NPS here:
      https://www.periscopedata.com/blog/net-promoter-score.html

      Reply Like
    • Sean Cook That word analysis is awesome - missed this post when it came out - thanks.

      Reply Like
  • Two things I've found valuable in using NPS are:
    - reporting it as a 30 day rolling calculation (i.e. for each possible date, calculate NPS based on all survey results in the previous 30 days)
    - the above, but with segmentation (e.g. for our product based on customer size)

    You see some seriously interesting things looking at it this way, especially with the segmentation.

    Reply Like
    • Kyle Demeule  interesting - yes I imagine seeing the smoothed trending like that would be useful. Have you done any time series models to look for dependencies between segments? 

      Reply Like
      • Sean Cook
      • Product Analyst @ Facebook
      • Sean_Cook
      • 1 yr ago
      • Reported - view

      Kyle Demeule I like rolling 30 day metrics too. The only problem is that at large organizations, fluid numbers can be a bit more difficult to explain and require educating your stakeholders. 

      One segmentation that is interesting (although not actionable) if you have enough data is plotting it by state. I've done this before with huge samples and the south is on average much nicer than the northeast or west coast. 

      Reply Like
    • Kyle Demeule This seems like a classic case of Simpson's Paradox if you will. In general, I think the moral of the story is to understand these types of conditional population parameters. This is one good example of a very important linkage between probability and simple BI. 

      Reply Like
Like3 Follow
  • 3 Likes
  • 1 yr agoLast active
  • 7Replies
  • 645Views
  • 4 Following