ds@mcpanalytics.aiEmail your data and your question and get an answer about your own data, with the method shown.Email your data and question. Get an answer.
What is my survey telling me? Survey & ratings analyses | MCP Analytics
Question

What is my survey telling me?

By MCP Analytics Team | Published , updated

Compare two groups? Find what drives an outcome? Spot a trend? The question decides which statistics fit, so it is the first thing to get right.

See a worked example

How the analyses here work

Worked example

How likely are customers on each plan to recommend us?

The data. standard_nps.csv, the published sample file for NPS Analysis: 480 rows; columns response_id, plan, likelihood_to_recommend. Sample data, not a customer's.

The calculation. Python, standard library only. This exact code ran against the file when this page was built, and printed the output below it.

import csv
rows = list(csv.DictReader(open("standard_nps.csv")))
def nps(v):
    pro = sum(s >= 9 for s in v) / len(v)
    det = sum(s <= 6 for s in v) / len(v)
    se = ((pro + det - (pro - det) ** 2) / len(v)) ** 0.5
    return round(100 * (pro - det), 1), round(196 * se, 1)
plans = {}
for r in rows:
    score = int(r["likelihood_to_recommend"])
    plans.setdefault(r["plan"], []).append(score)
allv = [s for v in plans.values() for s in v]
print(len(allv), "responses: NPS %s +/- %s" % nps(allv))
for p, v in sorted(plans.items()):
    print(p, len(v), "responses: NPS %s +/- %s" % nps(v))
480 responses: NPS 11.0 +/- 7.0
Business 130 responses: NPS 35.4 +/- 11.5
Starter 150 responses: NPS -22.0 +/- 12.5
Team 200 responses: NPS 20.0 +/- 10.7

What it says. Net Promoter Score is the share of 9 and 10 ratings minus the share of 0 to 6. Overall it is 11, but the plans differ widely: Business 35.4, Starter -22, Team 20. The plus-or-minus figure is a 95% margin of error: 7 points overall and up to 12.5 for a single plan, so a move of a few points between surveys is often noise.

What it does not say. NPS throws away the difference between a 0 and a 6, and between a 9 and a 10. It says how people feel, not why; the library analysis breaks the score down by segment and tests whether the differences between segments are significant.

Run NPS Analysis on this file or your own, or open its stored sample report.

Sources

Further reading on the method in the worked example. Each reference was looked up and its authors, title, year and venue confirmed on 30 October 2026.

  1. Stevens SS (1946). On the theory of scales of measurement. Science. https://doi.org/10.1126/science.103.2684.677
  2. Wilson EB (1927). Probable inference, the law of succession, and statistical inference. Journal of the American Statistical Association. https://doi.org/10.1080/01621459.1927.10502953

By MCP Analytics Team. Updated November 2026. Analysis list from the library catalog.

A delivered report from this list

Multi-Rater Agreement (Fleiss Kappa): sample report Open full report →

The stored sample report for Multi-Rater Agreement (Fleiss Kappa). Each analysis has its own report layout; open its page to see what it returns.