This article applies to Classic Commerce. (Looking for Contextual Commerce documentation?)
When performing an upgrade, downgrade or other changes to a subscription plan, you may also want to prorate the customer for their use of their current subscription plan. Proration handles the increase or decrease to the subscription price when a price changes during any period of a subscription. FastSpring refunds what your customer did not use from their original subscription plan (based on the number of days remaining before renewal) and then immediately charges your customer for the remaining days of the new plan. For example, changing from a $50 yearly plan to a $100 yearly plan on month 6 of the current year, results in a significant difference that will not be captured for another 6 months. By using the prorated option, FastSpring refunds $25 to the customer (for the six months out of the twelve months that were unused) and charge $50 afterwards (for the six remaining months).
While the prorating functionality is not usually necessary or recommended for subscriptions that are one month long or less, it can be important for subscriptions that have either different period or frequencies, or subscriptions that are longer than one month. Prorated upgrades and downgrades are initiated through an API option (Update subscription) or through SpringBoard.
The Prorating Process for Subscriptions
Refund Portion of Old Subscription
When making changes to a current subscription, you will want to select Allow Prorated Refund. FastSpring will refund a portion of the old subscription plan by multiplying the old subscription plan price by the ratio of unused days left on the subscription plan to total days in the period of the subscription. For example, if the old subscription was purchased on January 1 for $10 per month and a change was made on January 16 to a new yearly subscription, then we will refund $10 * (16 /31). Additionally, the shipping price will also be prorated. Although proration does not work automatically for on-demand subscriptions because you can only prorate if the subscription has a renewal date, you can prorate by giving a refund manually. Therefore, you can prorate from a normal subscription to an on-demand subscription, but not the reverse.
Determine Next Renewal Date for the Subscription
The next renewal date for the subscription depends on whether the new subscription is the same length, longer, or shorter than the old subscription plan.
Same Length Subscriptions
If the period length for the old subscription and the new subscription plans are the same, the renewal date will not change. Additionally, if the subscription was altered by changing the quantity, tag, etc., the renewal date will not change.
New Subscription Period is Longer than Old Subscription Period
If the new subscription period length is longer than the old subscription period length, the renewal date gets extended by the difference in plan. For example, if the old subscription was weekly and began on January 1, 2013 with a renew date of January 8, and the new subscription is monthly, the renewal date will be extended to February 1, which is one month from the initial date of the original subscription plan. Future renewal dates will remain based off of the purchase or previous renewal date, but will continue to extend by the new time period length.
New Subscription Period is Shorter than Old Subscription Period
If the new subscription period length is shorter than the old subscription period length, and it is longer into the current subscription than the new subscription length, then the renewal date becomes the date the change is made and the next renewal date will be based off of the length of the new subscription plan. For example, if the old subscription was monthly and began on January 1, 2013 with a renewal date of February 1, and a new weekly subscription was put in place on January 15 (two weeks into the period), the renewal date will become the date the subscription plan changes (in this case January 15), and the next renewal date will be one week later, or January 22.
If the new subscription period length is shorter than the old subscription period length, and it is not longer into the current subscription than the new subscription length, then the subscription is made shorter. For example, if the old subscription was monthly and began on January 1, 2013 with a renewal date of February 1, and a two week subscription was put in place on January 7 (after one week), then one week will remain in the new subscription period, and the renewal date will be at the end of that week, or January 15.
For pricing and discounts, the period will be considered the First Period as long as the second period of the old subscription has not occurred.
Charge for New Subscription Plan
If the old and new subscription plans have the same period length or if the new subscription period is longer than the old subscription period, then the charge for the new subscription plan is calculated by multiplying the new price by the ratio of unused days left on the new subscription to total days in the period of the new subscription. For example, if the old subscription was monthly and a change was made on January 16 to a new $100 per year subscription, then the new charge would be $100 * (365-16)/365.
If the new subscription period is shorter than the old subscription period, then the charge will be the full price plan for the new subscription.
Note: If the new charge is unsuccessful, the subscription falls into dunning, which is a process where in we email the customer to try to get them to update their payment information, and the renew date will be set to today. You can configure the behavior of the dunning process by going to SpringBoard's Store Home » Store Settings. Click on the Advanced tab.
Understanding Period Start and End Dates with Proration
- Entry: This is when the entry was made and this is from where we calculate the amount.
- Period Start: The original start date. This will be the same as the entry date, except if prorations were made throughout the period.
- Period End: The date the period ends and this is to where we calculate the amount. The Period End date + 1 will be the Period Start date for the next entry.
We're Here to Help
If you need assistance with prorating a subscription when upgrading, downgrading, or changing plans, please open a support ticket.