Subscription Lifecycle: Trial, Churn, Win-back skill
When the user wants to optimize their subscription business end-to-end — from trial start through renewal, cancellation, and win-back.
by appeeky·MIT license·★ 2,152 Stars on the repo·GitHub ↗
npx degit appeeky/aso-skills/skills/subscription-lifecycle#main ~/.claude/skills/subscription-lifecycleChecked ·commit main
Files of Subscription Lifecycle: Trial, Churn, Win-back
Show the full text207 lines
Subscription Lifecycle
You optimize every stage of the subscription journey: trial → paid → renewal → cancellation recovery → win-back.
The Subscription Lifecycle
Install → Trial start → [Trial period] → Conversion → Renewal → ... → Cancel → Win-back
↓ ↓ ↓ ↓
No convert Voluntary Involuntary Lapsed
(nurture) (exit survey) (dunning) (campaign)
Key Metrics at Each Stage
| Stage | Metric | Formula | Benchmark |
|---|---|---|---|
| Trial | Trial start rate | Trials / Downloads | > 20% |
| Trial | Trial-to-paid | Conversions / Trials | 25–40% strong |
| Retention | Month 1 renewal | M1 renewals / Subscribers | > 70% |
| Retention | Month 6 renewal | M6 renewals / Subscribers | > 50% |
| Churn | Monthly churn | Lost subs / Start subs | < 5% good; < 2% excellent |
| Revenue | MRR | Active subs × monthly price | — |
| Revenue | LTV | ARPU / Monthly churn rate | — |
| Recovery | Dunning recovery | Recovered / Failed payments | > 30% |
| Win-back | Resubscribe rate | Returns / Lapsed | 5–15% |
Stage 1 — Trial Optimization
Trial Length
| App Type | Recommended trial | Notes |
|---|---|---|
| Simple utility | 3–7 days | Value obvious quickly |
| Health/fitness | 7–14 days | Habit formation needs time |
| Productivity | 7–14 days | Workflow integration |
| Education | 7–14 days | First lesson completion |
| Entertainment | 7 days | Binge behavior |
Test: Monthly apps with a 7-day trial vs. 14-day trial — conversion rate may drop slightly but LTV often increases.
Trial Nurture Sequence
Send in-app (or push) messages during the trial to drive activation:
Day 0: Welcome — "Your trial has started. Here's how to get the most from it."
Day 1: Core feature highlight — "Try [key feature] today"
Day 3: Progress / social proof — "Users who do X get 3× better results"
Day 5 (7-day trial): Urgency — "2 days left in your trial"
Day 6: Value recap — "Here's what you've done / could do with premium"
Day 7: Last day — "Your trial ends today"
Rule: Messages should show value, not just create pressure.
Trial End — Conversion Moment
At trial end, show a paywall that:
- Recaps what the user achieved during the trial
- Shows the most-used premium features
- Offers 3 plan options (monthly / annual / lifetime if applicable)
- Highlights savings on annual ("Save 40%")
See monetization-strategy for paywall design details.
Stage 2 — Reducing Voluntary Churn
Why Users Cancel (and How to Fix It)
| Reason | Signal | Fix |
|---|---|---|
| Forgot they subscribed | Low sessions, no activation | Improve onboarding + notification strategy |
| Not enough value | Low feature usage | Push underused high-value features |
| Too expensive | Price sensitivity | Introduce lower-tier or pause option |
| Problem with app | 1-star reviews | Fix the bug, reply to reviews |
| Found alternative | — | Monitor competitor installs |
| Seasonal use | Churns at same time yearly | Offer a pause option |
The Cancellation Flow
When a user initiates cancellation (iOS — ManagedSubscriptionGroup):
- Offer a pause before full cancel: "Pause for 1–3 months instead of cancelling"
- Show value recap: "You've used [feature] X times this month"
- Offer a discount: Only as last resort — 20–30% off for 3 months
- Exit survey: Always ask "Why are you cancelling?" (1 tap, not an essay)
Cancellation exit survey options:
- Too expensive
- Not using it enough
- Missing a feature I need
- Switching to a competitor
- Technical issues
- Just taking a break
Engagement Signals to Watch
Users at high churn risk:
- Sessions < 1 per week (down from higher baseline)
- Core feature not used in 14+ days
- Push notifications disabled
- Last session > 7 days ago
Trigger a re-engagement push or in-app message before they cancel.
Stage 3 — Involuntary Churn (Failed Payments)
Involuntary churn accounts for 20–40% of all subscription cancellations.
Dunning Strategy
| Day | Action |
|---|---|
| 0 | Payment fails silently — Apple/Google retry |
| 3 | Apple/Google retry #2 |
| 7 | Apple/Google retry #3 — show in-app "Update payment method" banner |
| 10 | Send push: "Your subscription couldn't be renewed — tap to update" |
| 14 | Grace period ends — subscription suspended |
| 15 | Final in-app message: "Reactivate to keep access" |
Grace period:
- iOS: 6 days (configurable up to 16 in App Store Connect)
- Android: 3 days (configurable)
Maximize grace period length — every extra day recovers more subscribers.
RevenueCat Integration
RevenueCat handles dunning automatically. Key settings:
- Enable Billing Retry (iOS) / Account Hold (Android)
- Configure grace period to maximum allowed
- Use RevenueCat webhooks to trigger in-app messaging at each failure event
See revenuecat.md integration guide.
Stage 4 — Win-Back Campaigns
Target lapsed subscribers (cancelled or expired in last 30–90 days).
Win-Back Offer Ladder
Start with the softest offer; escalate only if no response:
Week 1 after lapse: "We miss you" — highlight new features added since they left
Week 3: "Come back for 30% off your first month back"
Week 6: "3 months at 50% off — best offer we'll make"
Week 12+: Archive — low conversion probability
Win-Back Channels
| Channel | How |
|---|---|
| Push notification | In-app if app still installed |
| If email was collected | |
| Apple Win-Back Offer | Native iOS win-back offer in StoreKit 2 |
| Paid retargeting | Meta/Google retargeting to lapsed subscriber list |
StoreKit 2 Win-Back Offers (iOS 18+)
Apple natively supports win-back subscription offers for lapsed subscribers:
- Set up in App Store Connect → Subscriptions → Win-Back Offers
- Presented automatically in the App Store to eligible lapsed users
- No additional code needed beyond StoreKit 2 integration
Output Format
Subscription Health Report
Lifecycle Metrics ([period]):
Trial start rate: [X]% (benchmark: >20%)
Trial conversion: [X]% (benchmark: 25-40%)
M1 renewal: [X]% (benchmark: >70%)
Monthly churn: [X]% (benchmark: <5%)
Dunning recovery: [X]% (benchmark: >30%)
Win-back rate: [X]% (benchmark: 5-15%)
LTV (estimated): $[N]
MRR: $[N]
Top issues:
1. [Stage] — [metric] is [X]% vs benchmark [Y]% — [recommended fix]
2. [Stage] — [metric] is [X]% vs benchmark [Y]% — [recommended fix]
Priority action:
[Single highest-leverage change to implement this week]
Related Skills
monetization-strategy— Paywall design, pricing tiers, trial setupretention-optimization— Engagement strategy to reduce voluntary churnapp-analytics— Track the metrics above with Firebase + RevenueCatonboarding-optimization— Fix early-stage drop-off that prevents trial startsrating-prompt-strategy— Satisfied subscribers are your best raters
| 1 | |
| 2 | name subscription-lifecycle |
| 3 | description When the user wants to optimize their subscription business end-to-end — from trial start through renewal, cancellation, and win-back. Use when the user mentions "subscription lifecycle", "trial conversion", "churn", "cancellation", "win-back", "lapsed subscribers", "dunning", "billing retry", "grace period", "renewal rate", "subscriber LTV", or "resubscribe". For paywall design and pricing strategy, see monetization-strategy. For subscription analytics dashboards, see app-analytics. |
| 4 | metadata |
| 5 | version 1.0.0 |
| 6 | |
| 7 | |
| 8 | # Subscription Lifecycle |
| 9 | |
| 10 | You optimize every stage of the subscription journey: trial → paid → renewal → cancellation recovery → win-back. |
| 11 | |
| 12 | ## The Subscription Lifecycle |
| 13 | |
| 14 | |
| 15 | Install → Trial start → [Trial period] → Conversion → Renewal → ... → Cancel → Win-back |
| 16 | ↓ ↓ ↓ ↓ |
| 17 | No convert Voluntary Involuntary Lapsed |
| 18 | (nurture) (exit survey) (dunning) (campaign) |
| 19 | |
| 20 | |
| 21 | ## Key Metrics at Each Stage |
| 22 | |
| 23 | | Stage | Metric | Formula | Benchmark | |
| 24 | |-------|--------|---------|-----------| |
| 25 | | Trial | Trial start rate | Trials / Downloads | > 20% | |
| 26 | | Trial | Trial-to-paid | Conversions / Trials | 25–40% strong | |
| 27 | | Retention | Month 1 renewal | M1 renewals / Subscribers | > 70% | |
| 28 | | Retention | Month 6 renewal | M6 renewals / Subscribers | > 50% | |
| 29 | | Churn | Monthly churn | Lost subs / Start subs | < 5% good; < 2% excellent | |
| 30 | | Revenue | MRR | Active subs × monthly price | — | |
| 31 | | Revenue | LTV | ARPU / Monthly churn rate | — | |
| 32 | | Recovery | Dunning recovery | Recovered / Failed payments | > 30% | |
| 33 | | Win-back | Resubscribe rate | Returns / Lapsed | 5–15% | |
| 34 | |
| 35 | ## Stage 1 — Trial Optimization |
| 36 | |
| 37 | ### Trial Length |
| 38 | |
| 39 | | App Type | Recommended trial | Notes | |
| 40 | |----------|------------------|-------| |
| 41 | | Simple utility | 3–7 days | Value obvious quickly | |
| 42 | | Health/fitness | 7–14 days | Habit formation needs time | |
| 43 | | Productivity | 7–14 days | Workflow integration | |
| 44 | | Education | 7–14 days | First lesson completion | |
| 45 | | Entertainment | 7 days | Binge behavior | |
| 46 | |
| 47 | **Test:** Monthly apps with a 7-day trial vs. 14-day trial — conversion rate may drop slightly but LTV often increases. |
| 48 | |
| 49 | ### Trial Nurture Sequence |
| 50 | |
| 51 | Send in-app (or push) messages during the trial to drive activation: |
| 52 | |
| 53 | |
| 54 | Day 0: Welcome — "Your trial has started. Here's how to get the most from it." |
| 55 | Day 1: Core feature highlight — "Try [key feature] today" |
| 56 | Day 3: Progress / social proof — "Users who do X get 3× better results" |
| 57 | Day 5 (7-day trial): Urgency — "2 days left in your trial" |
| 58 | Day 6: Value recap — "Here's what you've done / could do with premium" |
| 59 | Day 7: Last day — "Your trial ends today" |
| 60 | |
| 61 | |
| 62 | **Rule:** Messages should show value, not just create pressure. |
| 63 | |
| 64 | ### Trial End — Conversion Moment |
| 65 | |
| 66 | At trial end, show a paywall that: |
| 67 | Recaps what the user achieved during the trial |
| 68 | Shows the most-used premium features |
| 69 | Offers 3 plan options (monthly / annual / lifetime if applicable) |
| 70 | Highlights savings on annual ("Save 40%") |
| 71 | |
| 72 | See `monetization-strategy` for paywall design details. |
| 73 | |
| 74 | ## Stage 2 — Reducing Voluntary Churn |
| 75 | |
| 76 | ### Why Users Cancel (and How to Fix It) |
| 77 | |
| 78 | | Reason | Signal | Fix | |
| 79 | |--------|--------|-----| |
| 80 | | Forgot they subscribed | Low sessions, no activation | Improve onboarding + notification strategy | |
| 81 | | Not enough value | Low feature usage | Push underused high-value features | |
| 82 | | Too expensive | Price sensitivity | Introduce lower-tier or pause option | |
| 83 | | Problem with app | 1-star reviews | Fix the bug, reply to reviews | |
| 84 | | Found alternative | — | Monitor competitor installs | |
| 85 | | Seasonal use | Churns at same time yearly | Offer a pause option | |
| 86 | |
| 87 | ### The Cancellation Flow |
| 88 | |
| 89 | When a user initiates cancellation (iOS — `ManagedSubscriptionGroup`): |
| 90 | |
| 91 | **Offer a pause** before full cancel: "Pause for 1–3 months instead of cancelling" |
| 92 | **Show value recap**: "You've used [feature] X times this month" |
| 93 | **Offer a discount**: Only as last resort — 20–30% off for 3 months |
| 94 | **Exit survey**: Always ask "Why are you cancelling?" (1 tap, not an essay) |
| 95 | |
| 96 | **Cancellation exit survey options:** |
| 97 | Too expensive |
| 98 | Not using it enough |
| 99 | Missing a feature I need |
| 100 | Switching to a competitor |
| 101 | Technical issues |
| 102 | Just taking a break |
| 103 | |
| 104 | ### Engagement Signals to Watch |
| 105 | |
| 106 | Users at high churn risk: |
| 107 | Sessions < 1 per week (down from higher baseline) |
| 108 | Core feature not used in 14+ days |
| 109 | Push notifications disabled |
| 110 | Last session > 7 days ago |
| 111 | |
| 112 | Trigger a re-engagement push or in-app message before they cancel. |
| 113 | |
| 114 | ## Stage 3 — Involuntary Churn (Failed Payments) |
| 115 | |
| 116 | Involuntary churn accounts for **20–40%** of all subscription cancellations. |
| 117 | |
| 118 | ### Dunning Strategy |
| 119 | |
| 120 | | Day | Action | |
| 121 | |-----|--------| |
| 122 | | 0 | Payment fails silently — Apple/Google retry | |
| 123 | | 3 | Apple/Google retry #2 | |
| 124 | | 7 | Apple/Google retry #3 — show in-app "Update payment method" banner | |
| 125 | | 10 | Send push: "Your subscription couldn't be renewed — tap to update" | |
| 126 | | 14 | Grace period ends — subscription suspended | |
| 127 | | 15 | Final in-app message: "Reactivate to keep access" | |
| 128 | |
| 129 | **Grace period:** |
| 130 | iOS: 6 days (configurable up to 16 in App Store Connect) |
| 131 | Android: 3 days (configurable) |
| 132 | |
| 133 | Maximize grace period length — every extra day recovers more subscribers. |
| 134 | |
| 135 | ### RevenueCat Integration |
| 136 | |
| 137 | RevenueCat handles dunning automatically. Key settings: |
| 138 | Enable Billing Retry (iOS) / Account Hold (Android) |
| 139 | Configure grace period to maximum allowed |
| 140 | Use RevenueCat webhooks to trigger in-app messaging at each failure event |
| 141 | |
| 142 | See `revenuecat.md` integration guide. |
| 143 | |
| 144 | ## Stage 4 — Win-Back Campaigns |
| 145 | |
| 146 | Target lapsed subscribers (cancelled or expired in last 30–90 days). |
| 147 | |
| 148 | ### Win-Back Offer Ladder |
| 149 | |
| 150 | Start with the softest offer; escalate only if no response: |
| 151 | |
| 152 | |
| 153 | Week 1 after lapse: "We miss you" — highlight new features added since they left |
| 154 | Week 3: "Come back for 30% off your first month back" |
| 155 | Week 6: "3 months at 50% off — best offer we'll make" |
| 156 | Week 12+: Archive — low conversion probability |
| 157 | |
| 158 | |
| 159 | ### Win-Back Channels |
| 160 | |
| 161 | | Channel | How | |
| 162 | |---------|-----| |
| 163 | | Push notification | In-app if app still installed | |
| 164 | | Email | If email was collected | |
| 165 | | Apple Win-Back Offer | Native iOS win-back offer in StoreKit 2 | |
| 166 | | Paid retargeting | Meta/Google retargeting to lapsed subscriber list | |
| 167 | |
| 168 | ### StoreKit 2 Win-Back Offers (iOS 18+) |
| 169 | |
| 170 | Apple natively supports win-back subscription offers for lapsed subscribers: |
| 171 | Set up in App Store Connect → Subscriptions → Win-Back Offers |
| 172 | Presented automatically in the App Store to eligible lapsed users |
| 173 | No additional code needed beyond StoreKit 2 integration |
| 174 | |
| 175 | ## Output Format |
| 176 | |
| 177 | ### Subscription Health Report |
| 178 | |
| 179 | |
| 180 | Lifecycle Metrics ([period]): |
| 181 | |
| 182 | Trial start rate: [X]% (benchmark: >20%) |
| 183 | Trial conversion: [X]% (benchmark: 25-40%) |
| 184 | M1 renewal: [X]% (benchmark: >70%) |
| 185 | Monthly churn: [X]% (benchmark: <5%) |
| 186 | Dunning recovery: [X]% (benchmark: >30%) |
| 187 | Win-back rate: [X]% (benchmark: 5-15%) |
| 188 | |
| 189 | LTV (estimated): $[N] |
| 190 | MRR: $[N] |
| 191 | |
| 192 | Top issues: |
| 193 | 1. [Stage] — [metric] is [X]% vs benchmark [Y]% — [recommended fix] |
| 194 | 2. [Stage] — [metric] is [X]% vs benchmark [Y]% — [recommended fix] |
| 195 | |
| 196 | Priority action: |
| 197 | [Single highest-leverage change to implement this week] |
| 198 | |
| 199 | |
| 200 | ## Related Skills |
| 201 | |
| 202 | `monetization-strategy` — Paywall design, pricing tiers, trial setup |
| 203 | `retention-optimization` — Engagement strategy to reduce voluntary churn |
| 204 | `app-analytics` — Track the metrics above with Firebase + RevenueCat |
| 205 | `onboarding-optimization` — Fix early-stage drop-off that prevents trial starts |
| 206 | `rating-prompt-strategy` — Satisfied subscribers are your best raters |
| 207 |
Discussion
Alternatives
Browse more free Claude skills or everything in Customer support.