---
# === IDENTITY ===
id: business/customer-success/churn-prevention-system-design/2026
canonical_question: "How do I prevent churn — leading indicators, health scoring, intervention triggers, save plays, benchmark rates?"
aliases:
  - "Churn prevention system design 2026"
  - "Customer health scoring and intervention framework"
  - "SaaS churn reduction playbook"
entity_type: execution_recipe
domain: business > customer-success > churn-prevention-system-design
region: global
jurisdiction: global
temporal_scope: 2025-2026

# === VERIFICATION ===
last_verified: 2026-03-12
confidence: 0.89
version: 1.0
first_published: 2026-03-12

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: evolving
  last_breaking_change: "AI-powered predictive health scoring shifted from rule-based to ML-driven models in late 2025, changing weight calibration practices"
  next_review: 2026-09-08
  change_sensitivity: high

# === CONSTRAINTS ===
constraints:
  - "Minimum 3 months of product telemetry history required before health scores are statistically meaningful"
  - "Health score model must be recalibrated quarterly — customer behavior patterns shift with product changes"
  - "Segment-specific scoring required — SMB, mid-market, and enterprise accounts churn for different reasons"
  - "Involuntary churn (payment failures) must be handled separately from voluntary churn — different interventions"
  - "Save plays must be approved by finance before offering discounts or credits exceeding 20% of ACV"

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs a strategic overview of customer success, not execution details"
    use_instead: "Search knowledgelib.io for a customer success strategy overview — no dedicated unit yet"
  - condition: "User only needs churn benchmark data without implementation guidance"
    use_instead: "finance/saas-benchmarks/saas-churn-rate-benchmarks/2026"
  - condition: "User is pre-revenue or has fewer than 50 customers — health scoring is premature"
    use_instead: "Search knowledgelib.io for early-stage retention tactics — no dedicated unit yet"

# === AGENT HINTS ===
inputs_needed:
  - key: company_stage
    question: "What is the company's current stage and customer count?"
    type: choice
    options: ["50-200 customers", "200-1000 customers", "1000+ customers"]
  - key: cs_tooling
    question: "What CS/CRM platform is in use?"
    type: choice
    options: ["Gainsight", "ChurnZero", "Vitally", "Totango", "HubSpot", "Salesforce only", "no CS platform"]
  - key: data_maturity
    question: "How mature is the product analytics setup?"
    type: choice
    options: ["basic (page views only)", "intermediate (feature tracking)", "advanced (event-level telemetry)"]
  - key: churn_type
    question: "What is the primary churn concern?"
    type: choice
    options: ["voluntary (customers choosing to leave)", "involuntary (payment failures)", "both"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Product telemetry data (3+ months)"
      source: "analytics platform (Mixpanel, Amplitude, Heap, or similar)"
      format: "event stream or aggregated usage metrics"
    - name: "Customer list with contract details"
      source: "CRM or billing system"
      format: "structured data (CSV/API)"
    - name: "Support ticket history"
      source: "support platform (Zendesk, Intercom, Freshdesk)"
      format: "structured data"

  outputs:
    - name: "Customer health score model"
      format: "configured scoring system in CS platform or spreadsheet"
      description: "Weighted multi-dimensional score (0-100) for every active account with automated recalculation"
    - name: "Intervention playbook"
      format: "document with automated trigger rules"
      description: "Score-threshold-to-action mapping with owner assignments and escalation paths"
    - name: "Churn prevention dashboard"
      format: "live dashboard in CS platform or BI tool"
      description: "Real-time view of account health distribution, at-risk accounts, and intervention outcomes"

  tools_required:
    - name: "CS platform"
      purpose: "health scoring engine, automated triggers, playbook execution"
      tier: "paid"
      cost: "$2,000-$15,000/month depending on customer count"
      alternatives: ["spreadsheet model (free but manual)", "custom-built scoring via SQL + BI tool"]
    - name: "Product analytics"
      purpose: "usage telemetry feeding health scores"
      tier: "paid"
      cost: "$0-$2,000/month"
      alternatives: ["Mixpanel", "Amplitude", "Heap", "PostHog (open source)"]
    - name: "Dunning/payment recovery"
      purpose: "involuntary churn prevention"
      tier: "paid"
      cost: "$100-$500/month"
      alternatives: ["Churnkey", "ProsperStack", "Stripe Smart Retries (built-in)"]

  credentials_needed:
    - service: "CS platform"
      type: "API key or OAuth"
      where_to_get: "Platform admin settings"
      free_tier_limits: "Most CS platforms require paid plans; Vitally has a startup program"
    - service: "Product analytics"
      type: "API key"
      where_to_get: "Analytics platform settings"
      free_tier_limits: "PostHog: 1M events/month free; Mixpanel: 20M events/month free"

  estimated_duration: "2-4 weeks for full implementation; 2-3 days for MVP spreadsheet model"
  estimated_cost: "$0 (spreadsheet MVP) to $5,000-$20,000/month (enterprise tooling)"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/business/customer-success/churn-prevention-system-design/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-12)"

# === RELATED UNITS ===
related_kos:
  depends_on:
    - id: "business/customer-success/customer-success-model-selection/2026"
      label: "CS coverage model by ACV tier — high-touch vs tech-touch vs hybrid, CSM-to-account ratios, headcount and budget sizing"
  feeds_into:
    - id: "business/customer-success/expansion-revenue-playbook/2026"
      label: "Healthy accounts feed expansion pipeline"
  related_to:
    - id: "finance/saas-benchmarks/saas-churn-rate-benchmarks/2026"
      label: "SaaS churn rate benchmarks — logo vs revenue churn by segment"
    - id: "finance/saas-benchmarks/saas-net-revenue-retention-benchmarks/2026"
      label: "SaaS Net Revenue Retention (NRR) benchmarks by segment and vertical"

# === SOURCES ===
sources:
  - id: src1
    title: "Customer Health Score Explained: Metrics, Models & Tools"
    author: Gainsight
    url: https://www.gainsight.com/blog/customer-health-scores/
    type: industry_guide
    published: 2025-06-15
    reliability: authoritative
  - id: src2
    title: "The Customer Health Score Handbook"
    author: ChurnZero
    url: https://churnzero.com/guides/the-customer-health-score-handbook/
    type: industry_guide
    published: 2025-04-10
    reliability: authoritative
  - id: src3
    title: "SaaS Churn Rate Benchmarks 2026"
    author: Mousaw
    url: https://mousaw.com/saas-churn-benchmarks/
    type: benchmark_report
    published: 2026-01-15
    reliability: established
  - id: src4
    title: "B2B SaaS Churn Rate Benchmarks: What's a Healthy Churn Rate in 2025?"
    author: Vitally
    url: https://www.vitally.io/post/saas-churn-benchmarks
    type: benchmark_report
    published: 2025-03-20
    reliability: established
  - id: src5
    title: "Four-Step Strategy for a Customer Health Score Program"
    author: ChurnZero
    url: https://churnzero.com/blog/four-step-strategy-customer-health-score-program/
    type: industry_guide
    published: 2025-05-12
    reliability: authoritative
  - id: src6
    title: "Smart Retries vs. Rules-Based Dunning in 2025"
    author: Slicker
    url: https://www.slickerhq.com/blog/smart-retries-vs-rules-based-dunning-2025-stripe-recurly-slicker-ai-benchmarks
    type: benchmark_report
    published: 2025-09-01
    reliability: established
---

# Churn Prevention System Design

## Purpose

This recipe builds an end-to-end churn prevention system: a multi-dimensional customer health score model, automated intervention triggers tied to score thresholds, a library of save plays mapped to churn reasons, and an involuntary churn recovery pipeline. The output is a live scoring system that flags at-risk accounts 30-90 days before cancellation and routes them to the correct intervention, reducing gross churn by 20-40%. [src1]

## Prerequisites
<!-- Agents: verify ALL prerequisites before executing. Missing prerequisites = failed execution. -->

- [ ] **Product telemetry data** (minimum 3 months) available from analytics platform — event-level usage data including logins, feature usage, session depth
- [ ] **Customer master list** with contract values, renewal dates, segment tags from CRM/billing system
- [ ] **Support ticket history** from helpdesk platform — ticket volume, categories, resolution times, CSAT ratings
- [ ] **NPS or CSAT survey data** — at least one survey cycle completed (quarterly preferred)
- [ ] **Payment/billing data** — failed payment history, retry outcomes, card expiry dates from billing system

## Constraints
<!-- Hard rules. Agents: enforce throughout execution. Violating these = broken output or legal risk. -->

- Health scores must be segment-specific — a single model across SMB and enterprise produces misleading signals. Enterprise accounts tolerate lower login frequency because fewer users drive higher-value workflows. [src2]
- Minimum 50 churned accounts needed in historical data to identify statistically meaningful patterns. Below this threshold, use qualitative exit interview data instead. [src4]
- Score recalibration required every 90 days — product changes, pricing updates, and market shifts alter what "healthy" usage looks like. [src5]
- Involuntary churn interventions (dunning) must comply with PCI DSS — never store or transmit raw card numbers in CS tooling. [src6]
- Save plays involving discounts require finance approval for offers exceeding 20% of ACV — unauthorized discounting erodes unit economics.

## Tool Selection Decision

<!-- Agent selects the right tool path based on user inputs.
     Each path leads to a different execution flow below. -->

```
Which path?
├── No CS platform AND < 200 customers
│   └── PATH A: Spreadsheet Model — Google Sheets + manual triggers
├── No CS platform AND 200+ customers
│   └── PATH B: SQL + BI Tool — custom scoring via database queries + Metabase/Looker
├── CS platform available AND < 1000 customers
│   └── PATH C: CS Platform Standard — Gainsight/ChurnZero/Vitally native scoring
└── CS platform available AND 1000+ customers
    └── PATH D: CS Platform + ML — platform scoring augmented with predictive models
```

| Path | Tools | Cost | Speed | Output Quality |
|------|-------|------|-------|---------------|
| A: Spreadsheet | Google Sheets, Zapier | $0-50/mo | 2-3 days setup | Basic — manual updates, limited automation |
| B: SQL + BI | PostgreSQL, Metabase/Looker | $0-500/mo | 1-2 weeks setup | Good — automated scoring, manual interventions |
| C: CS Platform | Gainsight/ChurnZero/Vitally | $2K-8K/mo | 1-2 weeks setup | Very good — automated scoring + triggers |
| D: CS + ML | CS platform + ML pipeline | $5K-20K/mo | 2-4 weeks setup | Excellent — predictive, self-calibrating |

## Execution Flow

### Step 1: Map Leading Indicators by Churn Reason

**Duration**: 4-8 hours
**Tool**: Spreadsheet or whiteboard

Analyze historical churn data to identify the top 5-7 reasons customers leave. For each reason, map the behavioral signals that preceded cancellation. Leading indicators typically surface 30-90 days before the churn event. [src1]

Common leading indicator categories:

```
USAGE SIGNALS (leading by 60-90 days):
- Login frequency decline > 40% vs. prior 30-day average
- Core feature adoption drop (features that correlate with retention)
- DAU/WAU ratio falling below 0.3 (indicates sporadic usage)
- Session depth declining (fewer actions per session)
- Seat utilization below 50% of licensed seats

ENGAGEMENT SIGNALS (leading by 30-60 days):
- CSM email response time increasing > 48 hours
- Skipped QBRs or check-in meetings
- Decline in training/webinar attendance
- Champion/admin user goes inactive
- No executive sponsor engagement in 90+ days

SUPPORT SIGNALS (leading by 30-45 days):
- Support ticket volume spike > 2x baseline
- Repeat tickets on same issue (unresolved root cause)
- Escalation rate increasing
- CSAT on tickets dropping below 3.5/5
- Bug report frequency increasing

FINANCIAL SIGNALS (leading by 15-30 days):
- Payment failures (involuntary churn precursor)
- Downgrade inquiries or seat reductions
- Requesting contract terms or cancellation policy
- Price comparison questions to sales
- Budget review or procurement freeze mentions

SENTIMENT SIGNALS (leading by 30-90 days):
- NPS score drop > 2 points between surveys
- Detractor NPS score (0-6)
- Negative social media mentions
- G2/Capterra review sentiment decline
```

**Verify**: At least 5 distinct leading indicators identified per churn reason, with historical data confirming they preceded churn events.
**If failed**: Conduct 10-15 exit interviews with recently churned customers to gather qualitative signals.

### Step 2: Build the Health Score Model

**Duration**: 1-2 days
**Tool**: CS platform or spreadsheet

Construct a weighted composite score (0-100) across four dimensions. Weight allocation should reflect predictive power validated against historical churn data. [src2] [src5]

```
HEALTH SCORE MODEL (0-100):
──────────────────────────────────────────
Dimension 1: Product Engagement (weight: 35%)
  - Login frequency score        (0-100)
  - Core feature adoption score  (0-100)
  - Breadth of feature usage     (0-100)
  - Session depth trend          (0-100)
  Dimension score = weighted avg of sub-metrics

Dimension 2: Relationship Quality (weight: 25%)
  - CSM engagement score         (0-100)
  - Executive sponsor activity   (0-100)
  - QBR/check-in attendance      (0-100)
  - Response time to outreach    (0-100)
  Dimension score = weighted avg of sub-metrics

Dimension 3: Support Health (weight: 20%)
  - Ticket volume trend          (0-100, inverse)
  - Resolution satisfaction      (0-100)
  - Escalation frequency         (0-100, inverse)
  - Open ticket aging            (0-100, inverse)
  Dimension score = weighted avg of sub-metrics

Dimension 4: Outcome & Sentiment (weight: 20%)
  - NPS/CSAT score               (0-100)
  - Stated ROI achievement       (0-100)
  - Renewal likelihood (CSM est) (0-100)
  - Contract growth trajectory   (0-100)
  Dimension score = weighted avg of sub-metrics

COMPOSITE HEALTH SCORE =
  (Product Engagement × 0.35) +
  (Relationship Quality × 0.25) +
  (Support Health × 0.20) +
  (Outcome & Sentiment × 0.20)
──────────────────────────────────────────
```

Normalize each sub-metric to 0-100 using the account's segment benchmarks (not absolute values). An enterprise account logging in 3x/week may be healthy; an SMB account at 3x/week may be declining. [src1]

**Verify**: Back-test the model against 6 months of historical data. Accounts that churned should score below 40 at least 30 days before cancellation in >70% of cases.
**If failed**: Adjust dimension weights. If product engagement is not predictive, increase relationship quality weight. Iterate until back-test accuracy exceeds 70%.

### Step 3: Set Intervention Triggers and Thresholds

**Duration**: 4-8 hours
**Tool**: CS platform automation or alert system

Define four health zones with specific trigger rules and response SLAs. [src2]

```
HEALTH ZONES AND TRIGGERS:
──────────────────────────────────────────
ZONE: THRIVING (81-100)
  Trigger: Score enters zone from below
  Action: Move to expansion pipeline
  Owner: CSM + Account Executive
  SLA: Expansion conversation within 14 days

ZONE: HEALTHY (61-80)
  Trigger: None (standard operations)
  Action: Regular cadence — monthly check-in, quarterly QBR
  Owner: CSM
  SLA: Standard cadence maintained

ZONE: AT-RISK (41-60)
  Trigger: Score drops below 61 OR drops > 15 points in 14 days
  Action: Activate save play (see Step 4)
  Owner: CSM + CS Manager
  SLA: Outreach within 48 hours of trigger
  Escalation: If no response in 5 business days → CS Director

ZONE: CRITICAL (0-40)
  Trigger: Score drops below 41 OR any single dimension scores 0-20
  Action: Executive save play (see Step 4)
  Owner: CS Director + VP CS
  SLA: Outreach within 24 hours of trigger
  Escalation: If no improvement in 14 days → CEO/CRO involved
──────────────────────────────────────────

VELOCITY TRIGGERS (override zone-based triggers):
  - Score drops > 20 points in 7 days → immediate Critical treatment
  - Champion user goes inactive → At-Risk treatment regardless of score
  - Payment failure → separate involuntary churn workflow (Step 5)
  - Competitor evaluation detected → At-Risk with competitive save play
```

**Verify**: Run triggers against historical data — confirm that intervention would have been triggered at least 30 days before actual churn for >60% of churned accounts.
**If failed**: Lower thresholds (e.g., At-Risk at 65 instead of 61) or add velocity triggers until detection rate exceeds 60%.

### Step 4: Design Save Plays by Churn Reason

**Duration**: 1-2 days
**Tool**: Document + CS platform playbook builder

Create a save play for each of the top churn reasons identified in Step 1. Each play specifies the trigger, owner, actions, timeline, and escalation path. [src1] [src4]

```
SAVE PLAY LIBRARY:
──────────────────────────────────────────
PLAY 1: Low Product Adoption
  Trigger: Product Engagement dimension < 30
  Actions:
    1. CSM schedules re-onboarding session (Day 1-3)
    2. Share best-practice workflows for customer's use case (Day 3)
    3. Assign dedicated solutions engineer for 2-week sprint (Day 5)
    4. Executive check-in to confirm value realization (Day 14)
  Success metric: Product Engagement score > 50 within 30 days
  Escalation: If no improvement by Day 14 → VP CS intervention

PLAY 2: Champion/Sponsor Departure
  Trigger: Admin user inactive > 14 days OR contact marked as departed
  Actions:
    1. Identify new stakeholder via org chart research (Day 1)
    2. Request intro from departing champion if possible (Day 1-2)
    3. Executive-to-executive outreach to new sponsor (Day 3-5)
    4. Deliver fresh ROI report showing value delivered (Day 5-7)
    5. Schedule new onboarding for replacement stakeholder (Day 7-10)
  Success metric: New champion identified and engaged within 21 days
  Escalation: If no new champion by Day 14 → Account Executive + CS Director

PLAY 3: Support Frustration
  Trigger: Support Health dimension < 30 OR 3+ escalations in 30 days
  Actions:
    1. CS Director reviews all open tickets, prioritizes resolution (Day 1)
    2. Direct Slack/Teams channel with engineering for urgent fixes (Day 1)
    3. CSM delivers fix timeline and interim workarounds (Day 2)
    4. Executive apology call with remediation plan (Day 3-5)
    5. Offer service credit if SLA breached (within finance-approved limits)
  Success metric: All critical tickets resolved, CSAT > 4.0 within 14 days
  Escalation: If unresolvable bug → VP Engineering + VP CS joint response

PLAY 4: Price/Value Mismatch
  Trigger: Downgrade inquiry OR "too expensive" in support/survey
  Actions:
    1. CSM conducts value audit — map features used to ROI (Day 1-3)
    2. Present ROI report showing cost vs. value delivered (Day 3-5)
    3. If value gap is real: offer right-sized plan or annual discount (Day 5-7)
    4. If perception gap: demonstrate unused high-value features (Day 5-7)
    5. Finance-approved retention offer as last resort (Day 7-10)
  Success metric: Customer confirms renewal or accepts adjusted plan
  Escalation: If ACV > $50K → CFO + VP CS negotiate directly

PLAY 5: Competitive Threat
  Trigger: Competitor mention in support/sales intel OR G2 comparison activity
  Actions:
    1. Gather competitive intelligence on specific competitor (Day 1)
    2. CSM delivers feature-by-feature comparison (honest) (Day 2-3)
    3. Executive shares roadmap items addressing competitor gaps (Day 3-5)
    4. Offer pilot of upcoming features if applicable (Day 5-7)
    5. Reference customer testimonials in same segment (Day 5-7)
  Success metric: Competitor evaluation abandoned within 21 days
  Escalation: If customer requests data export → VP CS + CEO last-resort call

PLAY 6: Involuntary Churn (Payment Failure)
  → Handled in Step 5 (separate workflow)
──────────────────────────────────────────
```

**Verify**: Each save play has a clear trigger, owner, timeline, success metric, and escalation path. At least 5 plays covering the most common churn reasons.
**If failed**: Review exit interview data and churn reason tags to identify missing scenarios.

### Step 5: Implement Involuntary Churn Prevention (Dunning)

**Duration**: 4-8 hours
**Tool**: Billing platform + dunning tool

Payment failures account for up to 48% of all churn. Build a multi-channel dunning sequence with intelligent retry logic. [src6]

```
DUNNING SEQUENCE:
──────────────────────────────────────────
DAY 0 (Payment fails):
  - Classify decline: soft (insufficient funds, network error)
                     vs. hard (card stolen, account closed)
  - Soft decline: auto-retry in 24 hours
  - Hard decline: skip to email notification

DAY 1: Pre-dunning email
  - Tone: helpful, not threatening
  - "Your payment didn't go through — update your card to avoid interruption"
  - Direct link to payment update page (one-click)

DAY 3: Smart retry #2
  - Retry at optimal time (mid-morning, mid-week typically best)
  - If recovered → send confirmation, exit sequence

DAY 5: In-app notification + email #2
  - In-app banner: "Action needed: update payment method"
  - Email: mention specific features at risk of losing access

DAY 7: Smart retry #3
  - Final automated retry attempt

DAY 10: Urgency email + SMS (if opted in)
  - "Your subscription expires in 4 days"
  - Offer alternative payment methods (ACH, wire, invoice)

DAY 14: Grace period expires
  - Downgrade to free tier or pause (do NOT immediately cancel)
  - "Your account has been paused — reactivate anytime"

DAY 30: Win-back email
  - Highlight what they've missed (new features, team activity)
  - One-click reactivation link

DAY 60: Final win-back attempt
  - Offer incentive (1 month free, discount) if high-value account
──────────────────────────────────────────

RETRY TIMING OPTIMIZATION:
  - Retry insufficient funds on the 1st or 15th (payroll dates)
  - Retry expired cards after bank auto-update window (3-5 days)
  - Use Smart Retries (Stripe) or AI-powered retry (Slicker)
    for 40-50% improvement in recovery rates
```

**Verify**: Dunning sequence recovers >50% of failed payments within 14 days. Track recovery rate by decline code.
**If failed**: Add SMS channel, test alternative retry timing, or switch to AI-powered retry engine.

### Step 6: Build the Monitoring Dashboard and Feedback Loop

**Duration**: 4-8 hours
**Tool**: CS platform dashboard or BI tool (Metabase, Looker, Tableau)

```
DASHBOARD PANELS:
──────────────────────────────────────────
1. HEALTH DISTRIBUTION
   - Pie/bar chart: % accounts in each health zone
   - Trend line: zone distribution over past 6 months
   - Target: >60% Healthy/Thriving, <10% Critical

2. AT-RISK ACCOUNTS (sorted by ARR descending)
   - Account name, health score, trend (↑↓→), days in zone
   - Active save play, owner, days since intervention
   - Next renewal date, ARR value

3. INTERVENTION EFFECTIVENESS
   - Save play success rates by type
   - Average days to recovery (Critical → Healthy)
   - Win rate: % of At-Risk accounts saved

4. CHURN METRICS
   - Logo churn rate (monthly, quarterly, annual)
   - Revenue churn rate (gross and net)
   - Involuntary vs. voluntary split
   - Churn by reason (pie chart)
   - Churn by segment (SMB/Mid/Enterprise)

5. LEADING INDICATOR TRENDS
   - NPS trend, support ticket trend, usage trend
   - Early warning: metrics moving toward trigger thresholds

6. DUNNING/PAYMENT RECOVERY
   - Failed payments this month
   - Recovery rate by decline code
   - Revenue recovered vs. lost
──────────────────────────────────────────
```

**Verify**: Dashboard updates daily (or real-time if CS platform supports it). All four health zones represented with accurate counts.
**If failed**: Check data pipeline connections — most failures are due to missing API integrations between analytics, CRM, and CS platform.

## Output Schema

<!-- Exact format of the deliverable. Downstream agents and dashboard cards
     reference this schema to consume the output. -->

```json
{
  "output_type": "churn_prevention_system",
  "format": "JSON",
  "columns": [
    {"name": "account_id", "type": "string", "description": "Unique customer account identifier", "required": true},
    {"name": "account_name", "type": "string", "description": "Customer company name", "required": true},
    {"name": "segment", "type": "string", "description": "SMB, mid-market, or enterprise", "required": true},
    {"name": "health_score", "type": "number", "description": "Composite score 0-100", "required": true},
    {"name": "health_zone", "type": "string", "description": "thriving, healthy, at_risk, or critical", "required": true},
    {"name": "product_engagement_score", "type": "number", "description": "Dimension 1 score 0-100", "required": true},
    {"name": "relationship_quality_score", "type": "number", "description": "Dimension 2 score 0-100", "required": true},
    {"name": "support_health_score", "type": "number", "description": "Dimension 3 score 0-100", "required": true},
    {"name": "outcome_sentiment_score", "type": "number", "description": "Dimension 4 score 0-100", "required": true},
    {"name": "score_trend", "type": "string", "description": "improving, stable, or declining (7-day trend)", "required": true},
    {"name": "active_save_play", "type": "string", "description": "Currently active intervention play or null", "required": false},
    {"name": "churn_risk_reasons", "type": "array", "description": "Top contributing risk factors", "required": false},
    {"name": "renewal_date", "type": "date", "description": "Next contract renewal date", "required": true},
    {"name": "arr", "type": "number", "description": "Annual recurring revenue in USD", "required": true}
  ],
  "expected_row_count": "all active accounts",
  "sort_order": "health_score ascending (worst first)",
  "deduplication_key": "account_id"
}
```

## Quality Benchmarks

<!-- How to evaluate if the output is good enough.
     Links to benchmark cards where applicable. -->

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| Churn prediction accuracy (30-day) | > 60% of churned accounts flagged At-Risk | > 70% flagged | > 85% flagged |
| False positive rate | < 40% of At-Risk accounts actually healthy | < 25% | < 15% |
| Save play success rate | > 20% of At-Risk accounts recovered | > 35% recovered | > 50% recovered |
| Involuntary churn recovery rate | > 40% of failed payments recovered | > 55% recovered | > 70% recovered |
| Time to intervention (At-Risk) | < 72 hours from trigger | < 48 hours | < 24 hours |
| Model back-test accuracy | > 65% correlation with actual churn | > 75% | > 85% |
| Score coverage | > 80% of accounts scored | > 90% scored | > 98% scored |

**If below minimum**: Re-examine dimension weights and sub-metric selection. Most common cause of poor prediction is over-weighting lagging indicators (NPS) vs. leading indicators (usage trends). Run correlation analysis between each sub-metric and actual churn outcomes. [src5]

## Error Handling

<!-- Common failures and recovery actions. Agents need this to handle
     execution errors without human intervention. -->

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| Health scores cluster around 50-60 (no differentiation) | Metrics not normalized per segment; using absolute values | Segment accounts first, normalize within each segment, re-run scoring |
| High false positive rate (>40%) | Engagement signals weighted too heavily for low-touch segments | Reduce engagement weight for enterprise, increase outcome weight |
| Save plays not triggered despite churn | Trigger thresholds set too low (too conservative) | Lower At-Risk threshold from 60 to 65; add velocity triggers |
| Dunning recovery rate below 30% | Email-only dunning without retry optimization | Add in-app notifications, SMS channel, and smart retry timing |
| Data gaps in health score (null dimensions) | Missing integration between analytics/CRM/support platforms | Audit data pipeline; implement fallback scoring with available dimensions |
| Score does not update for days | API connection between analytics and CS platform broken | Check webhook/API health; set up monitoring alerts on data freshness |
| Champion departure not detected | No user role tracking in product analytics | Implement admin/champion tagging in product; monitor last-login of tagged users |

## Cost Breakdown

<!-- Real cost analysis so agents can warn users before execution. -->

| Component | Free Tier | Paid Tier | At Scale (1000+ accounts) |
|-----------|-----------|-----------|----------|
| Health scoring engine | Spreadsheet ($0) | CS platform ($2K-8K/mo) | Enterprise CS platform ($10K-20K/mo) |
| Product analytics | PostHog free (1M events) | Mixpanel/Amplitude ($0-500/mo) | Enterprise analytics ($1K-5K/mo) |
| Dunning/payment recovery | Stripe Smart Retries (included) | Churnkey ($100-300/mo) | Enterprise dunning ($300-1K/mo) |
| BI/dashboard | Metabase OSS ($0) | Looker/Tableau ($500-2K/mo) | Enterprise BI ($2K-5K/mo) |
| **Total for 200 accounts** | **$0** | **$2.5K-10K/mo** | **N/A** |
| **Total for 1000+ accounts** | **Not feasible** | **$5K-15K/mo** | **$15K-30K/mo** |

## Anti-Patterns

### Wrong: Single Universal Health Score for All Segments
Applying the same scoring model to SMB and enterprise accounts produces misleading results. An SMB account logging in daily is healthy; an enterprise account with the same pattern may indicate only one power user, masking org-wide disengagement. Segment-specific scores achieve 15-20% higher prediction accuracy. [src1]

### Correct: Segment-Specific Models
Build separate scoring models (or at minimum, separate normalization baselines) for each customer segment. Enterprise accounts should weight relationship quality and outcome metrics higher; SMB should weight product engagement higher.

### Wrong: Reacting to Health Score Drops Without Root Cause Analysis
Triggering save plays based on score drops alone leads to generic outreach that customers ignore. A score drop from 75 to 55 could mean lost champion, product bug, or budget freeze — each requires a different play. [src2]

### Correct: Diagnose Before Intervening
When a score drops into At-Risk, first examine which dimension(s) drove the decline. Route to the specific save play matching the root cause. CSMs should have a 5-minute diagnostic checklist before any outreach.

### Wrong: Treating Involuntary Churn as Voluntary
Sending "we're sorry to see you go" messaging to customers whose credit card simply expired destroys trust and makes recovery harder. Payment failures account for up to 48% of churn and are almost entirely preventable. [src6]

### Correct: Separate Involuntary Churn Pipeline
Route all payment failures to the dunning workflow (Step 5). Tone should be helpful and transactional, not emotional. Offer multiple payment alternatives and make the update process frictionless (one-click update links).

## Churn Rate Benchmarks (2025-2026)

| Segment | Monthly Churn (Good) | Monthly Churn (Median) | Annual Churn (Good) | NRR Target |
|---------|---------------------|----------------------|--------------------|-----------|
| Enterprise (>$50K ACV) | < 0.5% | 0.5-1.0% | < 5% | > 120% |
| Mid-Market ($10K-$50K ACV) | < 1.0% | 1.0-2.0% | < 10% | > 110% |
| SMB (<$10K ACV) | < 2.0% | 3.0-5.0% | < 20% | > 100% |
| Self-Serve / PLG | < 3.0% | 4.0-7.0% | < 30% | > 95% |

Median B2B SaaS annual churn is 3.5% for companies above $10M ARR. Companies maintaining churn below 5% annually are considered healthy; above 7% signals serious underlying problems. [src3] [src4]

## When This Matters

Use this recipe when a SaaS company has at least 50 customers, 3+ months of product telemetry, and is experiencing churn above segment benchmarks — or wants to build proactive retention infrastructure before churn becomes a crisis. This is not a strategic planning document; it produces a working health scoring system, intervention playbooks, and dunning sequences that reduce churn within 90 days of implementation.

## Related Units

- [CS Org Design](/business/customer-success/cs-org-design/2026) — team structure that executes this system
- [Expansion Revenue Playbook](/business/customer-success/expansion-revenue-playbook/2026) — healthy accounts feed the expansion pipeline
- [Churn Rate Benchmarks](/finance/saas-benchmarks/churn-rate-benchmarks/2026) — benchmark data for target-setting
- [Net Revenue Retention Benchmarks](/finance/saas-benchmarks/net-revenue-retention/2026) — NRR benchmarks to validate system effectiveness
- [Retention Cohort Analysis](/business/startup-metrics/retention-cohort-analysis/2026) — dashboard consuming health data for cohort analysis
