Our Proration Add On automatically adjusts the initial payment for members who upgrade or downgrade membership while keeping their existing subscription payment date.

View the Add On

Some background on proration.

By default, Paid Memberships Pro does not calculate prorated payments. We made this decision because “prorated” means something different to everyone. This add on offers the basis for proration at membership checkout and can be further customized to fit your specific site needs.

In short, this add on calculates what percent of the member’s current subscription payment remains and then credits that against the new level’s initial payment.

If you have a different proration need or upgrade/downgrade payment concept, please open a topic in our members forum and we will help with the right hooks/filters and custom code for your project.

How it Works

When a member chooses to upgrade, they are charged a pro-rated amount for the new membership level immediately and the member’s current payment date is maintained. When a member chooses to downgrade, the initial payment is $0 and the downgrade is processed immediately. The member’s current payment date is maintained.

Downgrades are defined as having an initial payment less than the current level, but can be altered via filters. It assumes that the level’s initial payment is equal to the billing amount.

Sample Proration Cases Covered by this Add On

CaseDay of Billing CycleAmount Charged
Member Upgrades from $5/mo. plan to $10/mo. planDay 15 (1/2 into cycle)$2.50
Member Upgrades from $250/yr. plan to $500/yr. planMonth 3 (1/4 into cycle)$312.50
Member Downgrades from $10/mo. plan to $5/mo. planDay 15 (1/2 into cycle)$0.00*
Member Downgrades from $500/yr. plan to $250/yr. planMonth 3 (1/4 into cycle)$0.00**

Sometimes the calculation results in a negative amount but the system currently has no way to do a credit.
(* $2.50 credit, ** $312.50 credit)


You must have the Paid Memberships Pro plugin installed and activated with a valid license type to use this Add On.

  1. Navigate to Memberships > Add Ons in the WordPress admin.
  2. Locate the Add On and click “Install Now”.
    • To install this plugin manually, download the .zip file above, then upload the compressed directory via the Plugins > Add New > Upload Plugin screen in the WordPress admin.
  3. Activate the plugin through the Plugins screen in the WordPress admin.

How It Calculates the Prorated Amount (for those technical folks)

The system considers two factors:

  • (a) What they should pay for new level = $level->billing_amount * $per_left.
  • (b) What they should have paid for current level = $clevel->billing_amount * $per_passed.

The user is charged what they need to pay = (a) + (b) – (what they already paid).

If the number is negative, this would technically require a credit be given to the customer, but we don’t currently have an easy way to do that across all gateways so we just 0 out the cost. (Initial Payment = $0).

An alternative calculation that comes up with the same number (but may be easier to understand) is:

  • (a) What they should pay for new level = $level->billing_amount * $per_left.
  • (b) Their credit for cancelling early = $clevel->billing_amount * $per_left.
  • What they need to pay = (a) – (b)


One known limitation of this code is if a member upgrades twice within one pay period. Only the last payment will be considered when calculating the prorated amount due. This could be handled by summing the total of all orders within the pay period, but we have not used this method as it could also cause conflicts on sites that have multiple unrelated orders (when using Addon Packages or similar price-adjusting customizations). Additionally, payments on edge dates might be accidentally included or not included in the sum.

Bookmark the . Last updated: .