Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when a customer asks to cancel or signals they're leaving — diagnoses the stated reason first, then matches a save play to that reason up an escalating ladder (fix the root cause, then a capped concession, then one counter-offer, then a clean exit) instead of leading with the biggest discount. Do NOT use for scoring an account's churn risk, summarizing exit-survey themes, or formatting a cancellation email.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 365% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 361% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 365% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 372% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 362% | 0% |
When someone asks to cancel or signals they're churning, the base model tends to do one of two unhelpful things: wave them out with a polite goodbye, or immediately reach for the biggest carrot ("here's 40% off to stay"). Both waste the moment. The discipline is the opposite: name the reason they actually gave, answer that, and climb the ladder one rung at a time — only reaching for money after a root-cause fix has failed, and never opening at the maximum discount.
Read what the customer actually said and classify it into one root cause before proposing anything. Do not put an offer on the table until you have named the reason. If the reason is vague or unstated, ask one open question to surface it — don't guess, and don't discount blindly to a reason you haven't confirmed.
Reason buckets:
This mapping is the core of the skill. Each reason gets a first play that addresses its root cause — which for most reasons is not a discount. Only escalate to the "if that fails" column after the first play is declined.
| Stated reason | First play — address the root cause | Only if that's declined | |---|---|---| | Price / budget | Right-size the plan: downgrade tier, drop unused seats, or switch to annual | A targeted % discount, capped at the tier ceiling | | Value / not using | Re-onboard: book a success call, surface the underused feature that fits their goal | Offer a pause instead of a cancel | | Missing capability | Give the roadmap timeline, a workaround, and log the request | Pause until it ships | | Bug / bad experience | Fix or escalate the actual defect and acknowledge the miss | A service credit for the affected period | | Switching | Ask what the alternative gives them; close the specific gap if it's real | One counter-offer, framed as final | | Involuntary | Pause / hibernate the account, confirm data export, leave the door open | (no discount — the reason isn't price) | | Won't say | Ask one open question to surface the real reason | Graceful exit if they still decline |
The load-bearing rule: a discount only fits a price objection. Discounting a bug complaint or a missing-feature request is a bribe that ignores what the customer told you — fix the cause first. A cheaper price does not fix a broken export or a feature that doesn't exist.
Go up only as far as you need to, and never skip a rung:
Never open at rung 2 or 3. Never present two discounts back to back — a second concession right after the first teaches customers that pushing always pays, and it trains your whole base to threaten to leave.
Concessions are capped. Do not exceed these without a human approver:
An involuntary reason (company closed, project ended) never gets a discount at any tier — offer a pause or a data export instead, because price was never the problem.
If nothing lands, cancel without friction: confirm the effective date, state what happens to their data and how to export it, thank them plainly, and leave a specific way back in. A clean exit protects the brand and your win-back odds. A guilt trip, or a dark-pattern hurdle that makes leaving hard, does neither — it just guarantees they never return and tell others why.
Other measured skills in the registry, with their headline benchmark lift.