Preview

What it is.
You split your churn into voluntary and involuntary and name your billing provider. It then designs the cancel flow, the exit survey, save offers that branch on the reason given, and a dunning sequence for failed payments.
Recovered payments need no persuasion, only retries and a good email, which is why the involuntary half is usually the cheaper win. Save offers get tied to your activation metric, so you stop discounting for people who never reached value.
What you get.
- A cancel flow design, in place of a button that cancels on the first click
- Save offers that vary by the cancellation reason given
- A dunning and failed-payment recovery sequence
- An exit survey structure that produces reasons you can act on
- An early-warning read that keys off engagement drop-off, well before the cancel page
How to set it up.
Install with npx skills add coreyhaines31/marketingskills --skill churn-prevention -a claude-code.
Split your churn number into voluntary and involuntary before anything else. If you cannot, that is the first task.
Name your billing provider. Stripe, Chargebee, Paddle, Recurly and Braintree each change what a dunning sequence can do.
Say whether you support pausing or downgrades, because both are save offers that cost you less than a discount.
Give it your activation metric, so save offers are only aimed at customers who reached value.
Design the cancel flow before the save offer. An instant cancel button has nowhere to put an offer.
Pricing Plans
Free. MIT license.
Checked against the repo in July 2026.
Use cases
Splitting an unsplit churn number
You have one blended churn rate. Bring the raw cancellations and it separates the customers who decided to leave from the cards that failed, and the involuntary half is usually the cheaper work.
Dunning for failed cards
Name your billing provider and hand over the churn caused by failed payments. It designs the retry timing and recovery emails around what that provider supports, and recovered payments need no persuasion.
Cancel flow with branching offers
Cancel is currently one click. It designs the flow and the exit survey together, then writes save offers that branch on the reason a customer gives.
Stopping wasted discounts
Give it your activation metric alongside the churn data. Save offers get aimed at customers who reached value, so nobody gets a discount for a product they never set up.
Best for
A churn number nobody has split
The voluntary and involuntary split usually reveals that a chunk of the problem is billing instead of product.
Designing a cancel flow from scratch
If cancel is currently one click, this gives you the flow, the survey and the offer logic in one pass.
B2C or prosumer subscriptions
Failed payments hit harder at low price points and high volume, which is where the dunning work pays back fastest.