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
- Churn Taxonomy
- Cancel Flow Architecture
- Exit Survey Design
- Dynamic Save Offer System
- Dunning Sequence Engineering
- Win-Back Campaign Framework
- Churn Health Scoring
- Metrics and Benchmarks
- Churn Impact Calculator
- Output Artifacts
- 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 | Cancellation confirmation + data retention policy + reactivation link | |
| Day 7 | "We miss you" + single CTA to reactivate + what they are missing | |
| Day 30 | Product update + relevant improvement + reactivation offer | |
| Day 60 | 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 |