Proration behaviors
Polar supports three proration behaviors:Invoice Immediately (invoice)
The subscription is updated immediately and Polar invoices the prorated difference right away. If the update is an upgrade the customer is charged; if it’s a downgrade they’re credited on the new invoice.
Use this when you want money to change hands at the same time as the change — for example, on upgrades where you want to collect the extra revenue now.
Next Invoice (prorate)
The subscription is updated immediately, but the prorated difference is carried over and applied on the next scheduled invoice instead of triggering a charge now. The customer’s billing cycle is unchanged.
This is typically the smoothest experience for the customer: their plan changes instantly, and they see the adjustment on their regular renewal invoice.
If the billing interval changes (for example, monthly to yearly),
prorate
is promoted to invoice automatically — there’s no “next invoice” on the
old cycle to defer the difference to.Next Period (next_period)
The change is not applied immediately. It’s scheduled as a pending update and applied at the start of the next billing period. No proration charge or credit is issued — the new plan simply takes effect on renewal.
While a next_period update is pending, the subscription’s pending_update field describes the scheduled change. Submitting a new update always supersedes the pending one: if you scheduled a next_period change and then make another update with invoice or prorate, the pending update is discarded and the new change is applied right away.
This behavior is the safer default for downgrades where you don’t want to issue credits, and for any case where you want the current period’s terms to stay intact.
Setting the default behavior
Each organization has a default proration behavior that applies whenever you don’t pass an explicitproration_behavior on an API call — including plan changes customers initiate from the Customer Portal.
You can change it from Settings → Subscriptions in the dashboard, or via the Update Organization API.
Overriding per update
Every subscription update that changes the price — a product change or a seat change — accepts an optionalproration_behavior that overrides the organization default for that single call:
invoice, prorate, and next_period.
How the prorated amount is calculated
Polar prorates on a per-day basis. If the customer has usedN days out of a D-day billing period:
- Unused credit on the old plan:
old_plan_price * (D - N) / D - Charge on the new plan for the remainder:
new_plan_price * (D - N) / D - Prorated difference: the new-plan remainder minus the old-plan unused credit
Upgrade
A customer subscribed to a 20/month plan.- Unused credit on the 5 * 29 / 30 = $4.83`
- New charge for 29 days on the 20 * 29 / 30 = $19.33`
- Prorated difference: $14.50
invoice, that 20 charge for the next cycle).
Downgrade
A customer subscribed to a 5/month plan.- Unused credit on the 20 * 29 / 30 = $19.33`
- New charge for 29 days on the 5 * 29 / 30 = $4.83`
- Prorated difference: -$14.50 (credit to the customer)
invoice, a credit invoice for $14.50 is issued immediately. With prorate, the credit is applied on the next invoice.
Examples assume a 30-day cycle. For months with 31 days the denominator is
31; for February it’s 28 or 29. Polar always uses the real length of the
current billing period.

