Ghost

How to change Ghost membership prices for existing members

Why Ghost grandfathers current members, and how to re-price them anyway · July 2026

The short version: Ghost only applies a tier price change to new members. Your existing members stay on their old rate. But Ghost stores paid memberships as real Stripe subscriptions in your own Stripe account (it takes 0% and isn't a middleman), so you can re-price your existing members directly in Stripe without canceling anyone. Ghost keeps their access intact at the new price.

Why your existing members didn't get the new price

In Ghost, a tier's price applies to whoever subscribes after you set it. When you raise a tier's price, Ghost spins up new pricing for new signups and leaves everyone already subscribed exactly where they are. It's deliberate (nobody gets a surprise charge), but it also means a price increase never reaches the members you already have. Ghost has no built-in "apply this to current members" control.

The part that unlocks it: those subscriptions are yours

When you connected Stripe to Ghost, you connected your own Stripe account, and Ghost keeps 0% of your membership revenue. Ghost syncs your tiers to Stripe as real products and prices, and each paid member is a native Stripe subscription sitting in your account. Ghost even blocks you from disconnecting Stripe while members are active, because those live subscriptions belong to your account, not Ghost's. Stripe is the billing system of record, and you can edit these subscriptions.

Quick proof: open one paid member's subscription in your Stripe Dashboard and try Update subscription. If Stripe lets you change the price, you own these subscriptions and can re-price all of them.

How to re-price existing Ghost members

A Stripe price is immutable, so you create a new price and move each subscription onto it:

  1. Create the new price on the same product in Stripe.
  2. Update each member's subscription to that price. Set proration_behavior: none so nobody is charged mid-cycle, or schedule it for their next renewal.
stripe.subscriptions.update("sub_123", {
  items: [{ id: "si_123", price: "price_newRate" }],
  proration_behavior: "none",
});

For any real member count, plan for safe batching (small batches, retries on rate limits, pagination, a way to reverse), and run it in Stripe test mode first. (More on proration_behavior and create_prorations if you want the details.)

Does this break Ghost?

In practice, no. Ghost grants membership access based on the Stripe subscription's status, and re-pricing keeps the same subscription and billing date, so members keep their access and simply bill the new amount at renewal. Your Ghost tier settings are separate (they govern what new signups pay), so changing an existing member's subscription in Stripe doesn't touch them. The safe way to confirm it for your setup is to re-price one member first, check they still have access and that the new amount shows on their next invoice, then do the rest. Moving them back to the old price reverses it if anything looks off.

Doing it without a script

Creating a price and looping updates over every member with batching, retries, and a rollback is a script you have to write, test, and babysit. If you'd rather not, PricePilot Migrate Pro does exactly this from the browser: connect with a restricted Stripe key, preview which members change and the MRR impact for free, exclude anyone renewing before a date you pick (or trialing, discounted, or hand-picked), choose your timing, and run it in safe batches with a one-click reverse. It works on native Stripe subscriptions, including the ones Ghost, beehiiv, Paid Memberships Pro, and MemberPress create.

Re-price your Ghost members without the scripting

Preview every affected member and the MRR impact for free, then run it in safe batches with a one-click reverse. Test mode is free end to end.

Open Migrate Pro →

Frequently asked questions

Can I change the price for existing Ghost members?

Not from Ghost (it only re-prices new members), but yes in Stripe, because your Ghost memberships are native Stripe subscriptions in your own account.

Will changing the price in Stripe break my Ghost membership?

No. Access is tied to the Stripe subscription's status, which is unchanged, and your Ghost tier settings (for new signups) are separate. Test on one member first to confirm for your setup.

How do I avoid charging members mid-cycle?

Use proration_behavior: none or schedule the change for the next billing cycle. Both bill the new amount at renewal with no prorated charge now.

Related guides