* feat: v2.0 skill renames and CRO consolidation BREAKING CHANGE: Users must reinstall skills after this update. ## Skill Renames (16) - ab-test-setup → ab-testing - analytics-tracking → analytics - aso-audit → aso - competitor-alternatives → competitors - email-sequence → emails - free-tool-strategy → free-tools - launch-strategy → launch - onboarding-cro → onboarding - paywall-upgrade-cro → paywalls - popup-cro → popups - pricing-strategy → pricing - product-marketing-context → product-marketing - referral-program → referrals - schema-markup → schema - signup-flow-cro → signup - social-content → social ## Consolidations (1) - page-cro + form-cro → cro (form content in references/form.md) ## Why 2.0? - Shorter, cleaner skill names - Consistent naming (no -strategy, -setup, -cro suffixes) - All cross-references updated across 100+ files Total skills: 40 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(v2.0): update evals for renamed skills, fix validate script, clear warnings - Update 32 evals.json files to reference new skill names (page-cro → cro, product-marketing-context → product-marketing, etc.) — these were missed in the initial v2.0 rename pass since only SKILL.md and marketplace.json were updated. - Fix validate-skills.sh: replace GNU-only `head -n -1` with portable awk so frontmatter extraction works on macOS. - Move Copy Editing Checklist (56 lines) to references/checklist.md to bring copy-editing SKILL.md under the 500-line limit (508 → 457). - Add "see X" pointers to marketing-psychology description for skill discovery (cro, pricing, copywriting). - Update skill-request.yml issue template placeholder (page-cro → cro). All 40 skills now pass validation with zero warnings. * fix(v2.0): add evals for 8 missing skills, strip stale frontmatter from cro/form.md Adds 48 new eval cases (6 per skill) for skills that previously had no evals: aso, co-marketing, community-marketing, competitor-profiling, directory-submissions, image, lead-magnets, video. All 40 skills now have eval coverage (251 total cases). Strips leftover frontmatter from skills/cro/references/form.md — it was inherited from the old form-cro SKILL.md before consolidation. Reference files don't need frontmatter. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): rename paid-ads → ads One more v2.0 simplification — drops the redundant 'paid-' qualifier. Updates the skill directory, SKILL.md frontmatter, evals.json, README skill table, the v2.0 rename table in VERSIONS.md (now 17 renames), and all cross-references in related skills (ad-creative, aso, competitor-profiling, customer-research, lead-magnets, marketing-ideas) plus the tools/integrations guides. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): bump SKILL.md frontmatter version to 2.0.0 for all 40 skills VERSIONS.md was already updated to 2.0.0 but the metadata.version field inside each SKILL.md was still on 1.x. That mismatch would have caused the update-check flow to perpetually report 'update available' since it compares VERSIONS.md against local SKILL.md metadata versions. Caught by codex review (P1). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): add legacy product-marketing-context.md filename fallback Before this fix, users upgrading from v1.x who had a `product-marketing-context.md` file would lose automatic context loading — every skill only checked the new `product-marketing.md` filename. Now all 40 skills also accept the legacy filename (in either `.agents/` or `.claude/`), and the README migration command covers both legacy and current filenames. Caught by codex review (P1 + P2). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): re-sort README skills table alphabetically, fix ads box width The skills table had a few entries out of alphabetical order from the renames (co-marketing was after cold-email, ads was at the renamed position). Re-sorted alphabetically per sync-skills.js. Also padded the 'ads' cell in the ASCII flow diagram to keep the box width consistent. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix(v2.0): document folder cleanup on upgrade, stop sync-skills from re-adding skills array README upgrade guide now includes: - A clear cleanup step for stale v1.x skill folders (renamed + consolidated) so users don't end up with both old and new folders side-by-side after upgrading - The full v1 to v2 rename map for reference - Existing product-marketing-context.md migration steps (preserved) sync-skills.js no longer (re-)introduces a `skills` array on marketplace.json -- Claude Code's plugin schema discovers skills via the `skills/` directory, and the explicit array was failing validation. The script now refreshes the description count and strips the stale array if present. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
10 KiB
Cancel Flow Patterns
Detailed cancel flow patterns by business type, billing provider, and industry.
Cancel Flow by Business Type
B2C / Self-Serve SaaS
High volume, low touch. The flow must work without human intervention.
Flow structure:
Cancel button → Exit survey (1 question) → Dynamic offer → Confirm → Post-cancel
Characteristics:
- Fully automated, no human in the loop
- Quick — 2-3 screens maximum
- One offer + one fallback, not a menu of options
- Mobile-optimized (significant cancellations on mobile)
- Clear "continue cancelling" at every step
Typical save rate: 20-30%
Example flow for a $29/mo productivity app:
- "What's the main reason?" → 6 options
- Selected "Too expensive" → "Get 25% off for 3 months (save $21.75)"
- Declined → "Or switch to our Starter plan at $12/mo"
- Declined → "We're sorry to see you go. Your access continues until [date]."
B2B / Team Plans
Lower volume, higher stakes. Personal outreach is worth the cost.
Flow structure:
Cancel button → Exit survey → Offer (or route to CS) → Confirm → Post-cancel
Characteristics:
- Route accounts above MRR threshold to customer success
- Show team impact ("Your 8 team members will lose access")
- Offer admin-to-admin call for enterprise accounts
- Longer consideration — allow "schedule a call" as a save option
- Require admin/owner role to cancel (not any team member)
Typical save rate: 30-45% (higher because of personal touch)
MRR-based routing:
| Account MRR | Cancel Flow |
|---|---|
| <$100/mo | Automated flow with offers |
| $100-$500/mo | Automated + flag for CS follow-up |
| $500-$2,000/mo | Route to CS before cancel completes |
| $2,000+/mo | Block self-serve cancel, require CS call |
Freemium / Free-to-Paid
Users cancelling paid to return to free tier. Different psychology — they're not leaving, they're downgrading.
Flow structure:
Cancel button → "Switch to Free?" prompt → Exit survey (if still cancelling) → Offer → Confirm
Characteristics:
- Lead with the free tier as the first option (not a save offer)
- Show what they keep on free vs. what they lose
- The "save" is keeping them on free, not losing them entirely
- Track free-tier users for future re-upgrade campaigns
Cancel Flow by Billing Interval
Monthly Subscribers
- More price-sensitive, shorter commitment
- Discount offers work well (20-30% for 2-3 months)
- Pause is effective (1-2 months)
- Suggest annual plan at a discount as an alternative
Offer priority:
- Discount (if reason = price)
- Pause (if reason = not using / temporary)
- Annual plan switch (if engaged but price-sensitive)
Annual Subscribers
- Higher commitment, often cancelling for stronger reasons
- Prorate refund expectations matter
- Longer save window (they've already paid)
- Personal outreach more justified (higher LTV at stake)
Offer priority:
- Pause remainder of term (if temporary)
- Plan adjustment + credit for next renewal
- Personal outreach from CS
- Partial refund + downgrade (better than full refund + cancel)
Refund handling:
- Offer prorated refund if significant time remaining
- "Pause until renewal" if less than 3 months left
- Be generous — bad refund experiences create vocal detractors
Save Offer Patterns
The Discount Ladder
Don't lead with your biggest discount. Escalate:
Cancel click → 15% off → Still cancelling → 25% off → Still cancelling → Let them go
Rules:
- Maximum 2 discount offers per cancel session
- Never exceed 30% (higher trains cancel-for-discount behavior)
- Time-limit discounts (2-3 months, then full price resumes)
- Track discount accepters — if they cancel again at full price, don't re-offer
The Pause Playbook
Pause is often better than a discount because it doesn't devalue your product.
Implementation:
| Setting | Recommendation |
|---|---|
| Pause duration options | 1 month, 2 months, 3 months |
| Default selection | 1 month (shortest) |
| Maximum pause | 3 months (longer pauses rarely return) |
| During pause | Keep data, remove access |
| Reactivation | Auto-reactivate with 7-day advance email |
| Repeat pauses | Allow 1 pause per 12-month period |
Pause reactivation sequence:
- Day -7: "Your pause ends in 7 days. We've been busy — here's what's new."
- Day -1: "Welcome back tomorrow! Here's what's waiting for you."
- Day 0: "You're back! Here's a quick tour of what's new."
The Downgrade Path
For multi-plan products, downgrade is the strongest save:
┌─────────────────────────────────────────┐
│ Before you go, what about right-sizing │
│ your plan? │
│ │
│ Current: Pro ($49/mo) │
│ │
│ ┌─────────────────────────────────┐ │
│ │ Switch to Starter ($19/mo) │ │
│ │ │ │
│ │ ✓ Keep: Projects, integrations │ │
│ │ ✗ Lose: Advanced analytics, │ │
│ │ team features │ │
│ │ │ │
│ │ [Switch to Starter] │ │
│ └─────────────────────────────────┘ │
│ │
│ [No thanks, continue cancelling] │
└─────────────────────────────────────────┘
Downgrade best practices:
- Show exactly what they keep and what they lose
- Use checkmarks and X marks for scanability
- Preserve their data even on the lower plan
- If they downgrade, don't show upgrade prompts for at least 30 days
The Competitor Switch Handler
When the cancel reason is "switching to competitor":
- Ask which competitor (optional, don't force it)
- Show a comparison if you have one (see competitors skill)
- Offer a migration credit ("We'll match their price for 3 months")
- Request a feedback call ("15 minutes to understand what we're missing")
This data is gold for product and marketing teams.
Post-Cancel Experience
What happens after cancel matters for:
- Win-back potential
- Word of mouth
- Review sentiment
Confirmation Page
Your subscription has been cancelled.
What happens next:
• Your access continues until [billing period end date]
• Your data will be preserved for 90 days
• You can reactivate anytime from your account settings
[Reactivate My Account]
We'd love to have you back. We'll keep improving based on feedback
from customers like you.
Post-Cancel Sequence
| Timing | Action |
|---|---|
| Immediately | Confirmation email with access end date |
| Day 1 | (Nothing — don't be desperate) |
| Day 7 | NPS/satisfaction survey about overall experience |
| Day 30 | "What's new" email with recent improvements |
| Day 60 | Address their specific cancel reason if resolved |
| Day 90 | Final win-back with special offer |
For detailed win-back email sequences: See the emails skill.
Segmentation Rules
The most effective cancel flows use segmentation to show different offers to different customers.
Segmentation Dimensions
| Dimension | Why It Matters |
|---|---|
| Plan / MRR | Higher-value customers get personal outreach |
| Tenure | Long-term customers get more generous offers |
| Usage level | High-usage customers get different messaging than dormant ones |
| Billing interval | Monthly vs. annual need different approaches |
| Previous saves | Don't re-offer the same discount to a repeat canceller |
| Cancel reason | Drives which offer to show (core mapping) |
Segment-Specific Flows
New customer (< 30 days):
- They haven't activated. The save is onboarding, not discounts.
- Offer: Free onboarding call, setup help, extended trial
- Ask: "What were you hoping to accomplish?" (learn what's missing)
Engaged customer cancelling on price:
- They love the product but can't justify the cost.
- Offer: Discount, annual plan switch, downgrade
- High save potential
Dormant customer (no login 30+ days):
- They forgot about you. A discount won't bring them back.
- Offer: Pause subscription, "what changed?" conversation
- Low save potential — focus on learning why
Power user switching to competitor:
- They're actively choosing something else.
- Offer: Competitive match, feedback call, roadmap preview
- Medium save potential — depends on reason
Implementation Checklist
Phase 1: Foundation (Week 1)
- Add cancel flow (survey + 1 offer + confirmation)
- Set up exit survey with 5-7 reason categories
- Map one offer per reason (simple 1:1 mapping)
- Track cancel reasons and save rate in analytics
- Enable pre-dunning card expiry emails
Phase 2: Optimization (Weeks 2-4)
- Add fallback offers (primary + secondary per reason)
- Implement pause subscription option
- Set up dunning email sequence (4 emails over 10 days)
- Enable smart retries (Stripe Smart Retries or equivalent)
- Add MRR-based routing for high-value accounts
Phase 3: Advanced (Month 2+)
- Build health score from usage signals
- Set up proactive intervention triggers
- A/B test discount amounts and offer types
- Segment flows by plan, tenure, and usage
- Post-cancel win-back sequence (coordinate with emails skill)
- Cohort analysis: churn by channel, plan, tenure
Compliance Notes
FTC Click-to-Cancel Rule (US)
- Cancellation must be as easy as signup
- Cannot require a phone call to cancel if signup was online
- Cannot add excessive steps to discourage cancellation
- Save offers are allowed but "continue cancelling" must be clear
GDPR / Data Retention (EU)
- Inform users about data retention period post-cancel
- Offer data export before account deletion
- Honor deletion requests within 30 days
- Don't use post-cancel data for marketing without consent
General Best Practices
- Always show a clear path to complete cancellation
- Never hide the cancel button (dark pattern)
- Process cancellation even if save flow has errors
- Confirm cancellation with email receipt