Churn Prevention
Production-grade SaaS churn reduction framework covering cancel flow architecture, dynamic save offer mapping, exit survey design, dunning sequence engineering, payment recovery optimization, win-back campaigns, and churn impact modeling. Addresses both voluntary churn (customers who decide to leave) and involuntary churn (customers who leave due to payment failure).
Table of Contents
- [Initial Assessment](#initial-assessment)
- [Churn Taxonomy](#churn-taxonomy)
- [Cancel Flow Architecture](#cancel-flow-architecture)
- [Exit Survey Design](#exit-survey-design)
- [Dynamic Save Offer System](#dynamic-save-offer-system)
- [Dunning Sequence Engineering](#dunning-sequence-engineering)
- [Win-Back Campaign Framework](#win-back-campaign-framework)
- [Churn Health Scoring](#churn-health-scoring)
- [Metrics and Benchmarks](#metrics-and-benchmarks)
- [Churn Impact Calculator](#churn-impact-calculator)
- [Output Artifacts](#output-artifacts)
- [Related Skills](#related-skills)
Initial Assessment
Required Context
| Question | Why It Matters | |----------|---------------| | Current monthly churn rate? (voluntary vs involuntary split) | Determines which lever to pull | | Do you have a cancel flow, or is cancellation instant/via support? | Determines build vs optimize mode | | What payment processor? (Stripe, Braintree, Paddle) | Affects dunning implementation | | Average contract value and billing cycle? | Sizes the save offer budget | | Current MRR? | Calculates the dollar impact of churn reduction | | SaaS model? (self-serve vs sales-assisted) | Determines intervention type | | Do you collect exit reasons today? | Data availability for save offer mapping |
Churn Taxonomy
Voluntary Churn (Customer Decides to Leave)
| Type | Signal | Addressable? | |------|--------|-------------| | Value gap | Not getting enough value for the price | Yes -- save offers, feature education | | Product-market mismatch | Wrong ICP, product does not fit their use case | Partially -- downgrade or pivot | | Competitor switch | Found a better alternative | Yes -- competitive counter-offers | | Budget cut | Cannot afford it anymore | Yes -- discount or pause | | Project completion | Seasonal or project-based need | Yes -- pause option | | Poor experience | Bad support, bugs, frustration | Yes -- human intervention | | Never activated | Signed up, never used it | Partially -- reactivation before cancel |
Involuntary Churn (Payment Fails)
| Cause | % of Failed Payments | Recoverable? | |-------|---------------------|-------------| | Expired card | 40-50% | Yes -- card updater service | | Insufficient funds | 20-30% | Yes -- smart retry timing | | Bank decline (fraud flag) | 10-15% | Sometimes -- customer must contact bank | | Account closed | 5-10% | No -- customer must provide new card | | Network error | 5-10% | Yes -- automatic retry |
Cancel Flow Architecture
The 5-Stage Cancel Flow
[Cancel Button] → [Exit Survey] → [Dynamic Save Offer] → [Confirmation] → [Post-Cancel]
Stage 1: Cancel Trigger
- Cancel option is findable (Settings > Account > Cancel). Do not hide it.
- Clicking "Cancel" starts the flow -- it does not immediately cancel the account
- Works on both desktop and mobile
Stage 2: Exit Survey (Required, 1 Question)
Question: "What is the main reason you are cancelling?"
Present as radio buttons (not a dropdown). Maximum 8 options:
| Reason | Internal Code | |--------|--------------| | Too expensive for the value I get | PRICE | | Not using it enough | LOW_USAGE | | Missing a feature I need | MISSING_FEATURE | | Switching to a different product | COMPETITOR | | My project or need ended | PROJECT_END | | Too complicated to use | COMPLEXITY | | Just testing, did not plan to keep it | TESTING | | Other (with optional text field) | OTHER |
Rules:
- Survey is required before showing the save offer (the answer determines the offer)
- One question only. No multi-page surveys.
- Optional free-text field for "Other" and as a supplement to any selection
- Track response distribution monthly to identify systemic issues
Stage 3: Dynamic Save Offer
Map each exit reason to exactly one save offer:
| Exit Reason | Save Offer | Offer Copy | |------------|-----------|------------| | PRICE | 30-50% discount for 2-3 months | "We'd like to offer you [X]% off for the next [N] months" | | LOW_USAGE | Pause account for 1-3 months | "Pause your account and come back when you need it" | | MISSING_FEATURE | Roadmap preview + workaround | "[Feature] is coming in [Q]. Here's how to achieve it now" | | COMPETITOR | Competitive comparison + discount | "Here's how we compare to [competitor]. Plus [X]% off" | | PROJECT_END | Pause option | "Pause instead of cancel -- your data stays safe" | | COMPLEXITY | Free onboarding session | "Let us set it up for you -- free 30-min session with our team" | | TESTING | No offer -- let them go | "Thanks for trying us out. You're welcome back anytime." | | OTHER | General retention offer | "Before you go -- we'd love to make this right. [Contact support]" |
Offer presentation rules:
- One clear offer per screen (not multiple choices)
- Quantify the value: "Save $120 over the next 3 months" not "Get a discount"
- CTA: "Accept Offer" vs "Continue Cancelling" (both clearly labeled)
- No countdown timers, no fake urgency
- No guilt-trip copy
Stage 4: Confirmation
If they decline the save offer or there is no offer to make:
┌────────────────────────────────────────┐
│ We're sorry to see you go │
│ │
│ What happens when you cancel: │
│ - Your data is saved for 90 days │
│ - Access continues until [date] │
│ - You can reactivate anytime │
│ │
│ [Yes, Cancel My Account] │
│ [Wait, I Changed My Mind] │
│ │
│ No pre-checked boxes. │
│ No confusing language. │
└────────────────────────────────────────┘
Stage 5: Post-Cancel
| Timing | Channel | Message | |--------|---------|---------| | Immediately | Email | Cancellation confirmation + data retention policy + reactivation link | | Day 7 | Email | "We miss you" + single CTA to reactivate + what they are missing | | Day 30 | Email | Product update + relevant improvement + reactivation offer | | Day 60 | Email | Final win-back with strongest offer (if applicable) |
Exit Survey Design
Data Analysis Framework
Track exit survey responses monthly and calculate:
| Metric | Formula | Action Threshold | |--------|---------|-----------------| | Reason distribution | % of cancels per reason | Any reason > 30% = systemic issue | | Save rate by reason | Saved / Cancel attempts per reason | Any reason < 5% save rate = wrong offer | | Reason trend | Month-over-month change | Increasing trend = worsening problem | | Feature gap frequency | Count of "missing feature" with specific feature named | Top 3 missing features = product roadmap input |
Competitive Intelligence from Exit Surveys
When users select "Switching to a different product":
- Ask a follow-up: "Which product are you switching to?" (optional, free text or dropdown)
- Track the top 3 competitors winning your churners
- Feed this data into competitive-teardown skill for quarterly analysis
Dynamic Save Offer System
Offer Economics
| Offer Type | Cost to Business | Save Rate Benchmark | When Profitable | |-----------|-----------------|---------------------|----------------| | 30% discount (3 months) | 30% of 3 months revenue | 15-25% | If LTV after save > discount cost | | 50% discount (2 months) | 50% of 2 months revenue | 20-30% | If retained customer stays 6+ months | | Pause (1-3 months) | $0 (no revenue during pause) | 25-40% | If 50%+ reactivate after pause | | Free onboarding session | CS te