SUBSCRIPTION PRORATION CALCULATOR · RUNS IN YOUR BROWSER · NOTHING UPLOADED

What does a customer owe after a mid-cycle upgrade, downgrade or cancellation?

Enter the billing period, the amount already billed and each change with its date. You get the day-count segments, the credit or charge to issue now, tax, the next renewal, and a table of the balance if the same change had happened on other dates. Use it to answer a billing ticket, to check your billing provider's preview, or to set a proration policy.

It works from your own figures. It does not know your billing provider's rounding or your refund terms.

The billing period

Fill in the period, then click Work out the balance.

What it does, and what it leaves to you

Common questions

How do I prorate a subscription upgrade in the middle of a billing period?

Split the period at the change date. The old amount covers the days before it and the new amount the days from it on, each as a share of the period's days. Add the two, subtract what the customer already paid, and the difference is the charge or credit. Paste your dates and amounts and the page does exactly that and shows every line.

Should the renewal date move when someone upgrades?

Both are common. Keeping the renewal date charges only the difference for the days left. Restarting the period on the change date credits the unused old time and bills a full new period from today. The page has a mode for each so you can see what the customer would pay under either.

How is a cancellation or downgrade refund calculated?

Enter the change date and the new amount; 0 means cancelled. The unused days at the old amount come back as a credit. Whether you refund it, keep it as account credit or keep it at all depends on your terms, which this page does not decide.

Does it match Stripe, Chargebee or Paddle?

It uses plain day-count proration rounded half up to the cent. Billing providers can prorate by the second, round differently or apply their own rules, so check the figure against the provider's preview before you rely on it.

Is my billing data uploaded anywhere?

No. The arithmetic runs in your browser and nothing is sent; a test in the code asserts there are no network calls.