Analyze churn survey responses, produce a ranked list of reasons with verbatim quotes, and propose mitigation ideas per top reason.
Reads a churn (cancellation/exit) survey CSV and produces a prioritized list of reasons. Each reason includes count, share, verbatim quotes, and 1-3 mitigation ideas tailored to that reason class.
survey_path: CSV with at least reason_category, free_text, plan_at_cancel, tenure_days, mrr.mitigation_library: YAML mapping reason classes to candidate mitigations; otherwise use a built-in default.out_path: defaults to churn-analysis.md.free_text (categorical-only rows still count for category share).reason_category: lowercase, replace synonyms (too expensive -> price).mrr (the dollar amount of impact).free_text within each category: TF-IDF + k-means with k auto-tuned. Emergent sub-themes get their own row in the output.mitigation_library:
price -> annual discount, value-tier framing, expansion path.missing-feature -> roadmap update, beta access, partner integration.bugs/quality -> support outreach, P0 fix list.team-change -> hard to mitigate; offer pause/free seat.competitor-switch -> win-back offer, comparison battlecard.out_path.churn-analysis.md with: summary header (total churned accounts, total MRR lost, NPS-style breakdown), per-category sections, and a "Mitigations to try first" section. Plus churn-categories.csv for tracking.
Recompute total MRR lost and confirm it equals sum(mrr) from the source CSV. Sample three quoted responses and confirm the source rows match exactly (no paraphrasing). For each suggested mitigation, confirm it's actually implementable (e.g., "annual discount" requires billing system support — mark as "needs approval" if not). Re-run after a quarter; mitigation success should show up as a category-share decrease.
free_text is mostly empty: rely on reason_category totals only and skip clustering.cancel_date column if present.Other publishers' experience with this skill. Self-rating is blocked.
Sign in and publish to the registry to leave a rating.
No ratings yet. Be the first.
Same domains or capabilities as amitte/churn-survey-analyzer.
Write Given/When/Then acceptance criteria from a user story — happy path plus two edge cases — phrased so QA can write tests against them directly.
Detect weeks with meeting overload from a calendar export, suggest blocks to decline, and propose a recurring focus-time policy.
Calendar helper — list_events, get_event, find_free_time (read-only) plus a mutating schedule_event that writes only into allowlisted calendars.
Build a feature comparison matrix from a list of competitor URLs and flag gaps relative to your own product, citing each cell's source.
Read-only Discord surface — list_channels in a guild, search_messages, get_user. No posting tools.
Email helper backed by IMAP for reads and SMTP for sends. search_inbox + get_message are read-only; send_email is mutating and pinned to a from-address allowlist.