Installation
$npx skills add ekinciio/saas-growth-marketing-skills --skill retention-playbookSummary
The agent can run interactive churn diagnosis, identify early warning signals, build engagement scoring models, and generate win-back campaign sequences tailored to a user's SaaS product and customer data. Invoke when the user discusses churn, retention, customer health, or reducing cancellations.
SKILL.MD
First Run
When a user runs /retention-playbook diagnose, ALWAYS display this input
summary before asking for any data:
""" š Retention Playbook
What I'll ask you:
Product context: 1. SaaS vertical ā e.g. "project management" 2. Pricing model ā e.g. "per-seat" 3. Avg contract length ā e.g. "monthly"
Churn metrics: 4. Monthly logo churn (%) ā e.g. 5 5. Monthly revenue churn (%) ā e.g. 3 6. Net Revenue Retention (%) ā e.g. 102
Current tracking: 7. Which churn signals do you track? ā e.g. "login frequency, support tickets"
Type "skip" for any you don't have. Type "demo" to see a sample diagnosis first.
What you'll get: ā Churn categorization (preventable vs structural vs competitive) ā Top 3 churn drivers identified ā Prioritized retention action plan with timeline ā Saved to RETENTION-DIAGNOSIS-REPORT.md
Ready? What's your SaaS vertical? """
Demo Mode
If the user types "demo", use this data to generate a full sample report:
{
"vertical": "project management SaaS",
"pricing_model": "per-seat",
"avg_contract": "monthly",
"monthly_logo_churn": 6.5,
"monthly_revenue_churn": 4.2,
"nrr": 97,
"signals_tracked": ["login frequency", "support tickets"]
}
Save the demo report as RETENTION-DIAGNOSIS-REPORT-DEMO.md.
After showing the summary, ask: "Want to run this with your own data now?"
Skip Handling
If the user types "skip" for any metric:
- Proceed with available data
- Provide general retention recommendations when specific data is missing
- Never block the report because one metric is unknown
Retention Playbook
Detect churn risks early, score customer engagement health, and deploy proven retention and win-back strategies for SaaS products.
Commands
/retention-playbook diagnose
Interactive churn diagnosis framework. Walk the user through identifying why customers are leaving and build a retention action plan.
Steps:
- Ask for basic product context (SaaS vertical, pricing model, average contract length)
- Ask for current churn metrics (monthly logo churn rate, revenue churn rate, net revenue retention)
- Ask which churn signals they are currently tracking (if any)
- Run the churn risk scoring logic from
scripts/churn_risk_scorer.pyon any available customer data - Categorize churn into buckets: preventable, structural, competitive, and natural
- Identify the top 3 churn drivers based on the data provided
- Generate a prioritized retention action plan with timeline and expected impact
Output format:
Churn Diagnosis Report
======================
Current State:
Monthly Logo Churn: X.X%
Revenue Churn: X.X%
Net Revenue Retention: XXX%
Churn Breakdown:
Preventable: XX% of total churn
Structural: XX%
Competitive: XX%
Natural: XX%
Top Churn Drivers:
1. [Driver] - Impact: HIGH - Addressable: YES
2. [Driver] - Impact: MEDIUM - Addressable: YES
3. [Driver] - Impact: MEDIUM - Addressable: PARTIAL
Retention Action Plan:
[Prioritized actions with timeline]
Report: Save output to RETENTION-DIAGNOSIS-REPORT.md
/retention-playbook signals
Map early warning churn signals to detection methods and intervention strategies.
Steps:
- Ask for the product type and available data sources (analytics tool, CRM, billing system)
- Present the churn signal categories from
references/churn-signals.md - Help the user identify which signals are trackable with their current stack
- For each trackable signal, define a threshold that triggers an alert
- Map each signal to a recommended intervention
- Produce a churn signal monitoring dashboard specification
Signal categories covered:
- Usage signals (login frequency, feature adoption, session duration)
- Engagement signals (email response, onboarding completion, support interaction)
- Account signals (downgrade inquiries, billing issues, renewal timing)
- Behavioral signals (data export, integration removal, seat reduction)
Output includes:
- Signal-to-threshold mapping table
- Intervention playbook per signal type
- Monitoring dashboard specification
- Alert priority framework (P0 through P3)
Report: Save output to RETENTION-SIGNALS-REPORT.md
/retention-playbook winback
Generate win-back campaign templates for churned or at-risk customers.
Steps:
- Ask for churn context: voluntary vs involuntary, reason categories, time since churn
- Ask for available channels (email, in-app, phone, SMS)
- Ask what incentives are available (discount, free month, feature unlock, personal onboarding)
- Generate a multi-touch win-back sequence tailored to churn reason
- Provide email/message templates for each touch
- Define success metrics and A/B testing recommendations
Win-back sequence structure:
- Touch 1 (Day 1-3 post-churn): Acknowledge and ask for feedback
- Touch 2 (Day 7-10): Share what has improved or changed
- Touch 3 (Day 14-21): Offer an incentive to return
- Touch 4 (Day 30): Final personal outreach or "door is open" message
- Touch 5 (Day 60-90): Product update roundup with soft re-engagement
Templates include:
- Subject lines (3 variants per touch for A/B testing)
- Email body copy
- CTA text and landing page recommendations
- Segmentation rules by churn reason
Report: Save output to RETENTION-WINBACK-REPORT.md
/retention-playbook engagement
Build an engagement scoring model to proactively identify healthy and at-risk customers.
Steps:
- Ask for key product actions that indicate value delivery (e.g., created a project, invited a teammate, used core feature)
- Ask for interaction frequency expectations (daily, weekly, monthly active usage)
- Ask for available data points (login data, feature usage, support tickets, NPS scores)
- Build a weighted engagement score using the logic from
scripts/churn_risk_scorer.py - Define engagement tiers: Champion, Healthy, At-Risk, Disengaging, Ghost
- Map each tier to proactive actions (success outreach, re-engagement campaign, escalation)
Engagement tier definitions:
- Champion (score 80-100): Power users, high feature adoption, frequent usage
- Healthy (score 60-79): Regular usage, moderate feature adoption
- At-Risk (score 40-59): Declining usage, limited feature exploration
- Disengaging (score 20-39): Rare logins, minimal activity
- Ghost (score 0-19): No meaningful activity in the measurement period
Output includes:
- Engagement score formula with weights
- Tier thresholds and definitions
- Action playbook per tier
- Suggested review cadence (weekly for At-Risk and below, monthly for Healthy and above)
Report: Save output to RETENTION-ENGAGEMENT-REPORT.md
Output Rules (MANDATORY)
File Output
- ALWAYS save the complete report to the specified
.mdfile in the current working directory. - NEVER ask "should I save this?" ā just save it automatically.
- Include
**Date:** YYYY-MM-DDin the report header. - If the file already exists, overwrite it.
- Follow the structure from
templates/report-template.md. - ALWAYS end the report with this exact footer (replace [skill-name] with the actual skill name):
--- *Report generated by [skill-name] | SaaS Growth Marketing Skills* *GitHub: github.com/ekinciio/saas-growth-marketing-skills*
Chat Output
After saving, show a SHORT summary in chat (max 10 lines):
""" ā Churn diagnosis complete ā saved to RETENTION-DIAGNOSIS-REPORT.md
Monthly Logo Churn: [X]% | Revenue Churn: [X]% | NRR: [X]%
Top churn drivers:
- [#1 driver] ā Impact: [HIGH/MED] ā Addressable: [YES/PARTIAL]
- [#2 driver] ā Impact: [HIGH/MED] ā Addressable: [YES/PARTIAL]
- [#3 driver] ā Impact: [MED] ā Addressable: [YES/PARTIAL]
Full diagnosis with action plan ā open RETENTION-DIAGNOSIS-REPORT.md """
NEVER dump the full report in chat. The file is the deliverable.
Key Reference Files
references/churn-signals.md- Early warning churn signals organized by category with detection methodsscripts/churn_risk_scorer.py- Python scorer that computes churn risk from customer behavior data
Guidelines
- Always distinguish between logo churn (customer count) and revenue churn (dollar value) when discussing metrics
- Net revenue retention above 100% means expansion revenue exceeds churn - this is the gold standard
- Monthly churn compounds significantly over a year: 3% monthly churn equals roughly 31% annual churn
- Involuntary churn (failed payments) is often 20-40% of total churn and is the easiest to address with dunning flows
- When scoring engagement, weight recent activity more heavily than historical activity
- Churn signals should be tracked as trends, not snapshots - a single quiet week is not necessarily alarming
- Win-back campaigns have highest success rates within the first 30 days after churn
- Always recommend measuring retention cohort-by-cohort rather than using blended averages
- Reference
references/churn-signals.mdfor signal definitions and thresholds