About this template
14 replies from 300 customers is a survey of your fans
The people who were going to leave didn't answer. So the score looks fine, and the churn arrives anyway.
That's the failure mode this is built around.
Response bias goes at the top, not in a footnote
Every report opens with sample health: n, response rate, and who's over-represented — recent buyers, one channel, one segment. Under a 10% response rate, that leads the report.
A glowing result from a 6% response rate isn't a good result. It's a small sample of enthusiasts, and the report says so before it says anything else.
Questions that can't flatter you
Five rules, and they exist to stop a survey producing a nice number:
- No leading questions. "How much did you love the fast delivery?" presumes the love and the speed.
- One idea per question. "Helpful and knowledgeable?" is unanswerable if they were friendly but wrong.
- No mid-point escape on the key question. A 1–5 scale lets everyone pick 3.
- Open text first, not last. Answer quality collapses by the end of a survey, and the free-text answer is the only one that tells you why.
- Five questions maximum. Every extra one costs completions.
NPS never travels alone
Computed if you have a 0–10 question — but always with n and the themes beside it. An NPS from 11 responses is not a metric, and it'll say that instead of printing a confident number.
Themes need quotes, and the quotes stay blunt
Every theme carries its response count and at least one verbatim quote, complaints included and unsoftened. A theme without a quote is the model's opinion, not your customer's. A softened quote is a falsified one.
Two modes
Design — say what you want to learn, get five paste-ready questions with the leading phrasing stripped and a note on which one actually matters.
Analyse — drop a response CSV from any tool into ~/pulse/responses/.
What you supply
Your own Claude Code login, plus your contacted total — without it there's no response rate, and the response rate is what tells you whether to believe the rest.
No survey-tool API key. An export is the input, which is also why nothing can be sent.
Where this stops
It designs and analyses. It does not send email, create a live form, or contact a customer.
It won't claim statistical significance — small-business samples rarely support it — won't say satisfaction improved without a prior run to read, and won't tell you what a non-responder thinks. That last one is the only thing a survey genuinely cannot do, and pretending otherwise is the whole trap.
Verified on build: the skill, the working tree, the NEVER_SEND guard, all five
question rules, the NPS caveat and the response-bias rule are present on a fresh
fork. Running it on your own responses is yours to do.