Objective
A retention system the business can run: a churn diagnosis that names which churn type is actually costing money, an engagement health score with defined signals and thresholds, intervention playbooks per risk tier, a win-back sequence, involuntary-churn prevention, and a 90-day implementation roadmap with the metrics to watch.
Diagnose before prescribing. A loyalty program aimed at voluntary churn does nothing when the real leak is failed payments, and a dunning sequence does nothing when customers leave in week three because onboarding never delivered value.
Done when
Work type strategy-plan — floor E3/C3/O1 (harness/eco-floors.yaml). The system is a plan; nothing leaves the workspace until a human sends it.
- E3 — a named human approved the retention playbook, the engagement scoring spec, and the email sequences.
- C3 —
banned_word_check clean on all customer-facing copy, every email sequence at 10+/16 on Four U's, and a non-author read the system end to end. Max 2 auto-retry cycles on gate failures for email content.
- O1 — the plan names its metric with baseline, threshold, window, and owner: monthly churn rate, cohort retention curve, health score distribution, NPS trend, and expansion versus contraction revenue.
Sending any sequence is separate work under email-lifecycle (E5/C3/O3), where unsubscribe and sender-identity compliance is a C4 field-standard item, not a lint.
Constraints
- Read
MARKETING.md from the project root first. If it does not exist, build it from the codebase — CLAUDE.md, README.md, PROJECT.md, package.json, landing pages, email/ad/analytics config — using the template from /kai-email-system, and confirm the draft. Do not ask the user what the product is.
- Seven things must be known before diagnosis: business model (SaaS, ecommerce, services, marketplace); current churn rate; customer count and average revenue per customer; retention efforts already running; known churn reasons from exit surveys, support tickets, or the cancellation flow; whether product usage and feature adoption are tracked; and customer segments (free vs. paid, plan tiers, cohorts).
- No banned Tier 1 words in any customer-facing copy.
- Win-back emails comply with CAN-SPAM — see
harness/references/cold-email-rules.md.
- Loyalty rewards must not erode margins below profitability. Redemption options drive retention, not margin destruction.
- Discounts in rescue plays cap at 20% unless the user approves higher, and all email sequences target 10+/16 on Four U's before they count as deliverable.
- Match the prescription to the maturity level. Predictive churn scoring proposed to a Level 0 business is a plan that never gets built.
| Level |
Current state |
| 0 |
No retention effort beyond the product itself |
| 1 |
Basic cancellation flow plus occasional check-in emails |
| 2 |
Lifecycle emails, usage tracking, support triggers |
| 3 |
Predictive churn scoring, proactive intervention, loyalty program |
Context
| Need |
Load |
| Retention mechanics, churn tactics, loyalty design |
knowledge/playbooks/customer-retention.md |
| Retention as a growth loop |
knowledge/playbooks/growth-loops-applied.md |
| Lifecycle email structure and triggers |
knowledge/channels/email-lifecycle.md |
| Which persona is churning |
knowledge/personas/_persona-index.md |
| CAN-SPAM compliance for win-back sends |
harness/references/cold-email-rules.md |
| Lifecycle email format contract and gate minimums |
harness/skill-contracts/email-lifecycle.yaml |
| Product, ICP, voice, current channels |
MARKETING.md (project root) |
Churn types — separate them before proposing anything. Voluntary: the customer actively cancels (dissatisfaction, budget, switched). Involuntary: payment failure, expired card, billing issue. Passive: stops using without cancelling (ghost users).
Churn timeline — most exits cluster: first 30 days (onboarding failure), 60–90 days (value not realized), at renewal (annual decision point), or after a price increase or feature change. Leading indicators: login frequency decline, feature usage drop, support ticket spike, NPS/CSAT decline, billing page visits.
Engagement score (0–100) — the rubric:
| Signal |
Weight |
Scoring |
| Login frequency (last 14 days) |
25% |
Daily=100, Weekly=60, Monthly=20, None=0 |
| Core feature usage |
25% |
Used all=100, Used some=50, Used none=0 |
| Support interactions |
15% |
Positive=80, Neutral=50, Negative=20 |
| Account expansion signals |
15% |
Upgraded=100, Stable=50, Downgraded=10 |
| Referral/advocacy |
10% |
Referred=100, NPS promoter=60, Passive=30 |
| Billing health |
10% |
Current=100, Late=30, Failed=0 |
Risk tiers and the play for each:
| Tier |
Score |
Play |
| Red |
0–39 |
Immediate rescue: personal outreach within 24 hours, a concession (discount, extended trial, premium support), escalation to customer success, win-back sequence |
| Yellow |
40–69 |
Proactive nurture: usage tips for unused features, office hours or webinar invite, relevant case study, a short feedback survey (not NPS) |
| Green |
70–100 |
Expansion and advocacy: referral or testimonial request, early access, advisory board or beta invite, relevant cross-sell or upsell |
Win-back for already-churned customers: a 3-email sequence at Day 1, Day 7, Day 30, each addressing a different churn reason, each carrying a specific offer or product update.
Involuntary churn prevention: a dunning sequence of 3–5 emails over 14 days, smart retry logic for failed payments, and a card-update reminder before expiration.
Loyalty program, where the model supports one: reward mechanics (points, tiers, milestones, or referral credits), earning actions mapped to business goals, redemption options that drive retention, and a launch communication plan.
Gates, on every email file:
python scripts/quality_gates/banned_word_check.py <file>
python scripts/quality_gates/four_us_score.py <file>
Escalate when
- Churn rate, cohort data, or usage data is unavailable and the diagnosis would be guesswork.
- The stated churn reason from the user conflicts with what exit surveys or support tickets show.
- A rescue play needs a discount above 20%.
- The proposed loyalty mechanics would push unit economics negative.
- Churn is driven by the product rather than by marketing — say so; a retention campaign cannot fix broken onboarding.
- Win-back targets contacts whose consent basis or suppression status is unclear.
1---2name: kai-retention3description: Customer retention system — churn analysis, retention tactics, loyalty programs, and engagement scoring. Use when "retention", "reduce churn", "keep customers", "loyalty program", "customer retention", "churn prevention", "churn analysis", "engagement scoring", "win-back", "customer lifetime value", or any request to analyze, prevent, or reduce customer churn.4---5
6## Objective
7
8A retention system the business can run: a churn diagnosis that names which churn type is actually costing money, an engagement health score with defined signals and thresholds, intervention playbooks per risk tier, a win-back sequence, involuntary-churn prevention, and a 90-day implementation roadmap with the metrics to watch.
9
10Diagnose before prescribing. A loyalty program aimed at voluntary churn does nothing when the real leak is failed payments, and a dunning sequence does nothing when customers leave in week three because onboarding never delivered value.
11
12## Done when
13
14Work type `strategy-plan` — floor **E3/C3/O1** (`harness/eco-floors.yaml`). The system is a plan; nothing leaves the workspace until a human sends it.
15
16- **E3** — a named human approved the retention playbook, the engagement scoring spec, and the email sequences.
17- **C3** — `banned_word_check` clean on all customer-facing copy, every email sequence at **10+/16** on Four U's, and a non-author read the system end to end. Max 2 auto-retry cycles on gate failures for email content.
18- **O1** — the plan names its metric with baseline, threshold, window, and owner: monthly churn rate, cohort retention curve, health score distribution, NPS trend, and expansion versus contraction revenue.
19
20Sending any sequence is separate work under `email-lifecycle` (E5/C3/O3), where unsubscribe and sender-identity compliance is a C4 field-standard item, not a lint.
21
22## Constraints
23
24- **Read `MARKETING.md` from the project root first.** If it does not exist, build it from the codebase — CLAUDE.md, README.md, PROJECT.md, package.json, landing pages, email/ad/analytics config — using the template from `/kai-email-system`, and confirm the draft. Do not ask the user what the product is.
25- **Seven things must be known before diagnosis:** business model (SaaS, ecommerce, services, marketplace); current churn rate; customer count and average revenue per customer; retention efforts already running; known churn reasons from exit surveys, support tickets, or the cancellation flow; whether product usage and feature adoption are tracked; and customer segments (free vs. paid, plan tiers, cohorts).
26- **No banned Tier 1 words in any customer-facing copy.**
27- **Win-back emails comply with CAN-SPAM** — see `harness/references/cold-email-rules.md`.
28- **Loyalty rewards must not erode margins below profitability.** Redemption options drive retention, not margin destruction.
29- **Discounts in rescue plays cap at 20%** unless the user approves higher, and all email sequences target 10+/16 on Four U's before they count as deliverable.
30- **Match the prescription to the maturity level.** Predictive churn scoring proposed to a Level 0 business is a plan that never gets built.
31
32| Level | Current state |
33|---|---|
34| 0 | No retention effort beyond the product itself |
35| 1 | Basic cancellation flow plus occasional check-in emails |
36| 2 | Lifecycle emails, usage tracking, support triggers |
37| 3 | Predictive churn scoring, proactive intervention, loyalty program |
38
39## Context
40
41| Need | Load |
42|---|---|
43| Retention mechanics, churn tactics, loyalty design | `knowledge/playbooks/customer-retention.md` |
44| Retention as a growth loop | `knowledge/playbooks/growth-loops-applied.md` |
45| Lifecycle email structure and triggers | `knowledge/channels/email-lifecycle.md` |
46| Which persona is churning | `knowledge/personas/_persona-index.md` |
47| CAN-SPAM compliance for win-back sends | `harness/references/cold-email-rules.md` |
48| Lifecycle email format contract and gate minimums | `harness/skill-contracts/email-lifecycle.yaml` |
49| Product, ICP, voice, current channels | `MARKETING.md` (project root) |
50
51**Churn types** — separate them before proposing anything. **Voluntary**: the customer actively cancels (dissatisfaction, budget, switched). **Involuntary**: payment failure, expired card, billing issue. **Passive**: stops using without cancelling (ghost users).
52
53**Churn timeline** — most exits cluster: first 30 days (onboarding failure), 60–90 days (value not realized), at renewal (annual decision point), or after a price increase or feature change. **Leading indicators**: login frequency decline, feature usage drop, support ticket spike, NPS/CSAT decline, billing page visits.
54
55**Engagement score (0–100)** — the rubric:
56
57| Signal | Weight | Scoring |
58|---|---|---|
59| Login frequency (last 14 days) | 25% | Daily=100, Weekly=60, Monthly=20, None=0 |
60| Core feature usage | 25% | Used all=100, Used some=50, Used none=0 |
61| Support interactions | 15% | Positive=80, Neutral=50, Negative=20 |
62| Account expansion signals | 15% | Upgraded=100, Stable=50, Downgraded=10 |
63| Referral/advocacy | 10% | Referred=100, NPS promoter=60, Passive=30 |
64| Billing health | 10% | Current=100, Late=30, Failed=0 |
65
66**Risk tiers and the play for each:**
67
68| Tier | Score | Play |
69|---|---|---|
70| Red | 0–39 | Immediate rescue: personal outreach within 24 hours, a concession (discount, extended trial, premium support), escalation to customer success, win-back sequence |
71| Yellow | 40–69 | Proactive nurture: usage tips for unused features, office hours or webinar invite, relevant case study, a short feedback survey (not NPS) |
72| Green | 70–100 | Expansion and advocacy: referral or testimonial request, early access, advisory board or beta invite, relevant cross-sell or upsell |
73
74**Win-back** for already-churned customers: a 3-email sequence at Day 1, Day 7, Day 30, each addressing a different churn reason, each carrying a specific offer or product update.
75
76**Involuntary churn prevention**: a dunning sequence of 3–5 emails over 14 days, smart retry logic for failed payments, and a card-update reminder before expiration.
77
78**Loyalty program**, where the model supports one: reward mechanics (points, tiers, milestones, or referral credits), earning actions mapped to business goals, redemption options that drive retention, and a launch communication plan.
79
80**Gates**, on every email file:
81
82```bash
83python scripts/quality_gates/banned_word_check.py <file>
84python scripts/quality_gates/four_us_score.py <file>
85```
86
87## Escalate when
88
89- Churn rate, cohort data, or usage data is unavailable and the diagnosis would be guesswork.
90- The stated churn reason from the user conflicts with what exit surveys or support tickets show.
91- A rescue play needs a discount above 20%.
92- The proposed loyalty mechanics would push unit economics negative.
93- Churn is driven by the product rather than by marketing — say so; a retention campaign cannot fix broken onboarding.
94- Win-back targets contacts whose consent basis or suppression status is unclear.