Analyse CSAT / NPS / CES survey results and turn the score into actions. Use when asked to analyse NPS, CSAT, or CES data, compute an NPS score, interpret survey verbatims, or build a voice-of-customer readout. Produces a readout — the computed score, the trend & benchmark, themed analysis of the comments (what drives promoters vs. detractors), and prioritised actions. Includes a stdlib NPS/CSAT calculator.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add mohitagw15856/pm-claude-skills --skill csat-nps-analysis --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Csat Nps Analysis?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mohitagw15856-csat-nps-analysis-edf7ac70)More formats (shields.io, HTML) on the badges page.
---
name: csat-nps-analysis
description: "Analyse CSAT / NPS / CES survey results and turn the score into actions. Use when asked to analyse NPS, CSAT, or CES data, compute an NPS score, interpret survey verbatims, or build a voice-of-customer readout. Produces a readout — the computed score, the trend & benchmark, themed analysis of the comments (what drives promoters vs. detractors), and prioritised actions. Includes a stdlib NPS/CSAT calculator."
---
# CSAT / NPS Analysis Skill
A satisfaction score on its own is a vanity number — the value is in *why* it's that number and *what to
do*. This skill computes the score correctly (NPS is %promoters − %detractors, not an average), reads the
verbatims for the themes driving promoters and detractors, and turns it into a prioritised action list —
so a survey becomes a roadmap, not a slide.
## Required Inputs
Ask for these only if they aren't already provided:
- **The metric & data** — NPS (0–10 ratings), CSAT (e.g. 1–5 or % satisfied), or CES; the response counts/distribution.
- **The verbatims** — open-text comments (the gold; paste what you have).
- **Context** — segment, time period, and the prior score for trend.
## Output Format
### [CSAT / NPS / CES] Readout: [segment, period]
**1. The score** — computed (use the helper for NPS/CSAT): the headline number, the **distribution** (promoters/passives/detractors for NPS), the **trend** vs. last period, and the **benchmark** (industry/your target). State the formula — NPS is a net of percentages, not an average.
**2. What's driving it** — theme the verbatims:
- **Promoters love:** the 2–3 recurring reasons people rate high (protect/amplify these).
- **Detractors hurt by:** the 2–3 recurring pains (these are your fix list).
- **Passives need:** what would move them up.
Quote a representative comment per theme.
**3. Segments** — where the score is notably worse/better (plan, tenure, channel), if the data allows — the average hides this.
**4. Actions** — prioritised: the highest-frequency × highest-impact detractor themes first, each with an owner and the metric it should move. A score with no actions is wasted.
## Programmatic Helper
`scripts/nps.py` (stdlib only) computes NPS / CSAT from the rating distribution:
```bash
# NPS from 0-10 counts (11 numbers, ratings 0..10):
python3 scripts/nps.py nps 12 5 8 ...
# CSAT % satisfied (ratings 4-5 on a 1-5 scale):
python3 scripts/nps.py csat 2 3 10 40 55
python3 scripts/nps.py nps "...counts..." --json
```
## Quality Checks
- [ ] NPS is computed as %promoters − %detractors (not an average of scores)
- [ ] The distribution and trend vs. last period are shown, plus a benchmark/target
- [ ] Verbatims are themed into promoter/detractor drivers, with a representative quote each
- [ ] Segment differences are surfaced where the data allows (the average lies)
- [ ] Ends with prioritised, owned actions tied to the biggest detractor themes
## Anti-Patterns
- [ ] Do not average NPS ratings — it's a net of percentages; averaging gives a meaningless number
- [ ] Do not report the score without the why — the verbatims are where the action is
- [ ] Do not ignore passives — they're the cheapest group to convert into promoters
- [ ] Do not stop at the score — an analysis with no prioritised action changes nothing
- [ ] Do not trust a tiny sample — flag low n; a 12-response NPS swing is noise, not a trend
## Based On
Voice-of-customer practice — correct NPS/CSAT/CES computation, verbatim theming, and action prioritisation.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!