13

From Stripe's documentation under updating a user's subscription plan:

By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a $10 plan, she'll be billed $10 immediately. If she then switches to a $20 plan on May 15, on June 1 she'll be billed $25 ($20 for a renewal of her subscription and a $5 prorating adjustment for the previous month).

Shouldn't the charge on June 1st be $30; $20 for the renewal and $10 (half of $20 because half of May) for the previous month? Did Stripe get their calculations confused, or am I dead wrong on how prorating works?

Sam
  • 6,414
  • 11
  • 46
  • 61
  • 6
    This question appears to be off-topic because it is about a company's policy, not their API. – AShelly Nov 11 '13 at 21:43
  • However, If they paid $10 for May in the beginning of May, then changed to a $20 plan halfway through the month, then they still owe $5 for the 2nd half of May when the June billing is processed. – AShelly Nov 11 '13 at 21:45
  • 4
    Right, I just figured this out too. The prorate amount is calculated by subtracting half of the previous month's plan (which is $10/2 = $5) from half of the new plan (which is $20/2 = $10); $10 - $5 = $5 prorate adjustment. I'd say this post should be kept for others to see, incase they trip up on the math in the same way that I did. – Sam Nov 11 '13 at 21:49
  • 1
    `(new_plan - old_plan)*(days_since_switch/days_in_last_month)` – AShelly Nov 11 '13 at 22:12
  • @sam thank you for making this question! :clap::clap: – Adriano Tadao May 23 '19 at 13:28

1 Answers1

12

Another way to look at it is:

For the two months the customer should pay

$5 for May 1 to 15
+ $10 for May 16 to 31
+ $20 for June
= $35 total
- $10 already paid
= $25
Eli Algranti
  • 8,707
  • 2
  • 42
  • 50