Retention & churn prevention specialist

01What is it?
Reduce churn through cancel flows, dunning, health scoring, win-back. Use when churn, cancel flow, dunning, win-back, failed payment, retention rate, save offer. The value is a focused slice of go-to-market work judgment, useful when several similar skills cover the same ground.
02Inputs
Context for go-to-market work: your goals, audience, constraints, and any source material the skill asks for.
03Output
A ready-to-use result for go-to-market work: the analysis, copy, or recommendations the agent produces.
Install-only

Install as a package

Installs this one skill package for your coding agent, including any supporting files that skill ships with — not every skill in the repository. Read the tutorial.

Terminal
$ npx skills add gnoviawan/agentic-marketing --skill bmad-agent-marketing-retention

Skill instructions

The instruction file for this skill. The skill also includes other files you need to install to use it.

SKILL.md

Retention & Churn Prevention Specialist

Overview

Prevents customer churn through cancel flow design, payment recovery sequences, health scoring systems, and win-back campaigns. Works with subscription businesses to reduce voluntary and involuntary churn, recover failed revenue, and re-engage churned customers. Grounds every intervention in actual customer behavior signals and the brand's SOSTAC plan.

Identity

A senior retention strategist with deep expertise in cancel flow design, proactive health scoring, payment recovery, dunning sequences, and win-back campaigns for subscription businesses.

Communication Style

Direct and data-driven, prioritizing diagnosis before prescription. Avoids vague advice -- delivers specific email sequences, decision trees, health score models, and implementation-ready recommendations.

Example interaction:

"Before I design the cancel flow, I need to understand your churn rate and dominant churn type. Involuntary churn (payment failures) is 30-50% of SaaS churn and has the highest recovery rate -- we should address that first. Do you have exit survey data or cohort analysis available?"

Principles

  • Diagnose before prescribing -- understand churn type and root cause first
  • Involuntary churn first -- payment failures are most recoverable, address them before voluntary churn
  • Offer precision matters -- match interventions exactly to stated cancel reasons
  • No dark patterns -- cancel flows are customer service, not manipulation
  • Data retention preserves reactivation -- always keep customer data for 30-90 days post-cancellation

On Activation

Load available config from {project-root}/_bmad/config.yaml and {project-root}/_bmad/config.user.yaml if present. Resolve and apply throughout the session.

Greet the user appropriately and offer to show available capabilities.

Capabilities

CapabilityRoute
Churn DiagnosisLoad ./references/churn-diagnosis.md
Cancel Flow DesignLoad ./references/cancel-flow-design.md
Proactive RetentionLoad ./references/proactive-retention.md
Payment Recovery & DunningLoad ./references/payment-recovery.md
Win-Back CampaignsLoad ./references/win-back-campaigns.md
Metrics & BenchmarksLoad ./references/benchmarks.md
Research ModeLoad ./references/research-playbook.md
Shared PatternsLoad ./references/shared-patterns.md
Cancel Flow TemplatesLoad ./references/cancel-flow-templates.md

Path Resolution

Campaign mode (named campaign): Save to ./brands/{brand-slug}/campaigns/{type}-{campaign-slug}/retention/

Standalone mode (evergreen/independent): Save to ./brands/{brand-slug}/operations/retention/

Legacy fallback (old structure): Save to ./brands/{brand-slug}/campaigns/retention/ and suggest migration.

If unsure, ask: "Is this part of a specific campaign, or standalone work?"

Reference Lookup Protocol

For cancel flow, dunning, win-back, or proactive retention copy:

  1. Read ./references/frameworks-index.csv to find the right file by retention_stage or tags
  2. Load only the specific file from ./references/frameworks/ that matches the task
TaskLoad This File
Exit survey designframeworks/exit-survey-copy.md
Cancel flow offer logicframeworks/dynamic-offer-templates.md
Confirmation page copyframeworks/cancel-confirmation-copy.md
Dunning emailsframeworks/dunning-email-sequence.md
Win-back emailsframeworks/win-back-email-sequence.md
Health score outreachframeworks/proactive-retention-emails.md
Offer routing logicframeworks/offer-decision-tree.md
Subject line selectionframeworks/subject-line-reference.md
Cancel flow A/B testingframeworks/cancel-flow-ab-testing.md

Escalation Signals

Signal DetectedEscalate To
Pricing/positioning mismatchmarketing-pricing
Traffic source quality issuemarketing-paid-ads
Onboarding activation failuremarketing-cro
Email deliverability issuesmarketing-email
Educational content gapmarketing-content

Supporting file: references/benchmarks.md

Retention Benchmarks, Metrics, and Cohort Analysis

Detailed retention metrics, industry benchmarks, and cohort analysis methodology. Referenced from SKILL.md Sections 1.3, 6.1, and 6.2.


1. Cohort Retention Analysis

Run retention curves by signup cohort (monthly or quarterly). Key questions:

  • Which cohorts have the steepest early drop-off? (Indicates onboarding failure)
  • Which cohorts flatten out and retain long-term? (Indicates product-market fit segment)
  • Is retention improving or worsening across recent cohorts? (Indicates product or go-to-market trends)

Present as a cohort retention table: rows = signup month, columns = months since signup (M0-M24), cells = % of original cohort still active.

Cohort Table Template

| Cohort    | M0   | M1   | M2   | M3   | M6   | M12  | M18  | M24  |
|-----------|------|------|------|------|------|------|------|------|
| Jan 2025  | 100% | ?%   | ?%   | ?%   | ?%   | ?%   | ?%   | ?%   |
| Feb 2025  | 100% | ?%   | ?%   | ?%   | ?%   | ?%   | ?%   |      |
| Mar 2025  | 100% | ?%   | ?%   | ?%   | ?%   | ?%   |      |      |

What to Look For

  • Steep early drop-off (M0-M3): Onboarding failure. Customers are not reaching the aha moment. Fix activation before adding more customers.
  • Gradual decline that never flattens: No product-market fit for the segment. Customers are not finding lasting value.
  • Flattening curve after M3-M6: Healthy retention. Customers who survive the first 3-6 months tend to stay. Focus on getting more customers past that inflection point.
  • Improving curves over time: Product or onboarding improvements are working. Keep investing.
  • Worsening curves over time: Quality or onboarding regression. Investigate what changed.

Segmenting Cohorts

Always segment cohort analysis by:

  • Plan tier: Enterprise vs SMB churn behaves very differently
  • Acquisition channel: Organic signups may retain differently from paid acquisition
  • Activation status: Activated vs non-activated cohorts reveal the true impact of onboarding
  • Geography: Different markets may have different retention patterns

2. Retention Dashboard Metrics

Track these metrics weekly or monthly depending on business size. Build a single retention dashboard that surfaces all key numbers in one view.

MetricFormulaHealthy TargetAlert Threshold
Monthly customer churn rateCustomers lost / Customers at startUnder 2%Above 4%
Gross MRR churn rateMRR lost / Starting MRRUnder 1.5%Above 3%
Net Revenue Retention(Start MRR + Expansion - Contraction - Churn) / Start MRRAbove 100%Below 90%
Cancel flow impression rateCustomers seeing flow / Customers cancelling80%+Below 60%
Save rateCustomers saved / Customers who saw flow25-35%Below 15%
Offer acceptance rateOffers accepted / Offers shown15-25%Below 10%
Dunning recovery ratePayments recovered / Payments failed50-60%Below 30%
Win-back rate (90d)Reactivations / Total churned10-15%Below 5%
MRR saved per monthSum of MRR from saves + dunning recoveryVaries by plan pricingBaseline from Month 1
Health score distribution% Green / Yellow / Red70%+ GreenUnder 50% Green

3. Industry Benchmarks by Business Type

Business TypeMonthly ChurnAnnual ChurnNRR Target
SMB SaaS2-5%22-46%90-100%
Mid-market SaaS1-2%12-22%100-115%
Enterprise SaaS0.5-1%6-11%110-140%
Consumer subscription5-8%46-64%80-95%
E-commerce subscription box6-10%54-70%80-90%

Context note: These are averages. Best-in-class performers in each category beat these numbers significantly. Use them as a floor, not a ceiling.


4. Leading vs Lagging Indicators

Lagging indicators (tell you what happened -- use for reporting):

  • Monthly churn rate
  • MRR lost to churn
  • Win-back rate

Leading indicators (tell you what is about to happen -- use for intervention):

  • Health score distribution (% of accounts in Yellow/Red)
  • Activation rate for new signups (leading indicator of future churn in 30-90 days)
  • NPS score trends
  • Failed payment volume
  • Average days since last login across customer base

Build alerts on leading indicators. By the time lagging indicators move, churn has already happened.


5. Retention Reporting Cadence

ReportFrequencyAudienceContent
Retention dashboardWeeklyRetention team, CSAll metrics, health distribution, MRR saved
Churn analysisMonthlyLeadershipChurn rate, reasons breakdown, cohort curves, actions taken
Dunning recovery reportWeeklyFinance, CSPayments failed, recovery rate, outstanding balance
Cancel flow performanceMonthlyProduct, CSImpression rate, save rate, offer acceptance by type
Win-back campaign reportMonthlyMarketingEmails sent, open/click rates, reactivations, MRR recovered

Supporting file: references/cancel-flow-design.md

Cancel Flow Design Capability

A well-designed cancel flow saves 25-35% of customers who intend to cancel. It is not manipulation -- it is giving the customer information, options, and offers they may genuinely want before making a permanent decision.

Cancel Flow Architecture

Cancel button --> [Pause Gate] --> [Exit Survey (4-6 reasons)] --> [Dynamic Offer (reason-matched)]
  --> Accept: confirm save, update billing/plan
  --> Decline: [Confirmation Page] graceful exit (data export, community, support)
  --> [Post-Cancel Sequence] win-back emails start

See ./frameworks/cancel-confirmation-copy.md for full confirmation page copy and post-cancel email. See ./frameworks/offer-decision-tree.md for the offer decision tree.

Exit Survey Design

Principles:

  • Show 4-6 options maximum. More than 6 creates survey fatigue and reduces data quality.
  • Include "Other" with an optional text field as the final option.
  • Do not make the survey mandatory -- if a customer skips it, let them cancel. Forcing engagement creates resentment.
  • Make options honest and non-judgmental. Customers notice when options are designed to manipulate.
  • Use the survey data. If you collect it and nothing changes, it is performative.

Recommended options (adapt copy to match brand voice):

#Reason LabelData Use
1It's too expensiveTrigger discount or pause offer
2I'm not using it enoughTrigger usage coaching + pause offer
3It's missing a feature I needTrigger roadmap acknowledgment
4I'm switching to a competitorTrigger differentiation + comparison
5I had a technical issueTrigger immediate support escalation
6Something elseRoute to text field + general offer

See ./frameworks/exit-survey-copy.md for exact microcopy for each option.

Dynamic Offer Logic

Match the intervention precisely to the stated reason. Generic offers applied to all cancellation reasons perform significantly worse than targeted offers.

ReasonPrimary OfferSecondary Option
Too expensive20-30% discount for 3 months or a permanent plan downgradePause for 1-3 months
Not using it enoughFree 1:1 onboarding session + pause optionUsage tips + resource hub
Missing featureAcknowledge the gap, share roadmap timeline if honest, offer workaroundPause until feature ships
Switching to competitorDirect feature comparison, differentiation statement, case studyOne-month free to reconsider
Technical issueImmediate escalation to senior support + account creditFree extension while issue resolves
OtherManager callback offer or open-ended "What would keep you?"General discount or pause

Offer hierarchy by value:

  1. Pause (costs nothing, preserves the relationship, buys time)
  2. Downgrade (reduces revenue but retains customer)
  3. Time-limited discount (3-month incentive with full price resuming)
  4. Free extension (1 month free, delays cancel 30 days)
  5. Feature access (unlock higher plan feature at current price)

Critical rule: Show the single best-matched offer for the stated reason rather than all offers at once -- multiple simultaneous offers reduce acceptance rates and train customers to hunt for deals. Exception: if the cancel reason is ambiguous, a choice of two options (e.g., pause vs. downgrade) can outperform a single guess.

Save Rate Benchmarks

MetricTargetBest-in-Class
Cancel flow impression rate80%+ of cancellers see the flow90%+
Survey completion rate60-70% of impressions75%+
Save rate (all methods)25-35% of intending cancellers35-45%
Offer acceptance rate15-25% of offer impressions25-35%
Pause adoption rate (where offered)10-20%20-30%

Cancel Flow Tools

ToolBest ForPricing Signal
ChurnkeySaaS, full cancel flow + dunning, smart offersMid-market
ProsperStackSaaS, high customisation, A/B testingMid-market
Chargebee RetentionChargebee billing users, native integrationEnterprise
Custom-builtFull control, requires engineering resourcesAny
Stripe PortalBasic only, no dynamic offer logicFree with Stripe

For brands on Stripe without a dedicated cancel flow tool, Churnkey integrates directly and adds the offer logic layer. For brands on Chargebee or Recurly, use their native retention modules first.

Cancel Flow Copy and UX Principles

  • Never use dark patterns. Do not hide the cancel button, require a phone call, or use guilt-laden language ("You'll lose everything!"). These destroy trust and generate public complaints.
  • Tone: helpful, not desperate. The cancel flow is a customer service interaction, not a negotiation.
  • Mobile-first. A significant share of cancellations happen on mobile. Test the full flow on a phone.
  • One screen per step. Do not combine the exit survey and the offer on the same screen.
  • Respect the decision. If they decline the offer, complete the cancellation immediately. Do not add additional friction screens.

Deliverable

Cancel Flow Design: cancel-flow-{YYYY-MM-DD}.md

  • Architecture diagram
  • Exit survey copy
  • Offer decision tree
  • Confirmation page copy
  • Tool recommendation

Supporting file: references/cancel-flow-templates.md

Cancel Flow Templates & Copy Library

Production-ready copy for cancel flows, dunning sequences, and win-back campaigns. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


1. Exit Survey Copy

Survey Header Copy

Primary headline options (choose one, A/B test):

  • "Before you go -- one quick question"
  • "Help us understand (it takes 30 seconds)"
  • "We're sorry to see you go. What happened?"
  • "Your feedback helps us improve for everyone"

Subheading (use beneath headline):

  • "Select the main reason you're cancelling. This helps us improve [Product] for everyone."
  • "Tell us why so we can do better. Your answer will determine what we can offer you."

Survey Option Microcopy (6 Options)

Option 1: Too expensive

  • Label: "It's too expensive"
  • Microcopy below label: "The price doesn't match the value I'm getting right now."
  • Icon suggestion: currency symbol or price tag

Option 2: Not using it enough

  • Label: "I'm not using it enough"
  • Microcopy below label: "I don't have the time or need to get full value from [Product]."
  • Icon suggestion: clock or calendar

Option 3: Missing a feature

  • Label: "It's missing something I need"
  • Microcopy below label: "There's a specific feature or integration I can't work without."
  • Icon suggestion: puzzle piece or feature block

Option 4: Switching to a competitor

  • Label: "I'm switching to another tool"
  • Microcopy below label: "I found a different solution that better fits my needs."
  • Icon suggestion: arrow pointing right or comparison icon

Option 5: Technical issue or bad experience

  • Label: "I had a technical problem"
  • Microcopy below label: "I experienced a bug, outage, or issue that wasn't resolved."
  • Icon suggestion: warning triangle or wrench

Option 6: Other

  • Label: "Something else"
  • Microcopy below label: "My reason isn't listed above."
  • Follow-up text field placeholder: "Tell us more (optional) -- your feedback goes directly to our team."
  • Icon suggestion: speech bubble or question mark

Survey Footer Copy

Below the option list: "Not sure? [Skip and cancel directly] -- no hard feelings." (Link opens confirmation screen directly, bypasses offer)

Privacy note (optional, builds trust): "Your response is shared only with our product team to improve [Product]. We won't use it for marketing."


2. Dynamic Offer Templates by Cancellation Reason

Offer Screen Wrapper Copy

Header above the offer card (after survey selection):

  • "Wait -- before you go, we have something for you."
  • "Based on what you told us, here's what we can do."
  • "We'd like to make this right."

Decline link below offer (always present):

  • "No thanks, I still want to cancel" (styled as plain text link, not a button)

Scenario 1: "It's too expensive"

Offer type: Discount (20-30% for 3 months) or Plan Downgrade

Offer card headline options:

  • "Stay for [X]% less for the next 3 months"
  • "We can reduce your bill by [X]% right now"
  • "What if [Product] cost less?"

Offer card body copy:

We get it -- budget matters.

Here's what we can do: drop your [Plan] price by [X]% for the
next 3 months, then return to your regular rate.

No changes to your plan. No hidden conditions. Just a lower bill
while you see the full value [Product] can deliver.

[Apply [X]% Discount -- Keep My Account]

Downgrade alternative (below the main offer): "Or, would a smaller plan at $[price]/month work better? [See all plans]"

Pause alternative (below the main offer): "Not ready to commit? [Pause your account for 1-3 months] instead of cancelling."

Acceptance confirmation copy: "Done. Your new rate of $[price]/month applies immediately. Your next invoice will reflect this discount. See you on the inside."


Scenario 2: "Not using it enough"

Offer type: Free 1:1 onboarding session + Pause option

Offer card headline options:

  • "Let's get [Product] actually working for you -- on us"
  • "30 minutes with our team could change everything"
  • "You're not stuck. We can help."

Offer card body copy:

Not using [Product] enough usually means one thing: you haven't
found your "aha moment" yet. That's on us.

Our team will personally walk through your account, understand
your specific goal, and set up [Product] to get you results --
for free, in one 30-minute session.

Customers who complete a setup session retain 3x longer and see
results within their first week.

[Book My Free Setup Session]

Pause alternative:

Not ready for a call right now?

Pause your account for up to 3 months instead. Your data stays
safe, your plan stays active, and you can unpause any time.
No charge while paused.

[Pause My Account Instead]

Acceptance confirmation (session booked): "Your setup session is confirmed. You'll receive a calendar invite shortly. We're looking forward to helping you get real results from [Product]."

Acceptance confirmation (pause selected): "Your account is paused. We won't charge you while you're paused. Resume any time from your account settings -- your data will be right where you left it."


Scenario 3: "Missing a feature I need"

Offer type: Roadmap acknowledgment + Workaround + Pause

Offer card headline options:

  • "Tell us what you need -- it matters"
  • "That feature might be closer than you think"
  • "We're building it. Here's where we are."

Offer card body copy (roadmap version -- use when feature is planned):

We hear you -- [feature] is something our team is actively
working on.

Current status: [On roadmap / In development / Launching in Q{X}]

If you can wait, we'd love to keep your account active. In the
meantime, here's a workaround that some customers use to
approximate [feature]: [brief workaround description or link].

Would a 2-month pause give us time to ship this for you?

[Pause My Account for 2 Months]    [View the Roadmap]

Offer card body copy (feature not yet planned -- honest version):

We don't have [feature] yet, and we want to be honest with you.

Your feedback has been sent directly to our product team. Features
that reach a certain threshold of requests get prioritised. Yours
counts.

If you want to stay and be notified the moment this ships,
we'll email you immediately. Otherwise, we understand.

[Stay and Notify Me When It Ships]

Acceptance confirmation: "You've been added to the notify list for [feature]. We'll email you the moment it's available. Thank you for your patience -- feedback like yours shapes our roadmap."


Scenario 4: "Switching to another tool"

Offer type: Direct comparison + Differentiation + 1-month free trial extension

Offer card headline options:

  • "Before you switch -- a quick comparison"
  • "We'd like the chance to show you what makes [Product] different"
  • "Switching costs are real. Let's make sure it's worth it."

Offer card body copy:

Switching tools is a significant decision -- time, migration,
retraining, and integration work.

Before you go, here's how [Product] compares to the most common
alternatives our customers consider:

[Product]               vs    [Competitor A]
  [Differentiator 1]            [Gap or tradeoff]
  [Differentiator 2]            [Gap or tradeoff]
  [Differentiator 3]            [Gap or tradeoff]

If you've already decided, we respect that. But if you're still
evaluating, take one more month on us -- free -- to compare
fairly.

[Try 1 More Month Free]    [Read Full Comparison]

Acceptance confirmation: "Your account has been extended by one month at no charge. We hope the extra time helps you make the best decision for your team -- whatever that turns out to be."


Scenario 5: "I had a technical problem"

Offer type: Immediate escalation to senior support + Account credit

Offer card headline options:

  • "Let us fix this -- right now"
  • "This should never have happened. We want to make it right."
  • "Our senior team will personally resolve this today"

Offer card body copy:

A technical problem is the worst reason to lose you as a
customer -- because it's fixable.

Here's what happens next:

1. A senior member of our engineering team will review your
   account within 2 hours.
2. We'll contact you directly at [email] with a resolution.
3. Your account will be credited for [X days/amount] for the
   disruption.

You don't need to do anything except give us the chance to fix it.

[Yes, Please Fix This]

Immediate action on acceptance: Trigger internal alert to CS/engineering immediately. Do not route through standard support queue. Personal response within 2 hours is the expectation set.

Acceptance confirmation: "Our senior team has been notified and will reach out within 2 hours. In the meantime, we've applied a [X]-day credit to your account. We're sorry this happened."


Scenario 6: "Something else" (open text)

Offer type: Manager callback + General discount or pause option

Offer card headline options:

  • "Can we call you? We'd like to understand."
  • "Let's talk -- your situation is unique"
  • "A real conversation might help"

Offer card body copy:

Not everything fits into a list. Whatever's going on, we'd like
to understand before you go.

If you're open to it, request a quick call with one of our
senior team members -- someone with the authority to actually
help, not just read from a script.

If a call doesn't work, we can also offer you a [X]% discount
or a [1-3 month] pause while you sort things out.

[Request a Quick Call]    [Get [X]% Off Instead]    [Pause Instead]

3. Cancel Flow Confirmation Page Copy

This page renders after the customer either declines the offer or skips the cancel flow entirely. It should be graceful, informative, and leave the door open without being pushy.

Confirmation Page: Immediate Cancellation

Headline: "Your [Plan] subscription has been cancelled."

Body:

Your account will remain active until [date] -- the end of your
current billing period. No further charges will be made.

Here's what happens to your data:
  - Your account data is safely stored for 90 days
  - You can export everything from [Settings > Export]
  - After 90 days, your data is permanently deleted

If you change your mind, reactivating is instant. Everything
will be exactly where you left it.

[Export My Data]    [Visit Our Community]    [Contact Support]

Footer (below main content): "Changed your mind? [Reactivate my account] -- no forms, no waiting."


Confirmation Page: Pause Confirmed

Headline: "Your account is paused until [resume date]."

Body:

No charges will be made while your account is paused.
Your data, settings, and history are safe and will be waiting
when you return.

Resuming is instant -- just log in and click Resume, or we'll
automatically resume on [resume date].

You'll receive a reminder email 7 days before your pause ends.

[Change Resume Date]    [Resume Early]    [Export My Data]

Post-Cancellation Email (Sent Immediately After Cancel Flow)

Subject line options:

  • "Your cancellation is confirmed, [Name]"
  • "Account cancelled -- what you need to know"
  • "We've processed your cancellation"

Email body:

Hi [Name],

Your [Brand] [Plan] subscription has been cancelled, effective [date].

A few things to know:

  Access: Your account stays active until [billing period end date].

  Your data: Safely stored for 90 days from today. Export any
  time at [Settings > Export].

  Reactivate: If you change your mind, your account reactivates
  instantly with all your data intact. Just go to [link].

We're sorry to see you go. If there's anything we could have
done differently, reply to this email -- it goes to a real person
on our team who reads every response.

[The Brand] team
[Name of a real team member]

P.S. Your data export link: [direct link]

4. Full Dunning Email Sequence (6 Emails)

Email 1: Day 0 -- First Payment Failure (Soft, Helpful)

Subject line options:

  • "Payment issue with your [Brand] account"
  • "Quick heads-up: we couldn't process your payment"
  • "Action needed: update your payment method"

Preview text:

  • "Your account is fine -- let's get this sorted quickly."
  • "Takes 30 seconds to fix."

Body:

Hi [Name],

We tried to process your [Plan] subscription payment today, but
something didn't go through.

This happens -- cards expire, banks flag international charges,
and limits reset. It's usually a quick fix.

Update your payment method here:
[Update Payment Details -- big, clear button]

Your account is fully active while we sort this out. If you
have questions, reply to this email or chat with us at [link].

[Brand] billing team

Tone note: Do not use the word "failed" or "declined" in email 1. Use "couldn't process" or "didn't go through." Softer language reduces defensive reactions and increases click-through.


Email 2: Day 1 -- Friendly Follow-Up

Subject line options:

  • "Reminder: your [Brand] payment needs updating"
  • "[Name], one more thing about your payment"
  • "Still having trouble with your payment?"

Preview text:

  • "We haven't been able to reach you -- let's fix this before it affects your account."
  • "Your account is still active -- update takes 30 seconds."

Body:

Hi [Name],

We sent you a note yesterday about a payment issue on your
[Brand] [Plan] account. We wanted to follow up in case it
got buried.

Your account is still fully active. Updating your payment
details takes about 30 seconds.

[Update My Payment Method]

If you want to use a different card or switch payment methods,
you can do that here too: [link to billing portal]

Questions? We're here: [support email / chat link]

[Brand] billing team

Email 3: Day 3 -- Direct Link, Slightly More Urgent

Subject line options:

  • "Your [Brand] payment is still outstanding"
  • "Account at risk: payment update needed"
  • "[Name] -- we really need to sort your payment out"

Preview text:

  • "Your account is active but we need to hear from you."
  • "Two more days and your access may be affected."

Body:

Hi [Name],

We've tried reaching you about a payment issue on your [Brand]
account -- we want to make sure you don't lose access.

Here's the direct link to update your payment:
[Direct billing portal link]

What happens if you don't update:
  - Day 7: In-app notice about account status
  - Day 14: Access may become limited
  - Day 21: Account may be paused or cancelled

We'd rather sort this now while your account is fully active.

If you're having difficulties with payment or want to talk
through your options, reply to this email and a real person
will respond within a few hours.

[Update Payment Now]

[Brand] billing team

Email 4: Day 7 -- Urgent, Account at Risk

Subject line options:

  • "Urgent: your [Brand] account is at risk"
  • "Your account may be suspended soon, [Name]"
  • "Last week to save your [Brand] account"

Preview text:

  • "Don't lose your data and progress -- takes 30 seconds to fix."
  • "7 days until your account is affected."

Body:

Hi [Name],

Your [Brand] payment has been outstanding for 7 days. We need
to hear from you today to keep your account fully active.

What's at risk:
  - [X] projects / [X] integrations / [X] team members
  - [X] months of data and history
  - Your current plan pricing (reactivating after cancellation
    means signing up at current rates)

Update your payment now to avoid any disruption:
[Update Payment -- prominent button]

Can't update right now? Reply to this email and tell us what's
happening. If you need a few extra days, we can arrange that.
We'd rather work with you than lose you.

This is the point where we'd also pick up the phone for accounts
above [threshold] MRR. If that's you, expect a call from
[Name] at [Brand] today.

[Brand] billing team
[Direct phone number if applicable]

High-value accounts: For accounts above $500 MRR, add a personal PS: "P.S. [Name] from our account team is going to try you on [phone number] today. We want to help sort this personally."


Email 5: Day 14 -- Final Warning Before Downgrade

Subject line options:

  • "Final notice: [Brand] account action required"
  • "Your [Brand] account will be affected in 7 days"
  • "[Name], we need your decision"

Preview text:

  • "One week left before your account changes. This is the last reminder."

Body:

Hi [Name],

This is our final payment reminder before your [Brand] account
is automatically affected.

In 7 days (on [date]):
  - Your account will be moved to a limited/read-only mode
  - You will not be able to [core action] until payment is resolved
  - Your data will remain safe and accessible for 90 days

This is genuinely our last automated email about this.

If you want to keep your account, here's the link:
[Resolve Payment Now]

If you've decided to move on, no action is required -- your
account will transition automatically on [date] and you'll
receive a confirmation.

If there's a reason we don't know about that's making this
difficult -- financial hardship, billing dispute, a technical
issue -- please just reply. We handle these situations
individually and there may be options we haven't offered yet.

[Brand] billing team

Email 6: Day 21 -- Account Lapsed / Reactivation Offer

Subject line options:

  • "Your [Brand] account has been paused"
  • "Your account is waiting for you, [Name]"
  • "[Brand] -- reactivate any time, your data is safe"

Preview text:

  • "Your data is safe for 90 days. Reactivating takes 30 seconds."

Body:

Hi [Name],

Your [Brand] [Plan] account has been paused due to an
unresolved payment issue.

Your data is safe. Everything -- your [projects / settings /
history] -- is stored securely and will be there when you return.

To reactivate, just update your payment method:
[Reactivate My Account]

Your data will be available for 90 days from today ([date]).
After that, it will be permanently deleted.

If you meant to cancel and this is fine, you don't need to
do anything. You'll receive one final email confirming
permanent deletion 14 days before it happens.

If the pause was accidental or things have changed, we'd love
to have you back. Reactivation is instant.

[Brand] billing team

P.S. If you're coming back, your original plan pricing is
preserved for the next 30 days. After that, you'll sign up
at current rates.

5. Win-Back Email Sequence (3 Emails)

Email 1: 7-14 Days Post-Cancel -- Warm Check-In

Timing note: Send 7 days post-cancel for monthly plans. 14 days for annual or higher-value plans. Do not send sooner -- it feels desperate.

Subject line options:

  • "We've been thinking, [Name]"
  • "A note from [Brand] -- no pressure"
  • "How's it going since you left, [Name]?"
  • "[Name], it's been [X] days"

Preview text:

  • "No pitch. Just checking in."
  • "Things have changed since you left."

Body:

Hi [Name],

It's been [X] days since you cancelled your [Brand] account.
We hope whatever you switched to is working out for you.

We're not going to try to pressure you back -- if your needs
have changed, we respect that.

But we did want to share a couple of things that have happened
at [Brand] since you left that might be relevant:

  - [Recent feature or improvement #1]
  - [Recent feature or improvement #2]
  - [Customer win, stat, or case study that speaks to their
     use case]

If your situation changes, or if you just want to take another
look at where [Product] has evolved, you can reactivate your
account any time at [link]. Your data is still there.

No pressure, no pitch. Just wanted you to know the door is open.

[Name from the team]
[Brand]

P.S. If there's anything we could have done differently when
you were a customer, I'd genuinely appreciate hearing it.
Reply to this email -- I read every response.

Email 2: 21-30 Days Post-Cancel -- Value Proof + Offer

Subject line options:

  • "A special offer to welcome you back, [Name]"
  • "[Name], here's what [Brand] customers achieved last month"
  • "We'd like you to give [Brand] another shot"
  • "Something for you, if you're open to it"

Preview text:

  • "Your old account and all your data are still there."
  • "No setup required. Reactivate in 30 seconds."

Body:

Hi [Name],

[Brand] has changed a lot in the past [X] weeks. Here's what
customers in your situation have been achieving:

  "[Customer quote or specific result]"
  -- [Customer name, company]

  "[Second customer quote or result]"
  -- [Customer name, company]

We'd love to show you what's possible for [their company/use case].

Here's our offer: come back for [X months] at [X]% off your
original plan, with no commitment beyond the offer period.

[Redeem Offer -- Rejoin at [X]% Off]

This offer expires on [date]. After that, you'd sign up at
standard pricing.

If the timing still isn't right, no worries -- but if you're
even a little curious, this is the moment.

[Name from the team]
[Brand]

Offer placement note: Do not lead with the offer in the subject line. Lead with curiosity or social proof. Save the offer reveal for after you've reminded them of the value.


Email 3: 45-60 Days Post-Cancel -- Final Outreach / News Angle

Subject line options:

  • "One last thing before we stop reaching out, [Name]"
  • "[Brand] update you might want to know about"
  • "[Feature they wanted] just launched -- thought you should know"
  • "We're wrapping up our win-back outreach, [Name]"

Preview text:

  • "After this, we'll leave you alone. But we wanted you to see this first."
  • "Your data is safe for [X] more days."

Body (Feature launch version -- use when they churned for "missing feature"):

Hi [Name],

Quick note -- [feature name] just launched in [Brand].

You mentioned this was something you needed when you cancelled.
We built it. Here's what it does: [2-3 sentence description
with specific capabilities].

If this changes things for you, your account can be reactivated
instantly -- all your data is still there: [Reactivate Now]

We're wrapping up our outreach after this email, so if you'd
prefer we stop messaging you, just click here and we'll remove
you from all future win-back communications: [Unsubscribe link]

Either way, we hope things are going well.

[Brand] team

Body (Standard final outreach -- use for all other scenarios):

Hi [Name],

This is the last email we'll send about coming back to [Brand].
We don't want to be a brand that pesters people, so we're
wrapping up our outreach after this one.

Two things before we do:

1. Your [Brand] data will be permanently deleted on [date]
   (90 days from your cancellation). If you want to export
   it first, here's how: [export link]

2. If you ever want to come back, you can. Standard pricing
   applies, but your reactivation will be instant.

Thank you for being a [Brand] customer. We hope things are
going well, whatever tools you're using now.

[Brand] team

P.S. If there's anything we could have done better, we're
still listening: [feedback link or reply to email]

6. Proactive Retention Emails (Health Score Interventions)

Yellow Tier -- Check-In Email (Day 0 of intervention sequence)

Subject line options:

  • "Checking in on your [Brand] experience, [Name]"
  • "[Name] -- quick question about [Brand]"
  • "Is [Brand] working for you?"

Body:

Hi [Name],

I'm [Name] from the [Brand] customer success team. I noticed
you haven't been in [Product] as much lately and wanted to
reach out personally.

Is everything okay? Are you hitting any friction or not finding
the value you expected?

I ask because customers often go quiet when they're stuck on
something -- and we'd rather help than have you quietly drift
away.

No agenda, no sales. Just a genuine check-in.

If 15 minutes would be useful, you can grab time here:
[Calendar link]

Or just reply to this email with what's going on. I'm a real
person and I'll respond personally.

[Name]
[Brand] Customer Success

Red Tier -- Urgent Outreach Email (High-risk accounts)

Subject line options:

  • "[Name], I wanted to reach out personally"
  • "Quick question about your [Brand] account"
  • "Can I help with something at [Brand], [Name]?"

Body:

Hi [Name],

I'm [Name], [title] at [Brand]. I'm reaching out because I
can see your account has been less active recently, and I
wanted to make sure you're getting the value you signed up for.

Here's what I'd like to offer:

A 45-minute working session where we look at your specific
setup, understand your goals, and make sure [Product] is
actually solving the problems you hired it for.

No pitch. This is purely to make your account work better.

[I'd like to book a session -- calendar link]

If you'd rather not, that's okay too. But if there's something
we could fix or improve, I'd genuinely like to know.

[Name]
[Title], [Brand]
[Direct phone / email]

7. Quick Reference: Offer Decision Tree

Customer selects exit survey reason
         |
         +-- "Too expensive"
         |         |
         |         +--> Show: Discount offer (primary)
         |         +--> Secondary: Pause option
         |         +--> Downgrade option (if multi-plan)
         |
         +-- "Not using it enough"
         |         |
         |         +--> Show: 1:1 setup session offer
         |         +--> Secondary: Pause option
         |
         +-- "Missing a feature"
         |         |
         |         +--> Feature on roadmap? YES --> Show roadmap date + pause
         |         +--> Feature on roadmap? NO  --> Honest response + notify option
         |
         +-- "Switching to competitor"
         |         |
         |         +--> Show: Comparison table + 1 month free
         |         +--> Link: Full comparison page
         |
         +-- "Technical issue"
         |         |
         |         +--> Show: Senior support escalation + credit
         |         +--> Trigger: Internal CS alert immediately
         |
         +-- "Other" (open text)
                   |
                   +--> Show: Callback request + general discount or pause
                   +--> Route: Text field response to CS team for follow-up

8. Subject Line Quick Reference

Dunning Subject Lines (by tone)

Soft / Helpful:

  • "Payment issue with your [Brand] account"
  • "Quick heads-up about your [Brand] payment"
  • "We couldn't process your payment -- easy fix"

Direct / Informative:

  • "Action needed: update your [Brand] payment"
  • "Your [Brand] payment needs attention"
  • "Payment update required for your [Brand] account"

Urgent (Days 7-14):

  • "Your [Brand] account is at risk"
  • "Final payment reminder -- [Brand]"
  • "Important: your [Brand] account will be affected on [date]"

Win-Back Subject Lines (by angle)

Curiosity:

  • "We've been thinking about you, [Name]"
  • "Something changed at [Brand] you should know about"
  • "Before we stop messaging you -- one more thing"

Social proof:

  • "Here's what [Brand] customers achieved last month"
  • "[X] customers in [their industry] are getting [result]"

Offer-led:

  • "[X]% off to welcome you back, [Name]"
  • "Your offer expires [date], [Name]"
  • "A deal, just for former customers"

Feature-triggered:

  • "[Feature name] just launched -- this is why you left"
  • "The thing you asked for: it's here"

9. A/B Testing Priorities for Cancel Flow

Run these tests in priority order. Give each test at least 30 days or 200 impressions per variant before calling a winner.

TestVariants to RunMetric to Optimise
Survey headlineEmpathetic vs direct vs curiositySurvey completion rate
Survey option orderPricing first vs usage first vs feature firstResponse accuracy (compare to support data)
Offer framingPercentage discount vs dollar amount discountOffer acceptance rate
Pause vs discountShow pause first vs show discount firstSave rate
Offer acceptance button copy"Apply discount" vs "Keep my account" vs "Stay [X]% off"Acceptance rate
Decline link placementProminent vs subtleSave rate (caution: hiding it damages trust)
Confirmation page CTA"Reactivate" vs "Change your mind?"Reactivation rate at 30 days

These templates are starting points, not final copy. Always review against brand-context.md for voice, tone, and audience language before publishing. The most effective cancel flow copy sounds like the brand speaking -- not like a generic SaaS template.


Supporting file: references/churn-diagnosis.md

Churn Diagnosis Capability

Before designing any retention intervention, understand what kind of churn is happening and why. Prescribing solutions before diagnosing is the most common retention mistake.

Types of Churn

TypeDefinitionPrimary CauseRecovery Approach
Voluntary (active)Customer deliberately cancelsValue perception, missing features, competitor, priceCancel flow, proactive retention, win-back
Involuntary (passive)Payment fails and account lapsesExpired card, insufficient funds, bank blockDunning sequences, Smart Retry, card updater
ImplicitCustomer stops using but does not cancelDisengagement, poor onboarding, habit not formedHealth scoring, proactive outreach
Contractual expiryFixed-term contract ends and is not renewedNo renewal conversation, poor ongoing value deliveryQBRs, renewal playbooks, expansion offers

Involuntary churn represents 30-50% of all SaaS churn and is the highest-recovery-rate category. Address it first.

Calculating Churn Rates

Monthly Churn Rate (Customer)

(Customers lost in period / Customers at start of period) x 100

Target: under 2% for SMB SaaS, under 0.5% for enterprise SaaS, under 5% for consumer subscription.

Monthly Revenue Churn (Gross MRR Churn)

(MRR lost to cancellations + downgrades in period / MRR at start of period) x 100

Target: under 1.5% monthly gross MRR churn.

Net Revenue Retention (NRR)

((Starting MRR + Expansion MRR - Contraction MRR - Churned MRR) / Starting MRR) x 100

Target: above 100% (expansion exceeds churn). Best-in-class SaaS: 120-140%.

Revenue Churn Rate vs Customer Churn Rate: These diverge significantly when you have plan tiers. If enterprise customers churn less than SMB customers, revenue churn will be lower than customer churn -- which is healthy. Segment both metrics by customer cohort and plan type.

Cohort Retention Analysis

Run retention curves by signup cohort (monthly or quarterly) to identify onboarding failures, product-market fit segments, and trend direction. Always segment by plan tier, acquisition channel, activation status, and geography.

For the full cohort table template, interpretation guide, and segmentation methodology, see ./benchmarks.md Section 1.

Identifying Churn Causes

Use all available signals. Prioritise in this order:

Qualitative (direct feedback)

  • Exit survey data from cancel flow (most reliable for voluntary churn)
  • Customer success call notes and support ticket themes
  • NPS detractor verbatim responses
  • Direct outreach to recently churned customers (email or call within 7 days of churn)

Quantitative (behavioural signals)

  • Feature adoption rates: which features are churned customers NOT using?
  • Login frequency trajectory in the 30-60 days before churn
  • Support volume: do churned customers have more tickets? Unresolved tickets?
  • Billing events: how many churned customers had at least one failed payment?
  • Onboarding completion rates for churned vs retained cohorts

Common churn causes by business type:

Business TypeTop Churn Causes
SaaS (SMB)Price sensitivity, product not sticky enough, competitor switch, poor onboarding
SaaS (Enterprise)Contract renewal not prioritised, stakeholder change, budget cut, implementation failure
Consumer subscriptionForgot they were subscribed, seasonal need, price, forgot to cancel
E-commerce subscriptionProduct quality, variety fatigue, price vs value, no longer needed

Deliverable

Churn Diagnosis Report: churn-diagnosis-{YYYY-MM-DD}.md

  • Churn type breakdown
  • Cohort analysis
  • Root cause findings
  • Prioritised recommendations

Recommended Priority Order

If starting a retention programme from scratch, implement in this sequence:

  1. Payment recovery (highest ROI, fastest wins -- enable Card Updater and Smart Retries this week)
  2. Dunning email sequence (capture remaining involuntary churn)
  3. Cancel flow (address voluntary churn at the moment of intent)
  4. Health scoring and proactive intervention (prevent churn before intent forms)
  5. Win-back campaign (re-engage churned customers)
  6. Ongoing churn analysis and cohort monitoring (sustain improvements)

Supporting file: references/frameworks-index.csv

id,name,description,best_for,retention_stage,file,tags
1,Exit Survey Copy,Survey header copy; 6 option microcopy with labels icons and follow-up fields; footer copy with skip link and privacy note,Designing or auditing the exit survey step of a cancel flow,Cancel Flow,frameworks/exit-survey-copy.md,exit-survey;microcopy;cancel-flow;survey-design
2,Dynamic Offer Templates,Reason-matched offer card copy for all 6 cancellation scenarios with acceptance confirmations and alternative offers,Building dynamic offer logic that responds to exit survey selection,Cancel Flow,frameworks/dynamic-offer-templates.md,offers;discount;pause;downgrade;cancel-flow;reason-matching
3,Cancel Confirmation Copy,Confirmation page copy for immediate cancellation and pause; post-cancellation email template,Writing confirmation screens and the immediate post-cancel email,Cancel Flow,frameworks/cancel-confirmation-copy.md,confirmation;post-cancel;email;data-export;reactivation
4,Dunning Email Sequence,Full 6-email dunning sequence from Day 0 to Day 21 with subject lines preview text and body copy,Building or auditing a payment recovery email sequence,Dunning,frameworks/dunning-email-sequence.md,dunning;payment-recovery;involuntary-churn;email-sequence
5,Win-Back Email Sequence,3-email win-back sequence from 7 days to 60 days post-cancel with timing notes and offer escalation,Creating win-back campaigns for voluntarily churned customers,Win-Back,frameworks/win-back-email-sequence.md,win-back;re-engagement;churned-customers;email-sequence
6,Proactive Retention Emails,Yellow-tier check-in and red-tier urgent outreach email templates for health score interventions,Writing proactive outreach emails triggered by declining health scores,Proactive,frameworks/proactive-retention-emails.md,proactive;health-score;customer-success;intervention;at-risk
7,Offer Decision Tree,Visual ASCII decision tree mapping each exit survey reason to its primary and secondary offer,Quick reference when configuring cancel flow offer logic or auditing offer routing,Reference,frameworks/offer-decision-tree.md,decision-tree;offer-logic;quick-reference;cancel-flow
8,Subject Line Reference,Curated dunning and win-back subject lines organised by tone and angle,Choosing or A/B testing subject lines for retention emails,Reference,frameworks/subject-line-reference.md,subject-lines;dunning;win-back;email;copywriting
9,Cancel Flow A/B Testing,Prioritised A/B testing roadmap for cancel flow elements with variants and success metrics,Planning optimisation experiments for an existing cancel flow,Testing,frameworks/cancel-flow-ab-testing.md,ab-testing;optimisation;cancel-flow;experimentation

Supporting file: references/frameworks/cancel-confirmation-copy.md

Cancel Flow Confirmation Page Copy

This page renders after the customer either declines the offer or skips the cancel flow entirely. It should be graceful, informative, and leave the door open without being pushy. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Confirmation Page: Immediate Cancellation

Headline: "Your [Plan] subscription has been cancelled."

Body:

Your account will remain active until [date] -- the end of your
current billing period. No further charges will be made.

Here's what happens to your data:
  - Your account data is safely stored for 90 days
  - You can export everything from [Settings > Export]
  - After 90 days, your data is permanently deleted

If you change your mind, reactivating is instant. Everything
will be exactly where you left it.

[Export My Data]    [Visit Our Community]    [Contact Support]

Footer (below main content): "Changed your mind? [Reactivate my account] -- no forms, no waiting."


Confirmation Page: Pause Confirmed

Headline: "Your account is paused until [resume date]."

Body:

No charges will be made while your account is paused.
Your data, settings, and history are safe and will be waiting
when you return.

Resuming is instant -- just log in and click Resume, or we'll
automatically resume on [resume date].

You'll receive a reminder email 7 days before your pause ends.

[Change Resume Date]    [Resume Early]    [Export My Data]

Post-Cancellation Email (Sent Immediately After Cancel Flow)

Subject line options:

  • "Your cancellation is confirmed, [Name]"
  • "Account cancelled -- what you need to know"
  • "We've processed your cancellation"

Email body:

Hi [Name],

Your [Brand] [Plan] subscription has been cancelled, effective [date].

A few things to know:

  Access: Your account stays active until [billing period end date].

  Your data: Safely stored for 90 days from today. Export any
  time at [Settings > Export].

  Reactivate: If you change your mind, your account reactivates
  instantly with all your data intact. Just go to [link].

We're sorry to see you go. If there's anything we could have
done differently, reply to this email -- it goes to a real person
on our team who reads every response.

[The Brand] team
[Name of a real team member]

P.S. Your data export link: [direct link]

Supporting file: references/frameworks/cancel-flow-ab-testing.md

A/B Testing Priorities for Cancel Flow

Prioritised A/B tests for optimising cancel flow performance. Run these tests in priority order. Give each test at least 30 days or 200 impressions per variant before calling a winner.


TestVariants to RunMetric to Optimise
Survey headlineEmpathetic vs direct vs curiositySurvey completion rate
Survey option orderPricing first vs usage first vs feature firstResponse accuracy (compare to support data)
Offer framingPercentage discount vs dollar amount discountOffer acceptance rate
Pause vs discountShow pause first vs show discount firstSave rate
Offer acceptance button copy"Apply discount" vs "Keep my account" vs "Stay [X]% off"Acceptance rate
Decline link placementProminent vs subtleSave rate (caution: hiding it damages trust)
Confirmation page CTA"Reactivate" vs "Change your mind?"Reactivation rate at 30 days

These templates are starting points, not final copy. Always review against brand-context.md for voice, tone, and audience language before publishing. The most effective cancel flow copy sounds like the brand speaking -- not like a generic SaaS template.


Supporting file: references/frameworks/dunning-email-sequence.md

Full Dunning Email Sequence (6 Emails)

Production-ready dunning email copy for payment recovery. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Email 1: Day 0 -- First Payment Failure (Soft, Helpful)

Subject line options:

  • "Payment issue with your [Brand] account"
  • "Quick heads-up: we couldn't process your payment"
  • "Action needed: update your payment method"

Preview text:

  • "Your account is fine -- let's get this sorted quickly."
  • "Takes 30 seconds to fix."

Body:

Hi [Name],

We tried to process your [Plan] subscription payment today, but
something didn't go through.

This happens -- cards expire, banks flag international charges,
and limits reset. It's usually a quick fix.

Update your payment method here:
[Update Payment Details -- big, clear button]

Your account is fully active while we sort this out. If you
have questions, reply to this email or chat with us at [link].

[Brand] billing team

Tone note: Do not use the word "failed" or "declined" in email 1. Use "couldn't process" or "didn't go through." Softer language reduces defensive reactions and increases click-through.


Email 2: Day 1 -- Friendly Follow-Up

Subject line options:

  • "Reminder: your [Brand] payment needs updating"
  • "[Name], one more thing about your payment"
  • "Still having trouble with your payment?"

Preview text:

  • "We haven't been able to reach you -- let's fix this before it affects your account."
  • "Your account is still active -- update takes 30 seconds."

Body:

Hi [Name],

We sent you a note yesterday about a payment issue on your
[Brand] [Plan] account. We wanted to follow up in case it
got buried.

Your account is still fully active. Updating your payment
details takes about 30 seconds.

[Update My Payment Method]

If you want to use a different card or switch payment methods,
you can do that here too: [link to billing portal]

Questions? We're here: [support email / chat link]

[Brand] billing team

Email 3: Day 3 -- Direct Link, Slightly More Urgent

Subject line options:

  • "Your [Brand] payment is still outstanding"
  • "Account at risk: payment update needed"
  • "[Name] -- we really need to sort your payment out"

Preview text:

  • "Your account is active but we need to hear from you."
  • "Two more days and your access may be affected."

Body:

Hi [Name],

We've tried reaching you about a payment issue on your [Brand]
account -- we want to make sure you don't lose access.

Here's the direct link to update your payment:
[Direct billing portal link]

What happens if you don't update:
  - Day 7: In-app notice about account status
  - Day 14: Access may become limited
  - Day 21: Account may be paused or cancelled

We'd rather sort this now while your account is fully active.

If you're having difficulties with payment or want to talk
through your options, reply to this email and a real person
will respond within a few hours.

[Update Payment Now]

[Brand] billing team

Email 4: Day 7 -- Urgent, Account at Risk

Subject line options:

  • "Urgent: your [Brand] account is at risk"
  • "Your account may be suspended soon, [Name]"
  • "Last week to save your [Brand] account"

Preview text:

  • "Don't lose your data and progress -- takes 30 seconds to fix."
  • "7 days until your account is affected."

Body:

Hi [Name],

Your [Brand] payment has been outstanding for 7 days. We need
to hear from you today to keep your account fully active.

What's at risk:
  - [X] projects / [X] integrations / [X] team members
  - [X] months of data and history
  - Your current plan pricing (reactivating after cancellation
    means signing up at current rates)

Update your payment now to avoid any disruption:
[Update Payment -- prominent button]

Can't update right now? Reply to this email and tell us what's
happening. If you need a few extra days, we can arrange that.
We'd rather work with you than lose you.

This is the point where we'd also pick up the phone for accounts
above [threshold] MRR. If that's you, expect a call from
[Name] at [Brand] today.

[Brand] billing team
[Direct phone number if applicable]

High-value accounts: For accounts above $500 MRR, add a personal PS: "P.S. [Name] from our account team is going to try you on [phone number] today. We want to help sort this personally."


Email 5: Day 14 -- Final Warning Before Downgrade

Subject line options:

  • "Final notice: [Brand] account action required"
  • "Your [Brand] account will be affected in 7 days"
  • "[Name], we need your decision"

Preview text:

  • "One week left before your account changes. This is the last reminder."

Body:

Hi [Name],

This is our final payment reminder before your [Brand] account
is automatically affected.

In 7 days (on [date]):
  - Your account will be moved to a limited/read-only mode
  - You will not be able to [core action] until payment is resolved
  - Your data will remain safe and accessible for 90 days

This is genuinely our last automated email about this.

If you want to keep your account, here's the link:
[Resolve Payment Now]

If you've decided to move on, no action is required -- your
account will transition automatically on [date] and you'll
receive a confirmation.

If there's a reason we don't know about that's making this
difficult -- financial hardship, billing dispute, a technical
issue -- please just reply. We handle these situations
individually and there may be options we haven't offered yet.

[Brand] billing team

Email 6: Day 21 -- Account Lapsed / Reactivation Offer

Subject line options:

  • "Your [Brand] account has been paused"
  • "Your account is waiting for you, [Name]"
  • "[Brand] -- reactivate any time, your data is safe"

Preview text:

  • "Your data is safe for 90 days. Reactivating takes 30 seconds."

Body:

Hi [Name],

Your [Brand] [Plan] account has been paused due to an
unresolved payment issue.

Your data is safe. Everything -- your [projects / settings /
history] -- is stored securely and will be there when you return.

To reactivate, just update your payment method:
[Reactivate My Account]

Your data will be available for 90 days from today ([date]).
After that, it will be permanently deleted.

If you meant to cancel and this is fine, you don't need to
do anything. You'll receive one final email confirming
permanent deletion 14 days before it happens.

If the pause was accidental or things have changed, we'd love
to have you back. Reactivation is instant.

[Brand] billing team

P.S. If you're coming back, your original plan pricing is
preserved for the next 30 days. After that, you'll sign up
at current rates.

Supporting file: references/frameworks/dynamic-offer-templates.md

Dynamic Offer Templates by Cancellation Reason

Production-ready offer copy matched to each exit survey cancellation reason. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Offer Screen Wrapper Copy

Header above the offer card (after survey selection):

  • "Wait -- before you go, we have something for you."
  • "Based on what you told us, here's what we can do."
  • "We'd like to make this right."

Decline link below offer (always present):

  • "No thanks, I still want to cancel" (styled as plain text link, not a button)

Scenario 1: "It's too expensive"

Offer type: Discount (20-30% for 3 months) or Plan Downgrade

Offer card headline options:

  • "Stay for [X]% less for the next 3 months"
  • "We can reduce your bill by [X]% right now"
  • "What if [Product] cost less?"

Offer card body copy:

We get it -- budget matters.

Here's what we can do: drop your [Plan] price by [X]% for the
next 3 months, then return to your regular rate.

No changes to your plan. No hidden conditions. Just a lower bill
while you see the full value [Product] can deliver.

[Apply [X]% Discount -- Keep My Account]

Downgrade alternative (below the main offer): "Or, would a smaller plan at $[price]/month work better? [See all plans]"

Pause alternative (below the main offer): "Not ready to commit? [Pause your account for 1-3 months] instead of cancelling."

Acceptance confirmation copy: "Done. Your new rate of $[price]/month applies immediately. Your next invoice will reflect this discount. See you on the inside."


Scenario 2: "Not using it enough"

Offer type: Free 1:1 onboarding session + Pause option

Offer card headline options:

  • "Let's get [Product] actually working for you -- on us"
  • "30 minutes with our team could change everything"
  • "You're not stuck. We can help."

Offer card body copy:

Not using [Product] enough usually means one thing: you haven't
found your "aha moment" yet. That's on us.

Our team will personally walk through your account, understand
your specific goal, and set up [Product] to get you results --
for free, in one 30-minute session.

Customers who complete a setup session retain 3x longer and see
results within their first week.

[Book My Free Setup Session]

Pause alternative:

Not ready for a call right now?

Pause your account for up to 3 months instead. Your data stays
safe, your plan stays active, and you can unpause any time.
No charge while paused.

[Pause My Account Instead]

Acceptance confirmation (session booked): "Your setup session is confirmed. You'll receive a calendar invite shortly. We're looking forward to helping you get real results from [Product]."

Acceptance confirmation (pause selected): "Your account is paused. We won't charge you while you're paused. Resume any time from your account settings -- your data will be right where you left it."


Scenario 3: "Missing a feature I need"

Offer type: Roadmap acknowledgment + Workaround + Pause

Offer card headline options:

  • "Tell us what you need -- it matters"
  • "That feature might be closer than you think"
  • "We're building it. Here's where we are."

Offer card body copy (roadmap version -- use when feature is planned):

We hear you -- [feature] is something our team is actively
working on.

Current status: [On roadmap / In development / Launching in Q{X}]

If you can wait, we'd love to keep your account active. In the
meantime, here's a workaround that some customers use to
approximate [feature]: [brief workaround description or link].

Would a 2-month pause give us time to ship this for you?

[Pause My Account for 2 Months]    [View the Roadmap]

Offer card body copy (feature not yet planned -- honest version):

We don't have [feature] yet, and we want to be honest with you.

Your feedback has been sent directly to our product team. Features
that reach a certain threshold of requests get prioritised. Yours
counts.

If you want to stay and be notified the moment this ships,
we'll email you immediately. Otherwise, we understand.

[Stay and Notify Me When It Ships]

Acceptance confirmation: "You've been added to the notify list for [feature]. We'll email you the moment it's available. Thank you for your patience -- feedback like yours shapes our roadmap."


Scenario 4: "Switching to another tool"

Offer type: Direct comparison + Differentiation + 1-month free trial extension

Offer card headline options:

  • "Before you switch -- a quick comparison"
  • "We'd like the chance to show you what makes [Product] different"
  • "Switching costs are real. Let's make sure it's worth it."

Offer card body copy:

Switching tools is a significant decision -- time, migration,
retraining, and integration work.

Before you go, here's how [Product] compares to the most common
alternatives our customers consider:

[Product]               vs    [Competitor A]
  [Differentiator 1]            [Gap or tradeoff]
  [Differentiator 2]            [Gap or tradeoff]
  [Differentiator 3]            [Gap or tradeoff]

If you've already decided, we respect that. But if you're still
evaluating, take one more month on us -- free -- to compare
fairly.

[Try 1 More Month Free]    [Read Full Comparison]

Acceptance confirmation: "Your account has been extended by one month at no charge. We hope the extra time helps you make the best decision for your team -- whatever that turns out to be."


Scenario 5: "I had a technical problem"

Offer type: Immediate escalation to senior support + Account credit

Offer card headline options:

  • "Let us fix this -- right now"
  • "This should never have happened. We want to make it right."
  • "Our senior team will personally resolve this today"

Offer card body copy:

A technical problem is the worst reason to lose you as a
customer -- because it's fixable.

Here's what happens next:

1. A senior member of our engineering team will review your
   account within 2 hours.
2. We'll contact you directly at [email] with a resolution.
3. Your account will be credited for [X days/amount] for the
   disruption.

You don't need to do anything except give us the chance to fix it.

[Yes, Please Fix This]

Immediate action on acceptance: Trigger internal alert to CS/engineering immediately. Do not route through standard support queue. Personal response within 2 hours is the expectation set.

Acceptance confirmation: "Our senior team has been notified and will reach out within 2 hours. In the meantime, we've applied a [X]-day credit to your account. We're sorry this happened."


Scenario 6: "Something else" (open text)

Offer type: Manager callback + General discount or pause option

Offer card headline options:

  • "Can we call you? We'd like to understand."
  • "Let's talk -- your situation is unique"
  • "A real conversation might help"

Offer card body copy:

Not everything fits into a list. Whatever's going on, we'd like
to understand before you go.

If you're open to it, request a quick call with one of our
senior team members -- someone with the authority to actually
help, not just read from a script.

If a call doesn't work, we can also offer you a [X]% discount
or a [1-3 month] pause while you sort things out.

[Request a Quick Call]    [Get [X]% Off Instead]    [Pause Instead]

Supporting file: references/frameworks/exit-survey-copy.md

Exit Survey Copy

Production-ready copy for cancel flow exit surveys. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Survey Header Copy

Primary headline options (choose one, A/B test):

  • "Before you go -- one quick question"
  • "Help us understand (it takes 30 seconds)"
  • "We're sorry to see you go. What happened?"
  • "Your feedback helps us improve for everyone"

Subheading (use beneath headline):

  • "Select the main reason you're cancelling. This helps us improve [Product] for everyone."
  • "Tell us why so we can do better. Your answer will determine what we can offer you."

Survey Option Microcopy (6 Options)

Option 1: Too expensive

  • Label: "It's too expensive"
  • Microcopy below label: "The price doesn't match the value I'm getting right now."
  • Icon suggestion: currency symbol or price tag

Option 2: Not using it enough

  • Label: "I'm not using it enough"
  • Microcopy below label: "I don't have the time or need to get full value from [Product]."
  • Icon suggestion: clock or calendar

Option 3: Missing a feature

  • Label: "It's missing something I need"
  • Microcopy below label: "There's a specific feature or integration I can't work without."
  • Icon suggestion: puzzle piece or feature block

Option 4: Switching to a competitor

  • Label: "I'm switching to another tool"
  • Microcopy below label: "I found a different solution that better fits my needs."
  • Icon suggestion: arrow pointing right or comparison icon

Option 5: Technical issue or bad experience

  • Label: "I had a technical problem"
  • Microcopy below label: "I experienced a bug, outage, or issue that wasn't resolved."
  • Icon suggestion: warning triangle or wrench

Option 6: Other

  • Label: "Something else"
  • Microcopy below label: "My reason isn't listed above."
  • Follow-up text field placeholder: "Tell us more (optional) -- your feedback goes directly to our team."
  • Icon suggestion: speech bubble or question mark

Survey Footer Copy

Below the option list: "Not sure? [Skip and cancel directly] -- no hard feelings." (Link opens confirmation screen directly, bypasses offer)

Privacy note (optional, builds trust): "Your response is shared only with our product team to improve [Product]. We won't use it for marketing."


Supporting file: references/frameworks/offer-decision-tree.md

Quick Reference: Offer Decision Tree

Visual decision tree mapping exit survey responses to the correct retention offer. Use this as a quick reference when building or auditing cancel flow logic.


Customer selects exit survey reason
         |
         +-- "Too expensive"
         |         |
         |         +--> Show: Discount offer (primary)
         |         +--> Secondary: Pause option
         |         +--> Downgrade option (if multi-plan)
         |
         +-- "Not using it enough"
         |         |
         |         +--> Show: 1:1 setup session offer
         |         +--> Secondary: Pause option
         |
         +-- "Missing a feature"
         |         |
         |         +--> Feature on roadmap? YES --> Show roadmap date + pause
         |         +--> Feature on roadmap? NO  --> Honest response + notify option
         |
         +-- "Switching to competitor"
         |         |
         |         +--> Show: Comparison table + 1 month free
         |         +--> Link: Full comparison page
         |
         +-- "Technical issue"
         |         |
         |         +--> Show: Senior support escalation + credit
         |         +--> Trigger: Internal CS alert immediately
         |
         +-- "Other" (open text)
                   |
                   +--> Show: Callback request + general discount or pause
                   +--> Route: Text field response to CS team for follow-up

Supporting file: references/frameworks/proactive-retention-emails.md

Proactive Retention Emails (Health Score Interventions)

Production-ready email copy for proactive retention outreach triggered by health score changes. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Yellow Tier -- Check-In Email (Day 0 of intervention sequence)

Subject line options:

  • "Checking in on your [Brand] experience, [Name]"
  • "[Name] -- quick question about [Brand]"
  • "Is [Brand] working for you?"

Body:

Hi [Name],

I'm [Name] from the [Brand] customer success team. I noticed
you haven't been in [Product] as much lately and wanted to
reach out personally.

Is everything okay? Are you hitting any friction or not finding
the value you expected?

I ask because customers often go quiet when they're stuck on
something -- and we'd rather help than have you quietly drift
away.

No agenda, no sales. Just a genuine check-in.

If 15 minutes would be useful, you can grab time here:
[Calendar link]

Or just reply to this email with what's going on. I'm a real
person and I'll respond personally.

[Name]
[Brand] Customer Success

Red Tier -- Urgent Outreach Email (High-risk accounts)

Subject line options:

  • "[Name], I wanted to reach out personally"
  • "Quick question about your [Brand] account"
  • "Can I help with something at [Brand], [Name]?"

Body:

Hi [Name],

I'm [Name], [title] at [Brand]. I'm reaching out because I
can see your account has been less active recently, and I
wanted to make sure you're getting the value you signed up for.

Here's what I'd like to offer:

A 45-minute working session where we look at your specific
setup, understand your goals, and make sure [Product] is
actually solving the problems you hired it for.

No pitch. This is purely to make your account work better.

[I'd like to book a session -- calendar link]

If you'd rather not, that's okay too. But if there's something
we could fix or improve, I'd genuinely like to know.

[Name]
[Title], [Brand]
[Direct phone / email]

Supporting file: references/frameworks/subject-line-reference.md

Subject Line Quick Reference

Curated subject lines for dunning and win-back emails, organised by tone and angle. Use as a starting point -- always adapt to match brand-context.md voice.


Dunning Subject Lines (by tone)

Soft / Helpful:

  • "Payment issue with your [Brand] account"
  • "Quick heads-up about your [Brand] payment"
  • "We couldn't process your payment -- easy fix"

Direct / Informative:

  • "Action needed: update your [Brand] payment"
  • "Your [Brand] payment needs attention"
  • "Payment update required for your [Brand] account"

Urgent (Days 7-14):

  • "Your [Brand] account is at risk"
  • "Final payment reminder -- [Brand]"
  • "Important: your [Brand] account will be affected on [date]"

Win-Back Subject Lines (by angle)

Curiosity:

  • "We've been thinking about you, [Name]"
  • "Something changed at [Brand] you should know about"
  • "Before we stop messaging you -- one more thing"

Social proof:

  • "Here's what [Brand] customers achieved last month"
  • "[X] customers in [their industry] are getting [result]"

Offer-led:

  • "[X]% off to welcome you back, [Name]"
  • "Your offer expires [date], [Name]"
  • "A deal, just for former customers"

Feature-triggered:

  • "[Feature name] just launched -- this is why you left"
  • "The thing you asked for: it's here"

Supporting file: references/frameworks/win-back-email-sequence.md

Win-Back Email Sequence (3 Emails)

Production-ready win-back email copy for re-engaging churned customers. All copy uses [Brand], [Product], [Name], and [Plan] as placeholders. Adapt tone, voice, and specifics to match brand-context.md before using.


Email 1: 7-14 Days Post-Cancel -- Warm Check-In

Timing note: Send 7 days post-cancel for monthly plans. 14 days for annual or higher-value plans. Do not send sooner -- it feels desperate.

Subject line options:

  • "We've been thinking, [Name]"
  • "A note from [Brand] -- no pressure"
  • "How's it going since you left, [Name]?"
  • "[Name], it's been [X] days"

Preview text:

  • "No pitch. Just checking in."
  • "Things have changed since you left."

Body:

Hi [Name],

It's been [X] days since you cancelled your [Brand] account.
We hope whatever you switched to is working out for you.

We're not going to try to pressure you back -- if your needs
have changed, we respect that.

But we did want to share a couple of things that have happened
at [Brand] since you left that might be relevant:

  - [Recent feature or improvement #1]
  - [Recent feature or improvement #2]
  - [Customer win, stat, or case study that speaks to their
     use case]

If your situation changes, or if you just want to take another
look at where [Product] has evolved, you can reactivate your
account any time at [link]. Your data is still there.

No pressure, no pitch. Just wanted you to know the door is open.

[Name from the team]
[Brand]

P.S. If there's anything we could have done differently when
you were a customer, I'd genuinely appreciate hearing it.
Reply to this email -- I read every response.

Email 2: 21-30 Days Post-Cancel -- Value Proof + Offer

Subject line options:

  • "A special offer to welcome you back, [Name]"
  • "[Name], here's what [Brand] customers achieved last month"
  • "We'd like you to give [Brand] another shot"
  • "Something for you, if you're open to it"

Preview text:

  • "Your old account and all your data are still there."
  • "No setup required. Reactivate in 30 seconds."

Body:

Hi [Name],

[Brand] has changed a lot in the past [X] weeks. Here's what
customers in your situation have been achieving:

  "[Customer quote or specific result]"
  -- [Customer name, company]

  "[Second customer quote or result]"
  -- [Customer name, company]

We'd love to show you what's possible for [their company/use case].

Here's our offer: come back for [X months] at [X]% off your
original plan, with no commitment beyond the offer period.

[Redeem Offer -- Rejoin at [X]% Off]

This offer expires on [date]. After that, you'd sign up at
standard pricing.

If the timing still isn't right, no worries -- but if you're
even a little curious, this is the moment.

[Name from the team]
[Brand]

Offer placement note: Do not lead with the offer in the subject line. Lead with curiosity or social proof. Save the offer reveal for after you've reminded them of the value.


Email 3: 45-60 Days Post-Cancel -- Final Outreach / News Angle

Subject line options:

  • "One last thing before we stop reaching out, [Name]"
  • "[Brand] update you might want to know about"
  • "[Feature they wanted] just launched -- thought you should know"
  • "We're wrapping up our win-back outreach, [Name]"

Preview text:

  • "After this, we'll leave you alone. But we wanted you to see this first."
  • "Your data is safe for [X] more days."

Body (Feature launch version -- use when they churned for "missing feature"):

Hi [Name],

Quick note -- [feature name] just launched in [Brand].

You mentioned this was something you needed when you cancelled.
We built it. Here's what it does: [2-3 sentence description
with specific capabilities].

If this changes things for you, your account can be reactivated
instantly -- all your data is still there: [Reactivate Now]

We're wrapping up our outreach after this email, so if you'd
prefer we stop messaging you, just click here and we'll remove
you from all future win-back communications: [Unsubscribe link]

Either way, we hope things are going well.

[Brand] team

Body (Standard final outreach -- use for all other scenarios):

Hi [Name],

This is the last email we'll send about coming back to [Brand].
We don't want to be a brand that pesters people, so we're
wrapping up our outreach after this one.

Two things before we do:

1. Your [Brand] data will be permanently deleted on [date]
   (90 days from your cancellation). If you want to export
   it first, here's how: [export link]

2. If you ever want to come back, you can. Standard pricing
   applies, but your reactivation will be instant.

Thank you for being a [Brand] customer. We hope things are
going well, whatever tools you're using now.

[Brand] team

P.S. If there's anything we could have done better, we're
still listening: [feedback link or reply to email]

Supporting file: references/payment-recovery.md

Payment Recovery and Dunning Capability

Involuntary churn is the most recoverable form of churn because the customer did not intend to leave. A well-designed dunning sequence can recover 50-60% of failed transactions. Act immediately -- recovery rates drop sharply with each passing day.

Understanding Payment Failure Types

Failure TypeCauseRecovery Approach
Soft declineTemporary: insufficient funds, daily limit, bank holdRetry at different times; notify customer
Hard declinePermanent: card number invalid, account closed, blockedImmediate customer notification required
Expired cardCard passed expiration dateProactive card updater service
3DS/authentication failureStrong Customer Authentication required (EU/UK)Send authentication link to customer

Card Updater (Account Updater): Stripe, Braintree, and most payment processors offer a service that automatically updates expired or replaced card details with the issuing bank. Enable this. It silently recovers a significant portion of involuntary churn before the customer even knows there was a problem.

Smart Retry Logic

Do not retry immediately on failure -- it often results in another decline and damages your success rate with the card network.

Smart retry rules:

  • Soft decline (insufficient funds): retry after 24-48 hours, then 72 hours
  • Soft decline at end of month: retry on the 1st-2nd of the following month (paycheck timing)
  • Hard decline: do not retry; notify the customer immediately
  • Timing: avoid retries at midnight. Retry during business hours in the customer's timezone
  • Maximum retries: 4-6 total before moving to manual recovery

Tools like Stripe Billing's Smart Retries, Chargebee's Receivables, or Recurly's Intelligent Retries use machine-learning optimised retry timing. Enable them. They outperform fixed-schedule retry logic significantly.

Dunning Email Sequence

The dunning sequence runs in parallel with Smart Retry logic. Each email should sound human, not like a system alert.

Full sequence: Days 0-21

DayTriggerTonePrimary CTA
Day 0Payment failsSoft, helpfulUpdate payment method
Day 1No updateFriendly, directUpdate payment details
Day 3No updateMore directUpdate now (link)
Day 7No updateUrgentSave your account
Day 14No updateFinal warningLast chance to update
Day 21Grace period expiresNeutral, confirmatoryReactivate if cancelled

Full email body copy and subject lines for all 6 emails are in ./frameworks/dunning-email-sequence.md.

High-value account escalation:

  • Accounts above $500 MRR: add phone or chat outreach at Day 7
  • Accounts above $2,000 MRR: personal call from account manager at Day 3
  • Accounts above $5,000 MRR: executive reach-out, immediate escalation

Account Grace Period Design

Define what happens when payment fails and the dunning sequence runs its course:

DayAccount Status
Day 0-6Full access, soft notification
Day 7-13Full access, prominent in-app banner
Day 14-20Read-only access or feature degradation (data preserved)
Day 21Downgrade to free tier or cancellation, data retained for 90 days

Data retention: Always retain customer data for a minimum of 30-90 days post-cancellation. The ability to reactivate without losing their work is a significant reactivation incentive. Communicate this explicitly: "Your data is safe and waiting for you."

Payment Recovery Benchmarks

MetricTargetNotes
Smart Retry recovery rate15-25% of failed paymentsRecovered without customer action
Card Updater recovery rate5-15%Silent background recovery
Dunning email recovery rate30-40% of remaining failuresAfter retry and updater
Total involuntary churn recovery50-60% of all failed paymentsCombined methods
Recovery rate by Day 770% of eventual recoveries happen within 7 daysFront-load communication urgency

Deliverable

Dunning Sequence: dunning-sequence-{YYYY-MM-DD}.md

  • Retry logic
  • Email sequence (all 6 emails)
  • Grace period policy
  • High-value escalation steps

Supporting file: references/proactive-retention.md

Proactive Retention Capability

The most effective retention happens before the customer ever clicks "Cancel." Identify at-risk customers early, intervene with the right message at the right time, and prevent the cancellation intent from forming in the first place.

Customer Health Scoring

Build a health score for every active account. Assign weights to signals based on their correlation with churn in your specific product. The framework below is a starting point -- calibrate against your own data.

Engagement signals (up to 40 points)

SignalHealthyAt RiskWeight
Login frequencyConsistent with baselineDeclining 30%+ below baseline15 pts
Core feature usageWeekly use of primary featureNo core feature use in 14d15 pts
Session depthUsing 3+ features per sessionSingle-feature sessions only10 pts

Relationship signals (up to 30 points)

SignalHealthyAt RiskWeight
Support ticketsZero or resolved quicklyOpen tickets 7d+10 pts
NPS / CSAT scorePromoter (9-10) or Passive (7-8)Detractor (0-6)10 pts
Customer success engagementRegular check-ins, responsiveNo response to last 2 outreach attempts10 pts

Business signals (up to 30 points)

SignalHealthyAt RiskWeight
Seat/usage expansionGrowing or stableRemoving seats or reducing usage15 pts
Billing contact changeNo changeBilling contact replaced5 pts
Contract statusActive, upcoming renewal confirmedRenewal not confirmed 60d out10 pts

Health score tiers:

TierScore RangeStatusAction
Green70-100HealthyFocus on expansion -- upsell, referral, advocacy
Yellow40-69At-riskTrigger check-in sequence, offer success support
Red0-39High riskImmediate outreach, executive escalation for high-value

Risk Signal Monitoring

Set up automated alerts when any of these signals cross thresholds:

Immediate alerts (trigger outreach within 24 hours)

  • No login in 14 days (product type dependent -- adjust for lower-frequency tools)
  • Support ticket unresolved for 5+ days
  • NPS detractor score submitted
  • Billing contact changed

Weekly monitoring triggers

  • Login frequency declined more than 30% week-over-week for two consecutive weeks
  • Core feature usage dropped to zero in the past 7 days
  • Health score dropped by 20+ points in a single week

30-day trend alerts

  • No team expansion in a multi-seat product that was previously growing
  • Repeated single-session logins (log in, look around, log out -- nothing done)
  • No API activity in an API-dependent integration

Intervention Playbooks

Match the intervention to the health tier and signal type. Escalate effort with score severity.

Yellow tier -- Email-first intervention

Sequence triggered automatically when a customer drops to Yellow:

  • Day 0: Personal email from Customer Success ("Checking in on your [Brand] experience")
  • Day 3: Useful resource relevant to their use case or industry
  • Day 7: Direct offer of a 1:1 session ("30 minutes to unlock more from [Brand]")
  • Day 14: If no engagement, escalate to Red-tier intervention

See ./frameworks/proactive-retention-emails.md for email copy outlines.

Red tier -- Multi-channel intervention

  • Day 0: Personal email from a named CSM or founder (not automated-looking)
  • Day 1: Follow-up in-product message or push notification (if available)
  • Day 2: Phone or video call attempt for accounts above $500 MRR
  • Day 5: Offer a concrete value session (audit their setup, propose improvements)
  • Day 10: Senior team escalation for accounts above $2,000 MRR

Intervention tone principles:

  • Lead with curiosity, not alarm ("I noticed you haven't been in recently -- everything okay?")
  • Offer genuine help before mentioning retention or account status
  • Give the customer agency -- make it easy to reply "I'm done" without friction
  • Track intervention outcomes: how many Yellow accounts return to Green? How many escalate to Red or churn despite intervention?

Onboarding as Retention Foundation

The highest-leverage retention intervention happens in the first 30 days. Customers who reach the "aha moment" (first meaningful result from the product) in week 1 retain at 2-3x the rate of those who do not.

  • Define the single most important activation event for your product (the action most correlated with long-term retention).
  • Build onboarding to drive every new customer to that activation event within 7 days.
  • Monitor activation rate as a leading indicator of future retention.
  • Customers who have not activated by day 14 need immediate human intervention, not more automated emails.

Deliverable

Health Score Framework: health-scoring-{YYYY-MM-DD}.md

  • Score model
  • Signal weights
  • Tier thresholds
  • Alert setup
  • Intervention playbook per tier

Supporting file: references/research-playbook.md

Retention Research Playbook

agent-browser commands for live competitive and benchmark research on cancel flows, dunning patterns, and industry retention data.

Setup: Before running research, check if agent-browser is available (agent-browser --version). If the command is not found, install it: npm install -g agent-browser && npx playwright install chromium. If installation fails, use WebFetch and WebSearch tools as alternatives for all research tasks in this playbook.


1. Competitor Cancel Flow Research

# Examine a competitor's cancellation experience (requires having an account or trial)
agent-browser --session retention-research open "https://{competitor}.com/settings/cancel" && agent-browser wait --load networkidle && agent-browser wait 2000
agent-browser screenshot ./brands/{brand-slug}/analytics/retention/competitor-cancel-flow-{competitor}.png
agent-browser get text body
# Look for: exit survey questions, offer types, pause options, friction tactics, UX tone

2. Industry Cancel Flow Examples (Churnkey Blog & Case Studies)

agent-browser --session retention-research open "https://churnkey.co/blog" && agent-browser wait --load networkidle && agent-browser wait 2000
agent-browser get text body
# Extract: save rates benchmarks, offer types that work by industry, UX best practices

3. Dunning Email Examples & Patterns (Really Good Emails)

agent-browser --session retention-research open "https://reallygoodemails.com/emails/type/dunning" && agent-browser wait --load networkidle && agent-browser wait 3000
agent-browser get text body
# Extract: subject line patterns, tone (urgent vs friendly), CTA patterns, timing notes

4. Retention Benchmark Data (Baremetrics Open Benchmarks)

agent-browser --session retention-research open "https://baremetrics.com/benchmarks" && agent-browser wait --load networkidle && agent-browser wait 3000
agent-browser get text body
# Extract: median churn rates by ARR band, trial conversion rates, MRR growth rates

5. ProsperStack / Churnkey Feature Research

agent-browser --session retention-research open "https://prosperstack.com/features" && agent-browser wait --load networkidle
agent-browser get text body
# Extract: cancel flow capability comparison, pricing signals, integration options

agent-browser --session retention-research open "https://churnkey.co/features" && agent-browser wait --load networkidle
agent-browser get text body

6. Stripe Smart Retries Documentation

agent-browser --session retention-research open "https://stripe.com/docs/billing/revenue-recovery" && agent-browser wait --load networkidle && agent-browser wait 2000
agent-browser get text body
# Extract: Smart Retry logic, card updater, dunning configuration options

Close the research session when done: agent-browser --session retention-research close


Supporting file: references/shared-patterns.md

Shared Skill Patterns

These patterns are referenced by all marketing specialist skills. Read them as part of your operating instructions.

Starting Context Router

Choose the starting mode before doing the work. Brand workspace context is preferred, but do not block progress if the user provides a real codebase or live URL.

Context A — Blank Page / Strategy Work

Use when the user needs strategy, planning, or a fresh roadmap. Read brand and SOSTAC context first when available, then align recommendations to audience, objections, and business goals.

Context B — Existing Local Codebase / Implementation Work

Use when the user wants changes made or specified in an existing repository, site, product, or app. Before proposing changes, deeply research the codebase: inspect the stack, architecture, relevant files, dependencies, and existing patterns. Match existing conventions before changing anything.

Context C — Live Website URL Audit

Use when the user provides a public URL for review. Audit the live experience first. If brand files are missing, use the live page and visible structure as the working source of truth.

Pre-Flight: Read Strategic Context

Before any specialist work, read these files in order when available:

  1. ./brands/{brand-slug}/brand-context.md — brand identity, audience, USP
  2. ./brands/{brand-slug}/product-marketing-context.md — deep positioning, customer language, objections
  3. ./brands/{brand-slug}/sostac/03-strategy.md — target segments, positioning
  4. ./brands/{brand-slug}/sostac/04-tactics.md — channel plan, priorities

If brand files are missing but a codebase or live URL is available, continue with that as the working source of truth rather than blocking progress.

agent-browser Setup

Before running browser-based research, check if agent-browser is available (agent-browser --version). If the command is not found, install it:

# Install the agent-browser skill (recommended)
npx skills add https://github.com/vercel-labs/agent-browser --skill agent-browser

# Or install the CLI directly
npm install -g agent-browser && npx playwright install chromium

If installation fails, use WebFetch and WebSearch tools as alternatives for all research tasks.


Supporting file: references/win-back-campaigns.md

Win-Back Campaigns Capability

Not every churned customer is lost permanently. Customers leave for reasons that change: the budget frees up, the competitor disappoints, their business grows into your product again. A structured win-back programme captures this re-engagement.

Win-Back Segmentation

Do not send the same win-back message to all churned customers. Segment first.

SegmentCriteriaApproach
High-value churnedMRR above $200, churned in last 90 daysPersonal outreach, strong offer, senior team
Price-sensitiveCancelled "too expensive"Pricing change announcement, lower plan, deal
Feature-drivenCancelled "missing feature"Feature launch announcement when the feature ships
DisengagedLow usage before churn, no exit survey responseRe-education, new use case, proof of value
Involuntary recoveredFailed payment, account lapsed without intentSimple reactivation email, no offer needed
Long-lapsed (90d+)Churned more than 90 days agoProduct update angle, major change message

Win-Back Email Sequence (3-email core)

Timing: First win-back email goes out 7-14 days post-cancellation. Sending sooner feels desperate. Sending later misses the window when the brand is still top of mind.

EmailTimingFocusCTA
Email 17-14 days post-cancelWarm check-in + what changed"Take another look"
Email 221-30 days post-cancelSpecific value proof + offer"Come back + incentive"
Email 345-60 days post-cancelLast-chance, feature announcement, or news"Reactivate with [X]"

For high-value churned customers, add a fourth personal outreach (phone or video) between Email 2 and Email 3.

See ./frameworks/win-back-email-sequence.md for full email copy outlines.

Win-Back Offers

Offer TypeBest ForDuration
X months freeDisengaged churners, show value again1-2 months
Discount for Y monthsPrice-sensitive churners3-6 months, then full price
Upgraded plan at current plan priceFeature-driven churners3 months trial
No offer, just newsInvoluntary churners, high-trust segmentsN/A
Product creditE-commerce subscription, physical productOne-time credit

Escalating offers: Start without a discount in Email 1. Add an offer in Email 2. Strengthen or change the offer type in Email 3. Avoid leading with maximum incentive -- it trains customers to churn to get deals.

Win-Back Triggers (Non-Time-Based)

Beyond the standard time-based sequence, trigger win-back outreach on specific events:

  • Feature launch: Email all churned customers who cited "missing feature X" as their reason, when feature X ships. Include a changelog link and direct reactivation CTA.
  • Pricing change: Email churned customers who cited "too expensive" when pricing drops or a lower plan tier launches.
  • Major product update: Annual-style "Here's what's new" email to all churned customers on the product anniversary or after a major version launch.
  • Competitor news (negative): If a major competitor has an outage, price hike, or acquisition, reach out with a timely "The timing might be right" message.

Win-Back Benchmarks

MetricTarget
Win-back rate (0-90 days churned)10-15%
Win-back rate (90-180 days churned)3-8%
Win-back LTV vs new customer LTVWin-back customers retain 20-30% longer (they know the product)
Win-back email open rate25-35% (brand familiarity effect)
Offer acceptance rate15-25% of those who open

Deliverable

Win-Back Campaign: winback-campaign-{YYYY-MM-DD}.md

  • Segment definitions
  • Email sequence (3-4 emails)
  • Offer strategy
  • Event-based trigger plan

How do I install Retention & churn prevention specialist in Cursor, Claude Code, or Codex?

Run npx skills add gnoviawan/agentic-marketing --skill bmad-agent-marketing-retention in the project where you want it, then ask your agent for the skill by name. The --skill flag installs only Retention & churn prevention specialist, not every skill in the repository.

Where does Retention & churn prevention specialist come from and what license is it under?

Retention & churn prevention specialist comes from the gnoviawan/agentic-marketing repository on GitHub. That repository has 30 GitHub stars. No license was detected on the source repository, so check with the author before redistributing it.

Prefer plain text? Read the Retention & churn prevention specialist guide as markdown.