Stripe Plan Changes Guide 2025: Handle Upgrades & Downgrades
Handle plan changes in Stripe: prorate upgrades and downgrades, track expansion and contraction MRR, and optimize subscription tier migration.

Claire Dunphy
Customer Success Strategist
Claire helps SaaS companies reduce churn and increase customer lifetime value through data-driven customer success strategies.
Based on our analysis of hundreds of SaaS companies, plan changes—upgrades and downgrades—are critical growth levers that many SaaS companies underutilize. Expansion revenue from existing customers accounts for 30-40% of revenue growth at healthy SaaS companies, yet poor plan change experiences create friction that leaves money on the table. On the flip side, downgrades are often a last resort before cancellation; handling them gracefully can preserve relationships that would otherwise churn. Stripe provides flexible tools for managing plan changes, but implementing them correctly requires understanding proration calculations, billing timing, feature access transitions, and the MRR tracking implications. This guide covers everything you need to build a frictionless plan change experience: configuring Stripe's proration options for immediate versus delayed billing, handling feature access during transitions, tracking expansion and contraction MRR accurately, and designing upgrade paths that drive revenue while maintaining customer satisfaction. Companies that master plan changes find they can significantly boost net revenue retention by making it easy for customers to grow with their evolving needs.
Understanding Stripe Plan Change Mechanics
Proration Behavior Options
Stripe offers three proration behaviors: create_prorations (default—credits unused time on old plan, charges for new plan time), none (no proration—old plan continues until period end, then switches), and always_invoice (immediately bills the proration amount rather than adjusting next invoice). Create_prorations is most common for upgrades (customer wants new features now and accepts immediate billing adjustment). None is common for downgrades (customer continues current plan until renewal, then gets lower plan). Always_invoice forces immediate payment rather than credit-debit adjustments on the next invoice—useful when you want to collect immediately on upgrades.
Immediate vs Period-End Changes
Plan changes can take effect immediately or at the next billing period. Immediate changes (proration_behavior: create_prorations or always_invoice) adjust billing right away—the customer gets the new plan now and pays the prorated difference. Period-end changes (proration_behavior: none with billing_cycle_anchor: unchanged) let the subscription continue at its current price until renewal, then switch. Period-end changes are simpler to understand for customers but delay revenue capture. Many SaaS companies use immediate billing for upgrades (capture revenue now) and period-end changes for downgrades (give customers full use of their paid period).
Quantity Changes vs Plan Changes
Stripe treats quantity changes (adding seats) and plan/price changes (switching tiers) similarly for proration purposes, but they have different customer experiences. Quantity increases are typically straightforward—more users, proportionally higher bill. Plan changes involve feature differences that require clearer communication. Some businesses combine both—upgrading from "Pro 5-seat" to "Enterprise 10-seat" involves both a tier change and quantity change. Stripe handles the proration math regardless, but your UI needs to clearly show what's changing and what the new billing amount will be.
Proration Calculation Details
Stripe calculates proration based on days remaining in the billing period. If a customer upgrades from $50/month to $100/month halfway through their billing period, they get a credit for ~$25 (unused portion of $50 plan) and a charge for ~$50 (remaining time on $100 plan), netting to ~$25 additional charge. The exact amounts depend on the specific days remaining and how Stripe handles partial days. For annual plans with mid-cycle changes, prorations can be significant amounts—upgrading a $500/year plan to $1000/year with 6 months remaining creates a ~$250 charge. Preview these amounts for customers before confirming changes using Stripe's upcoming invoice preview.
Preview Before Committing
Always show customers what they'll be charged before confirming a plan change. Use Stripe's upcoming invoice preview API to calculate the exact amount and display it in your upgrade flow.
Implementing Upgrades Effectively
Upgrade Flow Design
The best upgrade flows feel natural and informative. Start with clear plan comparison showing what the customer gets by upgrading—feature differences, limits increases, support level changes. Show the price difference prominently, including any proration (don't surprise them on the invoice). Include testimonials or use cases from customers on higher plans. Make the action button clear ("Upgrade to Pro - $49/month") rather than vague ("Continue"). After confirmation, provide immediate access to new features with onboarding guidance. Send a confirmation email summarizing the change and new billing amount. Every step should reduce uncertainty about what's changing and what it costs.
Immediate Feature Access
When customers upgrade, they expect immediate access to new features. Your system needs to update entitlements in real-time when the Stripe subscription changes. Listen for customer.subscription.updated webhooks and update your application's feature flags or access controls accordingly. If new features require setup (API credentials, integrations, user provisioning), provide clear onboarding for those features. Some companies delay feature access until payment clears for first-time customers, but for existing customers with payment history, immediate access on upgrade is expected and creates a better experience.
Billing Communication
Clear billing communication prevents confusion and support tickets. When confirming upgrade: show the prorated amount charged today (if immediate billing), show the new monthly amount going forward, and show the next billing date. Send an email confirming these details. If proration creates an invoice, ensure the invoice description clearly explains it's a proration charge, not a duplicate subscription charge. For annual to monthly conversions or complex scenarios, consider a dedicated "billing change summary" email that explains exactly what changed and why the amounts are what they are.
Upgrade Triggers and Prompts
Strategic upgrade prompts at the right moment improve conversion. Common triggers: approaching plan limits (storage, users, API calls), using features heavily that are enhanced on higher plans, tenure milestones (after 90 days of successful usage), failed feature attempts (clicking a locked feature), and manual reach-out from sales/success for high-potential accounts. Don't overwhelm customers with upgrade prompts, but do surface them when contextually relevant. "You're at 80% of your user limit. Upgrade to Pro for unlimited users" is helpful; constant banners everywhere are annoying. Track which prompts drive upgrades and refine your approach.
Reduce Upgrade Friction
Every click and uncertainty in your upgrade flow costs you conversions. Test whether reducing steps, adding clearer pricing, or providing chat support during upgrade improves your upgrade rate.
Handling Downgrades Gracefully
Downgrade Flow Design
When a customer initiates a downgrade, understand why before processing. Show what they'll lose by downgrading—specific features, limits, support level. Offer alternatives: Would a pause (subscription freeze) help? Is there a specific problem we can solve? For annual customers, offer to maintain current plan through their paid period before downgrading. If they proceed, confirm the effective date (immediate vs. period end), what happens to their data (especially if the new plan has lower limits), and the new billing amount. Make the process smooth—fighting downgrades with friction just accelerates churn.
Data and Feature Handling
Downgrades create feature access and data limit issues that need clear handling. If the lower plan has fewer seats, what happens to users beyond the limit? (Usually: keep all users but block adding more until under limit). If storage decreases, what happens to existing files? (Usually: keep existing but block new uploads until under limit). If features are removed, what happens to data created with those features? (Ideally: preserve data but hide/disable the feature). Document and communicate these policies clearly. The worst experience is a customer downgrading and finding their data deleted or inaccessible without warning.
Timing and Proration
Most SaaS companies don't prorate downgrades—customers keep their current plan through the paid period, then switch at renewal. This is standard and fair; customers paid for a month/year of service and receive it. Stripe supports this with proration_behavior: none and the change scheduled to take effect at period end. However, if customers strongly request immediate downgrades, consider accommodating with prorated refunds as a retention gesture. Track whether immediate downgrade requests correlate with subsequent churn—if so, being flexible on timing might be wise.
Win-Back Opportunities
Downgrades are information: the customer found the higher plan's value insufficient at its price point. Use this information productively. Ask why they're downgrading (price, features they didn't use, needs changed). Track downgrade reasons for product insights. Consider personalized offers: if they didn't use a specific feature, offer training; if price is the issue, offer a discount to stay; if needs changed, suggest which plan fits better. Monitor downgraded customers for re-upgrade opportunities—if their usage grows, they may be ready to upgrade again. Downgrades aren't endings; they're transitions.
Downgrades Beat Cancellations
A customer paying $49/month is better than a churned customer paying $0. Make downgrades easy enough that customers choose them over cancellation. You can always re-upgrade later.
Tracking Expansion and Contraction MRR
Expansion MRR Calculation
Expansion MRR is the MRR increase from existing customers during a period. Calculate it as: (End-of-period MRR from customers who existed at start of period) - (Start-of-period MRR from those same customers), excluding any who churned. This captures both plan upgrades and quantity increases. Segment expansion by source: tier upgrades, seat additions, add-on purchases. Healthy SaaS companies see expansion MRR of 2-5% of base MRR monthly. If your expansion is lower, investigate upgrade friction, pricing tier gaps, or product value delivery issues.
Contraction MRR Calculation
Contraction MRR is the MRR decrease from customers who remain but pay less. Calculate it similarly to expansion but for decreases: customers who were paying $100 and now pay $50 contributed $50 contraction. Contraction differs from churn—the customer relationship continues. Track contraction by source: tier downgrades, seat removals, discount applications. Some contraction is expected (customer needs change), but high contraction rates (>1% monthly) signal product-market fit issues or price sensitivity. Analyze contraction patterns: do customers downgrade after specific periods, from specific tiers, or citing specific reasons?
Net Revenue Retention
Net Revenue Retention (NRR) combines expansion and contraction with churn: NRR = (Starting MRR + Expansion - Contraction - Churn) / Starting MRR. An NRR of 110% means your existing customer base grows 10% annually without new customers—expansion exceeds losses. Best-in-class SaaS companies achieve 120%+ NRR. Track NRR monthly but evaluate trends quarterly to smooth volatility. NRR below 100% means you're losing existing customer revenue and must acquire new customers just to stay flat. Improving NRR through expansion and retention is often more capital-efficient than increasing acquisition.
Cohort-Level Analysis
Analyze expansion and contraction by customer cohort to understand behavior patterns. Do customers from certain acquisition channels expand more? Do annual customers upgrade at different rates than monthly? Do customers who expand early continue expanding? This analysis informs both product (what drives expansion?) and go-to-market (which customers have highest expansion potential?) decisions. Build cohort reports showing cumulative expansion and contraction over customer lifetime—a healthy pattern shows gradual expansion over time, indicating deepening product value.
NRR Is Valuation Driver
Investors heavily weight Net Revenue Retention when valuing SaaS companies. NRR above 100% demonstrates product-market fit and efficient growth. Track and report NRR alongside MRR and ARR.
Building Plan Change Infrastructure
Entitlement Management
Entitlements define what features and limits each plan includes. Build an entitlement system that: maps Stripe price/product IDs to feature access, updates immediately on plan change (via webhooks), handles edge cases (downgraded but grandfathered, trial with premium features), and provides clear APIs for your application to check access. Store entitlements in a fast-read location (cache or database) since they're checked frequently. When plan changes occur, sync entitlements immediately so customers see their new access level without delay. Consider tools like LaunchDarkly for feature flags if building from scratch is too complex.
Webhook Handling
Plan changes trigger several Stripe webhooks: customer.subscription.updated (subscription changed), invoice.created (new invoice for proration), and invoice.paid/invoice.payment_failed (payment result). Build handlers for each: subscription.updated should sync your internal subscription state and entitlements; invoice.created should update your records with the new invoice; payment events should handle success (confirm upgrade) and failure (possibly revert plan change). Ensure idempotency—webhooks can be delivered multiple times. Store the subscription's current state and detect if webhooks arrive out of order.
Proration Preview API
Before customers confirm plan changes, show them exactly what they'll pay. Use Stripe's invoice preview API: retrieve_upcoming with subscription_items set to the new plan. This returns the projected invoice including all proration calculations. Display this in your upgrade/downgrade UI so customers see "You'll be charged $25.50 today" or "Your next bill on March 1st will be $99" before clicking confirm. This transparency reduces support tickets, disputes, and customer confusion. Build a reusable component that shows billing preview for any plan change scenario.
Self-Service vs Sales-Assisted
Decide which plan changes should be self-service and which require sales involvement. Typical patterns: self-service for upgrades within tier (Starter → Pro), self-service for seat additions, sales-assisted for enterprise tier migrations, sales-assisted for significant downgrades (retention opportunity). Implement appropriate flows for each: self-service needs clear UI, billing preview, and instant processing; sales-assisted needs request forms, CRM integration, and approval workflows. Consider revenue thresholds—changes under $1000 impact might be self-service while larger changes involve sales review.
Test Plan Change Flows
Test every plan change scenario in Stripe test mode before production: upgrade, downgrade, quantity change, mid-cycle change, annual to monthly. Verify webhooks fire correctly and entitlements update properly.
Plan Change Analytics with QuantLedger
Automatic Change Detection
QuantLedger automatically detects and categorizes plan changes from your Stripe subscription events. The platform identifies upgrades (MRR increased), downgrades (MRR decreased), tier migrations (plan changed), and quantity adjustments (seats added/removed). Each change is attributed to the correct month for accurate MRR component tracking. You see plan change activity without manual tagging or classification—the platform handles the categorization automatically based on subscription data.
Expansion and Contraction Tracking
QuantLedger calculates expansion MRR and contraction MRR automatically, giving you the component metrics needed for comprehensive revenue analysis. See expansion trends over time, identify which customers are driving growth, and understand contraction patterns. The platform breaks down expansion by source (plan upgrades, quantity increases) so you know which growth mechanisms are working. This visibility helps you focus expansion efforts on high-potential segments and address contraction drivers.
Net Revenue Retention Dashboard
QuantLedger provides NRR calculation and trending without spreadsheet work. See your monthly and annual NRR, broken down by customer segment, cohort, and plan type. Understand which customer groups have highest NRR (indicating strong expansion and low churn) and which need attention. The platform shows how NRR has changed over time and what's driving changes—whether it's improved expansion, reduced contraction, or lower churn. Use NRR dashboards for board reporting and investor updates.
Plan Change Pattern Analysis
QuantLedger identifies patterns in plan change behavior that inform product and pricing decisions. Which upgrade paths are most common? Do certain customer segments upgrade faster than others? Is there a typical tenure before upgrade? Do downgrades cluster at certain points in the customer lifecycle? This analysis helps optimize your pricing tiers, identify customers ready for upgrade outreach, and detect early warning signs when downgrades spike. Turn plan change data into actionable insights.
See Expansion Opportunities
QuantLedger customers identify expansion opportunities they were missing. Understanding exactly which customers upgraded, when, and why enables targeted outreach that drives incremental expansion revenue.
Frequently Asked Questions
Should I prorate upgrades immediately or wait until the next billing cycle?
For most SaaS businesses, immediate proration on upgrades is best—customers want access to new features now and are willing to pay immediately. Charging immediately also captures revenue sooner and reduces complexity. Use Stripe's proration_behavior: always_invoice to charge the prorated amount right away. Some businesses prefer create_prorations which adds the charge to the next invoice rather than charging immediately—this is smoother if you want to batch charges. The key is consistency and communication: whichever approach you use, clearly show customers what they'll pay and when before they confirm the upgrade.
How should I handle downgrades—immediately or at period end?
Most SaaS companies handle downgrades at period end rather than immediately. The customer has already paid for a month/year of service at the higher tier, so they should receive what they paid for. Set proration_behavior: none and schedule the plan change to take effect at the next billing cycle. This is also simpler for customers to understand. However, if customers specifically request immediate downgrades, consider accommodating with prorated refunds as a goodwill gesture—fighting them on timing often accelerates to cancellation. The exception is usage-based pricing where downgrade should affect billing immediately.
How do I calculate expansion MRR correctly?
Expansion MRR is the MRR increase from existing customers, excluding new customers acquired during the period. Calculate it as: Sum of (current MRR - previous MRR) for all customers who existed at the start of the period AND whose MRR increased. Only include increases; decreases are contraction MRR. Don't include customers who churned (that's churn MRR). Don't include customers who signed up during the period (that's new MRR). The distinction matters because expansion revenue has zero CAC—it comes from customers you already acquired. Track expansion as a percentage of base MRR to understand your growth efficiency.
What happens to data when a customer downgrades to a plan with lower limits?
There are several approaches: Grandfather existing data (customer keeps what they have but can't add more until under new limits)—this is most customer-friendly and common. Archive excess (move data beyond limits to cold storage, accessible but not active)—good for storage-heavy products. Delete oldest (remove data beyond limits starting with oldest)—rarely used, high customer risk. Whichever approach, communicate clearly before the downgrade: "Your Pro plan includes 10GB storage. You currently use 15GB. After downgrading to Basic (5GB limit), you'll keep existing files but won't be able to upload more until you're under 5GB." Never delete data without explicit warning and customer consent.
How can I increase my upgrade conversion rate?
Several tactics improve upgrade conversion: Contextual prompts (prompt upgrade when customers hit limits or try locked features, not randomly), clear value communication (show specific features they'll get, not generic "upgrade for more"), friction reduction (fewer clicks, clearer pricing, instant processing), social proof (show how many customers upgraded, success stories), and urgency without pressure (limited-time discounts work, but constant pressure backfires). A/B test your upgrade flow—small changes like button copy, pricing display, or feature emphasis can significantly impact conversion. Track upgrade rate by prompt type and customer segment to optimize over time.
Should annual subscribers get prorated refunds for mid-year downgrades?
This depends on your business model and customer expectations. Many SaaS companies don't offer mid-year downgrades for annual plans—the discount for annual payment assumes commitment for the full year. Instead, offer: downgrade at renewal (they complete the year on current plan, then downgrade), credit toward lower plan (they get credit for the price difference applied to future months), or case-by-case consideration for special circumstances. If you do offer prorated refunds, clearly document the policy. Consider that customers requesting mid-year downgrades are often on their way to cancellation—a generous policy might preserve the relationship better than strict enforcement.
Key Takeaways
Plan changes—both upgrades and downgrades—are strategic opportunities that directly impact your growth trajectory. Upgrades drive expansion revenue, often accounting for 30-40% of healthy SaaS growth, while well-handled downgrades preserve customer relationships that might otherwise churn entirely. The technical implementation matters: properly configured proration, immediate entitlement updates, and clear billing communication create experiences that encourage upgrades and minimize downgrade friction. Beyond mechanics, tracking expansion and contraction MRR separately reveals the health of your existing customer base and informs pricing, product, and customer success strategies. Companies with high Net Revenue Retention outperform those dependent solely on new customer acquisition. For teams who want comprehensive plan change analytics without building custom infrastructure, QuantLedger provides automatic upgrade/downgrade detection, expansion and contraction MRR calculation, and NRR tracking that turns subscription movement data into actionable growth insights.
Track Plan Changes Automatically
QuantLedger calculates expansion and contraction MRR with automatic plan change detection.
Related Articles

Stripe Subscription Metrics 2025: Churn, LTV & Retention
Track subscription metrics in Stripe: monitor churn rate, LTV, NRR, and subscription health. Essential SaaS subscription analytics guide.

Stripe Billing Optimization 2025: Reduce Failed Payments & Churn
Optimize Stripe billing: improve payment success, reduce declines, and streamline subscription management. Increase billing efficiency by 25%.

Stripe Multi-Currency Guide 2025: Global SaaS Revenue Tracking
Handle multi-currency in Stripe: normalize revenue to base currency, track MRR across currencies, and report consolidated global revenue.