How to handle Stripe subscription upgrade billing dates: Why doesn't MS2.0 reset the renewal cycle like MS1.0 did? Answered

Post author
Alastair Budge

Has the way these worked changed from MS1.0 to MS2.0?

I’m 99% sure the billing date used to reset, but now it doesn’t.

e.g. customer subscribes on Jan 1st to an annual subscription at 100 USD/year, then on 1st July (half-way through the year, let’s say), upgrades to a 200 USD/year subscription.

If I’m correct, the customer will be charged an additional 50 USD for 1 July - 31 Dec, taking into account the -50 USD “remaining” and then adding the extra +100 USD for the new subscription. And then the customer will be billed 200 USD on Jan 1st at renewal. No change in renewal date.

But I think in MS1.0 it used to work differently, i.e.

Customer signs up on Jan 1st to 100 USD/year, upgrades to 200 USD/year on July 1st, pays 150 USD on July 1st (-50 to remaining time + 200 for new sub), then the billing cycle is changed to July 1st-Jun 30th.

Is this correct?

What would you expect to happen? If the 2nd option, does anyone know how to change this in Stripe? I couldn’t find a setting….

Comments

6 comments

  • Comment author
    Al Mazlin

    I would expect it to behave as the first option, and I feel like that’s how it behaved in 1.0 as well, but maybe I just wasn’t paying attention.

    If you wanted something like the second option, you could do a prorated refund of the first membership and just start a brand new membership. Not sure if you can get Stripe to make that first refund a “credit” to apply to the new membership.

    I’m assuming you’ve seen all these options under “update subscription” for a customer? I’m not sure of the magic combo to make things happen (or how to automate it), but it might be there.

    0
  • Comment author
    Alastair Budge

    OK phew, glad you thought it worked like that too Aletta.

    I saw that you can do it on a “per invoice” basis, but I’m looking to change global settings so that this happens for every customer. I just started a Black Friday promo and saw that a load of people on a lower plan were able to get it for “free” or very small cost because the promo credit and the time remaining was greater than the difference in subscription cost…

    0
  • Comment author
    Al Mazlin

    Yeah, nah, the second way wouldn’t make any sense, because they’d be getting 1.5 years for the price of 1 year. If the world makes sense at all, it’s the first way.
    That must be some super Black Friday promo you’ve got there!

    0
  • Comment author
    Alastair Budge

    You mean the first way, e.g. billing date not resetting?

    My Black Friday promo is like this:

    plan 1: €79.99/year
    plan 2: €119.88/year

    Promo: get plan 2 for the price of plan 1, so it applies a discount of €39.89 to the first year.

    I sent the promo email to a lot of users on plan 1, assuming that they would be charged €119.88 - 39.89 - [pro-rata time remaining], and the billing date would reset to the day they made the change, so they’d get a year from then. In other words, if plan 1 started 364.9 days ago, they would be charged €79.99, if it started 0.1 days ago they would be charged practically €0.

    What actually happened (I think) is they were charged (119.88 x [days remaining on plan 1 / 365] - 39.89 (credit) - [pro-rata time remaining].

    In other words, everyone who upgrades from plan 1 to plan 2 with this offer will get it for free. It’s not such a massive tragedy, as they’ll essentially get a “free trial” of plan 2, but it really isn’t what I expected to happen…

    NB: this only happens when switching from one annual plan to another annual; monthly to annual the behaviour is as expected.

    0
  • Comment author
    Al Mazlin

    Yup. That’s what I would expect. But damn. Can you quickly switch it to “new customers only”?

    0
  • Comment author
    Alastair Budge

    Hmm, it’s a bit of a tricky one. I think I’ll just not promote it any more to current customers….

    0

Please sign in to leave a comment.