Analyzing Product Sentiment
Given a batch of feedback, classify each item, then aggregate into themes:
Input: "The app crashes every time I try to export a PDF. Really frustrating since I need this for work daily."
Output:
- Sentiment: Negative (0.85 confidence)
- Emotion: Frustration
- Category: Bug / Reliability
- Feature: PDF Export
- Severity: High (blocks core workflow, daily use case)
- Actionable insight: "Fix PDF export crash — affects daily/critical workflows"
Don't stop at single-item labeling — the value is in aggregation across many items (see Workflow).
Progress:
- [ ] Step 1: Ingest & normalize feedback
- [ ] Step 2: Classify sentiment + emotion per item
- [ ] Step 3: Tag category, feature area, and root cause
- [ ] Step 4: Aggregate into themes with frequency + severity
- [ ] Step 5: Prioritize themes (impact x frequency x effort)
- [ ] Step 6: Produce actionable recommendations report
Step 1 — Ingest & normalize Collect feedback from all sources (reviews, tickets, surveys, social, NPS comments). Strip boilerplate, dedupe, note source + timestamp + user segment (if available — paying vs free, power user vs new).
Step 2 — Classify sentiment + emotion For each item, assign:
- Sentiment: Positive / Negative / Neutral / Mixed (with confidence)
- Emotion: frustration, delight, confusion, disappointment, relief, anger, etc.
- Watch for sarcasm, mixed sentiment ("I love X but Y is broken"), and context-dependent phrasing — split mixed feedback into separate sub-points rather than averaging to "neutral."
Step 3 — Tag category & root cause Tag each item with:
- Feature/area (e.g., checkout, onboarding, PDF export)
- Type: bug, missing feature, UX friction, performance, pricing, support experience, praise
- Root cause if inferable (not just symptom) — "crashes on export" → root cause may be "large file handling"
Step 4 — Aggregate into themes Group similar items into themes. For each theme report:
- Frequency (count + % of total feedback)
- Sentiment distribution
- Trend (increasing/decreasing vs prior period)
- Representative quotes (2-3 verbatim, not paraphrased)
- Affected user segment
Step 5 — Prioritize Score themes using Impact (how many users, how severe) × Frequency × Business value, weighed against estimated effort. Flag anything that's high-frequency + high-severity + trending up as urgent regardless of effort.
Step 6 — Report Produce a structured output (see format below) distinguishing quick wins (high impact, low effort), strategic bets (high impact, high effort), and monitor (low impact, low frequency — don't act yet).
Markdownundefined
- Total feedback analyzed: N
- Overall sentiment: X% positive / Y% negative / Z% neutral
- Trend vs last period: [improving/declining/stable]
1. [Theme name] — [Negative/Positive] — N mentions (X%)
- Severity: High/Medium/Low | Trend: ↑/↓/→
- Segment: [who's affected]
- Representative quotes:
- "..."
- Root cause: ...
- Recommendation: ...
| Priority | Theme | Impact | Effort | Category |
|---|---|---|---|---|
| P0 | ... | High | Low | Quick win |
Example 1: Input: 50 app store reviews, mixed 1-5 star Output: Theme "Onboarding confusion" — 18% of reviews, mostly 2-3 star, concentrated in first-week users; root cause: no tooltips on first launch; recommendation: add guided tutorial (quick win, high impact for activation metric).
Example 2: Input: Support tickets spiking after a release Output: Theme "Login failures post-update" — 40 tickets in 3 days vs baseline 5/week; severity critical, trending sharply up; recommendation: hotfix immediately, flagged as P0 regardless of effort.
- Always separate sentiment (how they feel) from content (what's actually wrong) — a polite complaint is still a complaint.
- Weight by business impact, not just volume — one churned enterprise account's feedback may outweigh 50 casual users.
- Preserve verbatim quotes for stakeholder buy-in; paraphrasing loses persuasive power and nuance.
- Track themes longitudinally — a theme's trend direction matters more than its snapshot size.
- Segment feedback by user type (new vs. power user, free vs. paid) — the same complaint can mean different things.
- Close the loop: tie every recommendation to a measurable success metric (e.g., "reduce export-crash tickets by 80%").
- Don't average mixed sentiment to "neutral" — a review that's half praise, half complaint contains two distinct signals; split it.
- Don't treat loudest/most frequent complaints as automatically most important — check severity and segment value too.
- Don't ignore silent negative signals (churn, declining usage, low NPS with no comment) — absence of complaints isn't satisfaction.
- Don't present themes without representative quotes — stakeholders need to feel the user's voice, not just see a percentage.
- Don't recommend features/fixes without estimating effort — impact-only prioritization leads to unrealistic roadmaps.
- Don't let recency bias dominate — a loud recent complaint shouldn't outweigh a larger, quieter long-term trend.