When to use
Use this when you have a pile of tickets, reviews, survey responses, or chat logs and need to know what customers actually feel and what to fix first. Turn noise into a short, ranked action list.
Not for: a single ticket (cs-ticket-triage or cs-draft-response), formal statistical analysis, or batches too small to trend (under ~10 items — just read them). If the batch spans unrelated products, split it first.
Method
- Read the full batch before categorizing. Record volume and time window so trends mean something ("40 tickets, last 7 days").
- Cluster by underlying problem, not wording — "can't find export," "export button hidden," and "where is download" are one theme.
- Tag each item's sentiment (Positive / Neutral / Negative / Angry) and intensity. Capture a representative verbatim quote per theme — real words carry weight.
- Size each theme: frequency (count), severity (blocked vs. annoyed), trend (rising/steady/falling). Flag account-value or churn signals.
- Rank by frequency x severity x trend. Decision point: separate quick wins (cheap, high relief) from deeper investments so a rising cheap fix isn't buried under a large slow one.
- Produce "fix these 3" — the three highest-leverage actions, each with theme, evidence, expected impact, and suggested owner. Note positives worth reinforcing.
Example
Scope: 62 tickets, last 14 days.
Top theme: "Export is confusing" — 18 mentions, Negative, rising. Quote: "I spent 10 minutes hunting for the download button."
Fix these 3: 1) Relabel/move export button (18 tickets, Negative→rising) → expected -25% export tickets → @design. 2) ... 3) ...
Quick win: button relabel (1-day change). Bigger bet: export pipeline rework.
Pitfalls
- Clustering by surface wording — you split one real problem into three weak themes.
- Reporting counts with no time window — trend claims become meaningless.
- Ranking by raw volume alone — a small rising churn signal can outrank a large stable annoyance.
- Paraphrasing away the verbatim quotes — real customer words move stakeholders; summaries don't.
Output format
Scope: <volume + time window>
Themes:
| theme | count | sentiment | trend | sample quote |
Fix these 3:
1. <action> — evidence: <...> — expected impact: <...> — owner: <@name>
Quick wins vs. bigger bets: <split>
What's working: <positive signals to keep>
1---2name: cs-sentiment-scan3description: Cluster a batch of tickets or feedback into themes with sentiment, size each by frequency x severity x trend, and produce a ranked "fix these 3" list.4---56## When to use78Use this when you have a pile of tickets, reviews, survey responses, or chat logs and need to know what customers actually feel and what to fix first. Turn noise into a short, ranked action list.910**Not for:** a single ticket (cs-ticket-triage or cs-draft-response), formal statistical analysis, or batches too small to trend (under ~10 items — just read them). If the batch spans unrelated products, split it first.1112## Method13141. Read the full batch before categorizing. Record volume and time window so trends mean something ("40 tickets, last 7 days").152. Cluster by underlying problem, not wording — "can't find export," "export button hidden," and "where is download" are one theme.163. Tag each item's sentiment (Positive / Neutral / Negative / Angry) and intensity. Capture a representative verbatim quote per theme — real words carry weight.174. Size each theme: frequency (count), severity (blocked vs. annoyed), trend (rising/steady/falling). Flag account-value or churn signals.185. Rank by frequency x severity x trend. **Decision point:** separate quick wins (cheap, high relief) from deeper investments so a rising cheap fix isn't buried under a large slow one.196. Produce "fix these 3" — the three highest-leverage actions, each with theme, evidence, expected impact, and suggested owner. Note positives worth reinforcing.2021## Example2223> **Scope:** 62 tickets, last 14 days.24> **Top theme:** "Export is confusing" — 18 mentions, Negative, rising. Quote: "I spent 10 minutes hunting for the download button."25> **Fix these 3:** 1) Relabel/move export button (18 tickets, Negative→rising) → expected -25% export tickets → @design. 2) ... 3) ...26> **Quick win:** button relabel (1-day change). **Bigger bet:** export pipeline rework.2728## Pitfalls2930- Clustering by surface wording — you split one real problem into three weak themes.31- Reporting counts with no time window — trend claims become meaningless.32- Ranking by raw volume alone — a small rising churn signal can outrank a large stable annoyance.33- Paraphrasing away the verbatim quotes — real customer words move stakeholders; summaries don't.3435## Output format3637```38Scope: <volume + time window>39Themes:40 | theme | count | sentiment | trend | sample quote |41Fix these 3:42 1. <action> — evidence: <...> — expected impact: <...> — owner: <@name>43Quick wins vs. bigger bets: <split>44What's working: <positive signals to keep>45```