Short answer
Stripe grandfathers existing subscribers automatically: a new price only applies to new subscriptions. Keeping legacy pricing forever is simple but costs more every time you raise prices. Most businesses do better with a time-boxed grandfather period (say, 6–12 months), followed by a notified migration of the legacy cohort to current pricing.
When a grandfather period ends, the Change Subscription Price App moves that cohort to current pricing in one job, with no prorations.
Change Subscription Price App — by FinriteUpdate a price across all your Stripe subscriptions from the dashboard, in bulk. Built by former Stripe Billing product managers and engineers.
View on Stripe MarketplaceWhat grandfathering costs you
Every price increase leaves a cohort on the old price. After three increases you have four price tiers for the same product, and your oldest, most loyal customers pay the least. None of it shows up on a dashboard. It shows up as ARPU that won't move however much you raise the list price.
It also makes operations harder. Support has to know which customer sees which price, and every future change has more legacy cases to handle.
When grandfathering is the right call
- Early adopters and founding members you explicitly promised a price to. Keep that promise.
- Contracted customers whose terms fix the price until renewal. Their contract decides, not you.
- Small increases on a small base, where the extra revenue isn't worth the notice email.
- A new tier that isn't comparable (new features, new limits), where moving people means changing what they get, not only what they pay.
When to migrate legacy customers
- The legacy price is well below what new customers pay for the same thing.
- Your costs per customer have grown (infrastructure, payment fees, support).
- Legacy customers are a large share of your base, so their pricing effectively is your pricing.
A playbook that keeps churn low
- Segment first. Tag each customer who stays grandfathered with Stripe metadata so they can't be migrated by accident.
- Announce early. 30–60 days out, with the new amount, the date, and one sentence on why.
- Offer a way out that isn't cancelling. A cheaper plan, or a discounted annual prepay at the current price.
- Migrate with no prorations, so the new amount starts at each customer's next renewal. Why that matters.
- Measure churn for the migrated cohort against a baseline over the next 60–90 days.
Migrate a legacy cohort with the Change Subscription Price App
- Target just that cohort. Filter to the customers whose grace period is ending.
- Schedule it for the end of the grace period, the date in your notice email.
- No surprise charges. No prorations, and quantities and discounts stay as they are.
- A clean record of who moved, for measuring churn afterwards.
Change Subscription Price App — by FinriteUpdate a price across all your Stripe subscriptions from the dashboard, in bulk. Built by former Stripe Billing product managers and engineers.
View on Stripe MarketplaceIf you publish through Substack, beehiiv or Ghost, grandfathering works a little differently because the platform created your Stripe prices. The platform guides cover what's safe to change.
Frequently asked questions
Does Stripe grandfather existing customers automatically?
Yes. Existing subscriptions keep the price they were created with until you update them, so when you raise prices, everyone already subscribed is grandfathered by default.
How do I grandfather only some customers in Stripe?
Migrate everyone except the group you want to protect. Filter them out by metadata, creation date or plan, or tag them with metadata such as legacy_pricing=true before the migration and exclude that tag.
Is it better to grandfather permanently or for a set period?
A fixed grace period, such as 6 or 12 months at the old price, usually works better than permanent grandfathering. Customers get a reward and time to plan, and you don't end up with a growing tail of prices that are years out of date.
Will raising prices on existing customers cause churn?
Some, usually concentrated among customers who were already disengaged. Clear notice, a real reason, and an alternative such as a cheaper plan or an annual lock-in keep it lower than most teams expect. Measure churn by cohort for 60 to 90 days after the change.
Related guides
When grandfathering ends, move them in one job
Filter to the cohort that's moving, set the new price, and schedule the change for the end of their grace period.
Install from the Stripe App MarketplaceRead the app user guide first · Questions? contact@finrite.co