Skip to main content
When a subscriber changes plans before their current billing period ends, Subscribd needs to decide what to do with the unused portion of the old plan and the cost of the new one. This is proration. Subscribd supports three strategies — now, renewal, and none — which you can set globally in config or override on a per-call basis.

Set the global default

Add proration_strategy to config/subscribd.php:
// config/subscribd.php
'proration_strategy' => 'now',   // 'now' | 'renewal' | 'none'
This value is used for every swap() call that does not explicitly override it.

Override per swap

Pass a prorate key in the options array to override the global default for a single plan change:
// Immediate charge/credit (global default applies if omitted)
Subscribd::for($user)->swap('default', 'pro');

// Defer the price change to the next renewal
Subscribd::for($user)->swap('default', 'pro', ['prorate' => 'renewal']);

// No proration, no credit — new price starts at next cycle
Subscribd::for($user)->swap('default', 'pro', ['prorate' => 'none']);

Strategy behavior

StrategyBehavior
nowCredit or charge the prorated difference immediately at the time of the swap
renewalSwitch to the new plan price at the next renewal date; no immediate charge or credit
noneNo proration and no credit; the new price takes effect at the start of the next billing cycle
Use renewal when you want to honor the subscriber’s current billing period fully before applying the change. This is the most predictable experience for customers upgrading from a monthly to an annual plan.
The now strategy is the most common choice for SaaS products because it aligns the customer’s charges with the value they receive from the moment of upgrade.

How proration is calculated

When now is active, Subscribd calculates the unused days remaining in the current period and credits that amount against the new plan’s cost. The net charge (or credit) is applied immediately through the gateway. The subscription’s next renewal date stays the same — only the current period’s charge changes. When renewal is active, Subscribd records the pending plan change internally and instructs the gateway to switch prices at the next renewal. The customer continues on their current plan until the period ends. When none is active, the swap is recorded and the gateway is updated, but no financial adjustment is made. The customer pays the old price for the remainder of the current period and the new price from the next cycle onward.