How to charge upgrade deltas immediately and defer plan changes to period end in a credit system?

Post author
Nathan Roberton

Hi all! đź‘‹

I’m building a credit-based service (Audible-style). Plans grant fixed credits immediately (Starter 10, Pro 20, Max 40), so time-based proration on upgrades/downgrades doesn’t fit.

Downgrades/Cancels
I believe this is covered by setting cancellation to PeriodEnd (no mid-cycle refunds) article here.

Question: is there a way to make downgrades behave the same (take effect at period end, no proration/refund)?

Upgrades (mid-cycle)
Desired behavior (credit model):

  • Charge the full price delta now (no time proration).
  1. Starter ($29.99) → Pro ($49.99) = $20.00
  2. Pro ($49.99) → Max ($79.50) = $29.51
  3. Starter → Max = $49.51
  • Award only the credit delta now (+10, +20, +30 respectively).
  • Keep the billing anchor and switch the plan at period end (next cycle has the new plan’s full credits).

If there isn’t a native “no-prorate upgrade” toggle, what’s the recommended Memberstack/Stripe setup to achieve this? For example: disable proration on the subscription change and add a one-time invoice item for the price delta now—so we can award the credit delta immediately.

Alternate I can support if that’s simpler: charge the full new plan now, issue full credits now, and reset the billing anchor to today (but I’d prefer the delta-charge pattern if possible).

Thanks! Any pointers to specific Memberstack settings or a Stripe approach you endorse would be amazing. 🙏

Comments

2 comments

  • Comment author
    A J

    Hey Nathan Roberton,

    I believe the option to disable prorations while upgrading via Memberstack is in wishlist currently.

    I was exploring the Stripe Settings --> Billing --> Customer Portal --> Subscriptions. There seems to be an option to select the behavior when a customer switches plans as shown in the screenshot below.

    I am wondering if setting it to 'Charge or credit the full difference' might work for upgrades use-case provided that it respects your setting of cancel at period end as well.

    You can enable the setting and test how upgrades & downgrades are behaving to see if it fits for your project.

    Hope this gives you some idea.

    0
  • Comment author
    Nathan Roberton

    Thanks, I'm checking these settings out now.

    0

Please sign in to leave a comment.