Something went wrong!
Hang in there while we get back on track
Analytics + Payment Recovery: Dual-Track Analysis
A growing SaaS with both analytics data and payment failures. Demonstrates behavioral pattern analysis with PostHog, at-risk customer detection, combined with dunning optimization for a comprehensive retention strategy.
Input
What you provide to the skill
Email automation tool, $12K MRR, 200 customers, 7% monthly churn. We have Stripe plus PostHog analytics. About 40% of our churn is payment failures. We want to understand the rest.
Output
What the skill generates for you
CHURN ANALYSIS FRAMEWORK
SITUATION ASSESSMENT
Your Current State:
- Product: Email automation tool
- MRR: $12K across 200 customers (~$60 average customer)
- Monthly churn: 7% (14 customers/month)
- Data available: Stripe + PostHog analytics
- Known factor: 40% of churn is payment failures
Churn Breakdown:
- Total monthly churn: 14 customers (7%)
- Involuntary (payment failures): ~6 customers (40%)
- Voluntary (chose to cancel): ~8 customers (60%)
Industry Benchmark Comparison:
Your 7% monthly churn vs. 3-5% B2C SaaS benchmark: ELEVATED
This indicates two problems:
- Payment failure recovery needs optimization (6 customers/month is high)
- Value delivery issue causing voluntary churn (8 customers/month)
Revenue Impact:
- Monthly MRR lost: ~$840 (14 customers × $60)
- Annual MRR churn: ~$10,080
- Recoverable through interventions: Est. $250-400/month
ANALYSIS FRAMEWORK
Given your data access (Stripe + PostHog), you’ll use a dual-track approach:
Track 1: Behavioral Pattern Analysis (voluntary churn)
Track 2: Payment Failure Recovery System (involuntary churn)
TRACK 1: BEHAVIORAL PATTERN ANALYSIS
Data Export Requirements
From Stripe (last 90 days of churned customers):
- Customer ID, Email, Signup date, Cancellation date
- Days as customer, MRR at cancellation, Plan type
From PostHog (for the same customers):
- Customer ID, Total events logged
- Login count (total, final 30 days, final 14 days)
- Core feature usage: “email_sent” events (final 30 days)
- Core feature usage: “campaign_created” events (final 30 days)
- Last active date
Analysis Spreadsheet Template
| Customer ID | Days Active | Last Login Days Ago | Final 30d Logins | Final 30d Emails Sent | Churn Pattern |
|---|---|---|---|---|---|
| cust_001 | 22 | 15 | 1 | 3 | Early churn - never activated |
| cust_002 | 120 | 25 | 0 | 0 | Engagement dropoff |
| cust_003 | 45 | 2 | 18 | 150 | Active but cancelled (investigate!) |
Pattern Signals to Identify
Early Churn (< 30 days active):
- Root cause: Onboarding failure or targeting mismatch
- Prevalence estimate: 20-30% of voluntary churn
- Intervention: Improve activation, refine marketing message
Engagement Dropoff:
- Signal: Used to send 50+ emails/week, down to 0-5 in final month
- Root cause: Product stopped delivering value OR life circumstances changed
- Prevalence estimate: 30-40% of voluntary churn
- Intervention: Re-engagement campaigns at first sign of decline
Never Activated:
- Signal: < 10 emails sent total, < 5 logins
- Root cause: Didn’t understand product, wrong expectations
- Prevalence estimate: 25-35% of voluntary churn
- Intervention: Onboarding overhaul, better positioning
Exit Survey Design
Send within 24 hours of voluntary cancellation:
Subject: Quick question about [Product]
Hi [Name],
I noticed you cancelled your [Product] subscription. As the founder, I'd really value understanding what happened - your feedback directly shapes what I build.
Would you mind sharing why you decided to cancel? Just reply to this email.
Common reasons I've heard:
- Not using it enough to justify the cost
- Found a different solution
- Missing features I needed
- Too complicated to set up
- Didn't do what I expected
Thanks,
[Your Name]
TRACK 2: PAYMENT FAILURE RECOVERY SYSTEM
Current State Analysis
Your involuntary churn:
- 6 payment failures/month = 3% of your total customer base
- Likely current recovery rate: 15-20% (Stripe default)
- Customers actually lost: ~5/month after retries
- MRR lost: ~$300/month ($3,600 annually)
Opportunity:
Optimize to 50-60% recovery rate = save 2-3 more customers/month = $120-180 additional MRR saved monthly
Stripe Dunning Optimization
Step 1: Enable Smart Retries
- Go to Stripe Dashboard → Settings → Billing → Subscriptions
- Toggle ON “Smart Retries”
Step 2: Configure Custom Retry Schedule
- Day 0: Immediate retry (automatic)
- Day 3: Second attempt (mid-morning)
- Day 5: Third attempt
- Day 7: Fourth attempt
- Day 10: Final retry before cancellation
Step 3: Custom Dunning Email Sequence
EMAIL 1 - Immediate (Day 0):
Subject: Action needed: Payment issue for [Product]
Hi [Name],
We tried to charge your card for your [Product] subscription, but the payment didn't go through.
→ Update your payment method here: [Stripe Customer Portal Link]
Your account stays active for 10 days while we sort this out, so your email campaigns won't be interrupted.
Thanks,
[Your name]
EMAIL 2 - Reminder (Day 3):
Subject: Quick reminder: Payment method needs updating
Hey [Name],
Just following up - we still weren't able to process your payment for [Product].
To keep your account active and avoid losing access to your:
- Email campaigns and automation
- Contact lists and segments
- Analytics and reports
→ Update your card here: [Link]
Best,
[Your name]
EMAIL 3 - Urgent (Day 6):
Subject: [Name], your [Product] account will be paused in 4 days
Hi [Name],
Your payment method still isn't working, and your account will be paused in 4 days.
If your card expired or needs updating, you can fix it here in 30 seconds: [Link]
If something else is going on - budget constraints, not using the product enough - let me know. I'd rather work something out than lose you over a billing issue.
Thanks,
[Your name]
EMAIL 4 - Final Warning (Day 9):
Subject: Final notice: Your [Product] account pauses tomorrow
[Name],
Tomorrow your [Product] account will be paused and you'll lose access to:
- Your [X] active email campaigns
- Your [Y] contacts and segments
- Your automation workflows
If this is a card issue, update it now: [Link]
Best,
[Your name]
PRE-CHURN INTERVENTION STRATEGY
At-Risk Customer Detection (PostHog)
Since you have PostHog analytics, set up automated alerts for these high-risk signals:
Critical engagement drop:
- Zero logins in 14 days (for previously active user)
- Zero “email_sent” events in 7 days (for user who used to send daily/weekly)
- 70%+ drop in weekly activity vs. their historical average
PostHog Implementation:
- Create cohort: “At-Risk - Disengaged”
- Filters: Last active > 14 days ago AND previous 30d had 5+ logins
- Export weekly or set up webhook to email you the list
- Manual outreach to these customers
At-Risk Intervention Email Sequence
EMAIL 1 - Personal Check-In (Day 14 of inactivity):
Subject: Haven't seen you in [Product] lately
Hi [Name],
I noticed you haven't logged into [Product] in a couple weeks. Just wanted to check in - is everything okay?
If you're stuck on anything or have questions, I'd love to help - just reply to this email.
Best,
[Your name]
EMAIL 2 - Offer Help (Day 18 of inactivity):
Subject: Quick offer for you
Hey [Name],
If you're too busy to use [Product] right now, I can pause your subscription for a month (no charge) until you're ready to dive back in. Your campaigns and data stay safe.
Or if there's something I can help you set up, just let me know.
[Your name]
EMAIL 3 - Last Outreach (Day 23 of inactivity):
Subject: Before you go...
Hi [Name],
I haven't heard back, so I'm guessing [Product] might not be working out. Before you cancel, would you consider:
1. **Free month** - Give it another try on me
2. **Quick call** - 15 minutes to help you get more value
3. **Share feedback** - Tell me what didn't work
[Your name]
Expected Results:
- 20-30% of at-risk accounts re-engage
- 10-15% accept pause instead of cancel
- Net impact: 0.5-1.0 percentage point churn reduction
IMPLEMENTATION CHECKLIST
Week 1: Data Collection & Analysis
- Export Stripe data for all churned customers (last 90 days)
- Export PostHog behavioral data for same customers
- Complete churn categorization spreadsheet (voluntary vs. involuntary)
- Analyze behavioral patterns using template above
- Send exit surveys to last month’s voluntary churns (8 customers)
- Set up tracking dashboard
Week 2: Intervention Design
- Review exit survey responses (if any returned - expect 2-3)
- Identify top 2 voluntary churn patterns from behavioral analysis
- Draft payment failure email sequence (4 emails)
- Draft at-risk intervention sequence (3 emails)
- Enable Stripe Smart Retries
- Configure custom retry schedule in Stripe
Week 3: Implementation
- Implement automated exit survey (trigger on cancellation)
- Launch custom dunning email sequence
- Set up card expiration reminder system
- Create PostHog cohort for “At-Risk - Disengaged” customers
- Send first batch of at-risk intervention emails
- Schedule weekly churn review meeting (30 min)
EXPECTED IMPACT (90-DAY TIMELINE)
Baseline (Current State)
- Monthly churn: 7% (14 customers, $840 MRR lost)
- Voluntary: 8 customers ($480)
- Involuntary: 6 customers ($360)
Target (After Interventions)
Payment Failure Recovery Optimization:
- Current recovery: ~20% (1 customer saved)
- Optimized recovery: 50% (3 customers saved)
- Impact: Reduce involuntary churn from 6 to 4 customers/month = -1.0% total churn
At-Risk Interventions:
- At-risk pool: ~12 customers/month showing disengagement
- Intervention success: 25% re-engage
- Impact: Save 3 customers/month = -1.5% total churn
Projected Results (Month 3)
| Metric | Current | Target | Improvement |
|---|---|---|---|
| Monthly churn rate | 7.0% | 4.0-5.0% | -2.0 to -3.0% |
| Customers churned | 14 | 8-10 | 4-6 saved |
| MRR saved monthly | - | $240-360 | - |
| Annualized MRR saved | - | $2,880-4,320 | - |
ROI Calculation:
- Investment: 12-15 hours setup + 2-3 hours/week ongoing
- Return: $240-360/month = $2,880-4,320/year
- Payback period: Immediate (first recovered customers = positive ROI)
START HERE: Enable Stripe Smart Retries today (5 minutes), then block 2 hours this week to export your churn data and create the behavioral analysis spreadsheet.
About This Skill
Systematic framework for indie SaaS founders to understand why customers churn, identify pre-churn behavioral signals, and implement data-driven retention interventions.
View Skill DetailsMore Examples
Early-Stage Critical Churn: Diagnosis Framework
A new SaaS with critically high churn and limited data. Demonstrates stage-appropriate diagnosis, activation audit, founder outreach strategies, and conservative/optimistic outcome modeling.
Stripe-Only Data: Understanding Unknown Churn
A SaaS founder with basic Stripe data who doesn't understand why customers are leaving. Demonstrates exit survey design, churn categorization, payment failure recovery, and implementation planning for limited-data situations.