Sales & RevenueAdvanced
Subscription Management System
SaaS subscription lifecycle management - billing, upgrades, downgrades, churn prevention, and revenue optimization
#subscription#billing#saas#churn#revenue
CLAUDE.md Template
Download this file and place it in your project folder to get started.
# Subscription Management
Comprehensive SaaS subscription lifecycle management including billing operations, upgrade/downgrade flows, churn prevention strategies, and revenue optimization.
## Overview
This workflow covers:
- Subscription lifecycle management
- Pricing and packaging strategies
- Upgrade/downgrade workflows
- Churn prevention automation
- Billing operations and dunning
---
## Subscription Lifecycle
### Lifecycle Stages
```
┌─────────────────────────────────────────────────────────────────┐
│ SUBSCRIPTION LIFECYCLE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Trial ──▶ Conversion ──▶ Active ──▶ Expansion ──▶ Renewal │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ [Drop] [Churn] [Downgrade] [Churn] [Churn] │
│ │ │ │
│ ▼ ▼ │
│ [Win-back] ◀──────────── [Win-back] │
│ │
└─────────────────────────────────────────────────────────────────┘
```
### Stage Definitions
```yaml
lifecycle_stages:
trial:
duration: 14_days
goal: activation + conversion
key_metrics:
- trial_starts
- activation_rate
- trial_to_paid_conversion
automation:
- onboarding_emails
- in_app_guidance
- sales_touch (if qualified)
active:
goal: value_delivery + expansion
key_metrics:
- feature_adoption
- nps_score
- expansion_revenue
automation:
- health_scoring
- usage_alerts
- upsell_triggers
at_risk:
trigger: health_score < 40 OR usage_drop > 50%
goal: retention
key_metrics:
- save_rate
- churn_reason
automation:
- csm_alert
- retention_offer
- executive_escalation
churned:
goal: win_back
key_metrics:
- reactivation_rate
- time_to_reactivate
automation:
- exit_survey
- win_back_campaigns
- competitive_monitoring
```
---
## Pricing & Packaging
### Pricing Strategy Template
```yaml
pricing_tiers:
starter:
price: $29/month
billing: monthly or annual (2 months free)
target: solopreneurs, small teams
limits:
users: 5
storage: 10GB
features: core_only
positioning: "Get started"
professional:
price: $79/month
billing: monthly or annual
target: growing teams
limits:
users: 25
storage: 100GB
features: core + advanced
positioning: "Most popular"
highlight: true
business:
price: $199/month
billing: monthly or annual
target: scaling companies
limits:
users: unlimited
storage: 500GB
features: all + priority_support
positioning: "For growth"
enterprise:
price: custom
billing: annual only
target: large organizations
limits:
users: unlimited
storage: unlimited
features: all + sso + api + sla
positioning: "Contact sales"
add_ons:
- extra_storage: $10/50GB
- api_access: $50/month
- priority_support: $100/month
- dedicated_csm: $500/month
```
### Value Metrics
```yaml
value_metric_options:
per_seat:
charge: per_active_user
pros: predictable, aligns with growth
cons: may limit adoption
best_for: collaboration tools
usage_based:
charge: per_api_call, per_GB, per_transaction
pros: low barrier, scales with value
cons: unpredictable revenue
best_for: infrastructure, APIs
feature_tiered:
charge: based_on_features_used
pros: clear upsell path
cons: may feel restrictive
best_for: software with distinct use cases
hybrid:
charge: base_fee + usage_overage
pros: predictable base + upside
cons: complex to explain
best_for: mature products
```
---
## Upgrade/Downgrade Flows
### Upgrade Automation
```yaml
upgrade_triggers:
usage_based:
- trigger: approaching_user_limit (80%)
action:
- in_app_notification: "You're almost at your limit"
- email: upgrade_suggestion
- if_ignored: soft_limit_warning
- trigger: feature_blocked (tried advanced feature)
action:
- in_app_modal: feature_preview + upgrade_cta
- track: feature_interest
- trigger: consistent_overage (3+ months)
action:
- csm_outreach: proactive_upgrade_discussion
behavior_based:
- trigger: power_user_behavior
condition: >5h/week usage AND >10 team members invited
action:
- flag_as: expansion_opportunity
- assign: csm_for_outreach
time_based:
- trigger: 90_days_on_same_plan
action:
- email: "Are you getting the most out of {Product}?"
- include: feature_comparison
upgrade_flow:
steps:
1. show_comparison: current_vs_recommended
2. highlight_value: features_they've_tried_to_use
3. offer_discount: if_annual (optional)
4. prorate_billing: charge_difference_immediately
5. unlock_features: immediately
6. send_confirmation: email + in_app
7. trigger_onboarding: for_new_features
```
### Downgrade Prevention
```yaml
downgrade_flow:
steps:
1. intercept_request:
show: "Before you go..."
offer:
- pause_subscription: 1-3_months
- discount: 20%_for_3_months
- free_month: if_annual
2. collect_reason:
options:
- too_expensive
- not_using_features
- switching_to_competitor
- company_downsizing
- temporary_pause
3. tailored_response:
too_expensive:
- offer: lower_tier_suggestion
- show: cost_per_user_value
not_using_features:
- offer: training_session
- show: quick_wins_tutorial
switching_to_competitor:
- ask: which_competitor
- offer: competitive_discount
- flag: for_win_back_later
4. if_proceeds:
- schedule_downgrade: end_of_billing_cycle
- preserve_data: for_potential_return
- send_survey: detailed_feedback
5. track:
- reason
- offers_presented
- offers_accepted/declined
- revenue_impact
```
---
## Churn Prevention
### Health Scoring
```yaml
customer_health_score:
components:
product_usage: 40%
signals:
- daily_active_users: vs_licensed_seats
- feature_adoption: core_features_used
- login_frequency: weekly_active
- depth_of_use: actions_per_session
engagement: 30%
signals:
- email_opens: last_30_days
- support_sentiment: positive_vs_negative
- nps_score: latest
- community_participation: if_applicable
relationship: 20%
signals:
- csm_touchpoints: recent_calls
- executive_sponsor: identified
- contract_length: multi_year_bonus
financial: 10%
signals:
- payment_history: on_time_payments
- expansion_history: upgrades_vs_downgrades
- invoice_disputes: count
scoring:
90-100: healthy (green)
70-89: stable (yellow)
40-69: at_risk (orange)
0-39: critical (red)
automation:
critical:
- immediate: csm_alert + call_scheduled
- if_no_response: manager_escalation
at_risk:
- same_day: csm_notification
- action: health_check_call
stable:
- weekly: review_in_team_meeting
healthy:
- monthly: expansion_opportunity_review
```
### Dunning Management
```yaml
dunning_sequence:
payment_failed:
day_0:
- retry_payment: automatic
- email: "Payment failed - please update"
- in_app: banner_notification
day_3:
- retry_payment: automatic
- email: "Action needed: Update payment"
- include: direct_update_link
day_7:
- retry_payment: automatic
- email: "Your account is at risk"
- sms: if_enabled
- downgrade_warning: true
day_14:
- final_retry: automatic
- email: "Final notice before suspension"
- csm_call: for_high_value_accounts
day_21:
- suspend_account: read_only_access
- email: "Account suspended"
- preserve_data: 90_days
day_90:
- delete_data: after_warning
- final_email: account_closure
recovery_metrics:
track:
- involuntary_churn_rate
- recovery_rate_by_day
- avg_days_to_recovery
- revenue_recovered
```
---
## Revenue Operations
### Billing Automation
```yaml
billing_operations:
invoice_generation:
timing: 7_days_before_renewal
include:
- usage_summary
- upcoming_charges
- payment_method
proration:
upgrades: charge_immediately (prorated)
downgrades: credit_at_next_billing
mid_cycle_changes: calculate_daily
discounts:
types:
- percentage: 10%, 20%, 30%
- fixed: $X off
- free_months: 1-3 months
controls:
- approval_required: >30%
- expiration: always_set
- one_per_customer: unless_approved
revenue_recognition:
method: ratable
timing: monthly
deferred_revenue: track_separately
```
### Reporting Dashboard
```markdown
# Subscription Metrics Dashboard
## MRR Summary
| Metric | Value | MoM Change |
|--------|-------|------------|
| Total MRR | $500K | +8% |
| New MRR | $50K | +15% |
| Expansion MRR | $30K | +12% |
| Churn MRR | $20K | -5% |
| Net New MRR | $60K | +20% |
## Subscription Health
| Tier | Customers | MRR | Avg Health |
|------|-----------|-----|------------|
| Enterprise | 50 | $200K | 85 |
| Business | 150 | $180K | 78 |
| Professional | 400 | $100K | 72 |
| Starter | 800 | $20K | 65 |
## At-Risk Accounts (Action Needed)
| Company | MRR | Health | Risk Reason |
|---------|-----|--------|-------------|
| Acme Co | $5K | 35 | Usage drop 60% |
| Tech Inc | $3K | 42 | Payment failed |
| StartupX | $2K | 38 | No login 30 days |
## Churn Analysis
- Voluntary: 1.5% (target: <2%) ✅
- Involuntary: 0.8% (target: <1%) ✅
- Top reason: Price (35%)
- Save rate: 25%
```
---
## Output Example
**Request**: "Create a churn prevention workflow for a SaaS product"
**Output**:
```markdown
# Churn Prevention Workflow
## Early Warning System
### Health Score Triggers
```yaml
triggers:
critical_alert: # Health < 40
- immediate: slack_alert_to_csm
- same_day: schedule_call
- email: "We noticed you haven't logged in..."
- offer: free_training_session
usage_drop: # >50% decrease
- email: "Everything okay?"
- in_app: help_resources
- csm_task: check_in_call
support_escalation: # Negative sentiment
- flag: at_risk
- csm_notification: with_context
- executive_apology: if_major_issue
```
## Intervention Playbook
### Scenario: Low Usage
```
Day 1: Automated email
"Hi {name}, we noticed {Product} usage is down.
Everything okay? Here are 3 quick wins to get value fast:"
Day 3: In-app message
"Need help? Book a free 15-min session with our team."
Day 7: CSM call
Agenda: Understand blockers, offer solutions
Day 14: Manager escalation
If no response, escalate internally
```
### Scenario: Payment Failed
```
Hour 0: Retry payment automatically
Hour 1: Email with update link
Day 3: Second email + SMS
Day 7: CSM call for high-value accounts
Day 14: Final warning
Day 21: Suspend (preserve data 90 days)
```
### Save Offer Matrix
| Churn Reason | Offer |
|--------------|-------|
| Too expensive | 20% off 3 months |
| Not using | Free training + pause option |
| Competitor | Match pricing + migration help |
| Downsizing | Downgrade to lower tier |
| Temporary | Pause 1-3 months free |
## Metrics to Track
- Save rate: Target >25%
- Time to intervention: <24h for critical
- Churn reason distribution
- Offer acceptance rate
- Recovered revenue
```
---
*Subscription Management Workflow - Part of Claude Code*README.md
What This Does
Comprehensive SaaS subscription lifecycle management including billing operations, upgrade/downgrade flows, churn prevention strategies, and revenue optimization.
Quick Start
Step 1: Create a Project Folder
mkdir -p ~/Documents/SubscriptionManagement
Step 2: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/SubscriptionManagement/
Step 3: Start Working
cd ~/Documents/SubscriptionManagement
claude