Skip to content

Subscription Proration Methods Compared: Charge, Credit, or Defer

Choose immediate proration, a deferred switch, or full-price replacement by aligning money, entitlement timing, credit, and the next anchor.

Emran // ArrayHash10 min read

Use immediate proration when access should change now and the customer can settle the unused-value difference. Defer the switch when the current paid entitlement should remain through renewal. Use no proration only when charging the full replacement plan now is intentional. Define credits, failed payments, taxes, fees, and effective dates before launch.

Key takeaways

  • Proration controls money, entitlement timing, and the billing anchor together.
  • ArraySubs provides immediate, apply-at-renewal, and no-proration modes globally.
  • A downgrade surplus is an internal subscription credit in current code, not automatically cash.
  • “No proration” currently means full target price now and a new anchor.
  • Minimum-charge, rounding, tax, coupon, and target pricing phases require careful testing.

Compare the three methods

Three change paths — a focused lanes for Proration decides who keeps unused value.

MethodCash at requestAccess changesNext billing anchor
Prorate immediatelyNet remaining-period amount; downgrade can create internal creditAfter switch order is paidExisting date for same cadence; cycle change can reset
Apply at next renewalNone now; target amount and fee on next renewalAfter target renewal is paidExisting renewal date
No prorationFull target price plus fee nowAfter switch order is paidNew target cycle from switch

The saved ArraySubs global setting is authoritative. Switching can be limited by status and upgrade/downgrade/crossgrade permissions, and a pending cancellation blocks the normal switch path.

Immediate proration formula

For a simplified same-cadence change:

unused current value = current daily rate × days remaining
remaining target value = target daily rate × days remaining
net due now = max(0, remaining target value − unused current value)
credit candidate = max(0, unused current value − remaining target value)

Assume a 30-day month, 15 days remaining, and an upgrade from $30 to $60:

unused current value = ($30 ÷ 30) × 15 = $15
target remaining value = ($60 ÷ 30) × 15 = $30
net due = $15

For a downgrade from $60 to $30, the same arithmetic creates a $15 credit candidate and $0 due now. Current ArraySubs stores that surplus as internal subscription credit; it is not automatically a gateway refund or a general store wallet.

Proration equation — an illustrative equation reverse for Proration decides who keeps unused value.

Illustrative arithmetic excludes tax, shipping, coupons, fees, refunds, and gateway costs.

Deferred change

Apply-at-renewal stores one pending switch while keeping the current product and access. The next invoice uses the target product/price and captured fee. Only after that renewal is paid does the subscription product and entitlement change.

This method fits a downgrade where the customer should keep the tier already purchased. It also avoids creating an immediate credit. If the target renewal remains unpaid, the target entitlement is not granted; ordinary failure and grace rules still apply.

Full-price replacement

Current “No Proration” behavior charges the full target recurring price now, adds any switch fee, and starts a new target cycle after successful payment. It is not “change for free.” Use customer copy such as “full-price replacement beginning today” and show the new next date before confirmation.

Choose by entitlement, not formula alone

Choose immediate when the buyer needs higher-tier access now, the adjustment can be paid reliably, and the store can explain the amount and next date. Choose deferred when paid access should remain intact or a clean boundary simplifies operations. Use full-price replacement only when overlapping value and the new anchor are deliberate.

Money, access, schedule — a focused triangle for Proration decides who keeps unused value.

Current limitations to disclose

  • Current calculator approximates day/week/month/year as 1/7/30/365 days.
  • The UI’s configured minimum charge is not enforced by the inspected plan-switch calculator.
  • The UI rounding choice does not currently drive this calculator’s two-decimal rounding.
  • Timing is global; “upgrades now, downgrades later” is not a native split policy.
  • Coupon, tax, shipping, zero-total, and gateway authentication interactions need representative tests.
  • Target trial, signup-fee, and different-renewal-price phases do not reliably transfer through all switch paths.
  • Legal refund requirements vary; arithmetic does not decide whether a cash refund is due.

WooCommerce’s own switching documentation is useful ecosystem context, but its formulas and coupon behavior should not be attributed to ArraySubs without testing (switching costs).

For the timing decision without the formulas, read Immediate vs Next-Renewal Plan Changes.

Final recommendation

Publish one plan-change policy that states the amount, effective date, access result, next renewal date, and credit/refund result. Test the real order with every relevant gateway and modifier. Compare ArraySubs plans.

Frequently asked questions

What is subscription proration?

Proration allocates old-plan and target-plan value across the remaining billing period. A complete policy also defines access timing, next billing anchor, credit versus refund, and the result when the adjustment payment fails.

Should upgrades be immediate and downgrades deferred?

That is a common policy, but current ArraySubs timing is global rather than split by direction. Implementing different timing by direction needs a supported customization or product change.

Is a downgrade credit refunded in cash?

Not automatically. Current ArraySubs can store excess value as internal subscription credit. Whether cash is required depends on the disclosed contract, product delivery, jurisdiction, and merchant policy.

Does “no proration” mean no immediate payment?

No. Current ArraySubs charges the full target price now, changes the plan after payment, and creates a new billing anchor. Customer copy should say “full-price replacement.”

What happens when a deferred switch renewal fails?

The target plan appears on the renewal invoice, but the subscription entitlement changes only after payment. The old entitlement remains until lifecycle and failure rules produce another status outcome.

Disclosure, verification, and update log

  • July 2026: Verified against current ArraySubs proration calculator, switch controller, and plan manager. Examples are not benchmarks or legal refund conclusions.

Continue from strategy to setup

Use a recipe when the model is settled

These articles own the decision and operating model. The ArraySubs feature map and recipes cover the exact product, billing, and customer-workflow configuration.

Written by

Emran // ArrayHash

Research and practical guidance for WooCommerce subscription operators and implementation teams.

Technical review

ArraySubs Engineering Team

Reviewed against current ArraySubs code, product documentation, and the linked primary platform sources.

From plan to working store

Build the subscription system you just mapped

Start with the free ArraySubs core, then add Pro automation when the store needs supported automatic gateways and deeper operations.

No credit card required · Keep the same subscription records as you grow