The store’s treatment of unused time and value when a subscriber changes products before the current period ends.
Proration describes how a billing platform accounts for the portion of a subscription period already purchased when the customer upgrades, downgrades, or otherwise replaces a plan. The outcome can change access immediately or later, charge a difference now or at renewal, extend the next billing date, or credit remaining value toward a new product. The store calculates monetary amounts and presents them to the customer; a backend records the resulting transaction instead of reproducing regional tax and price arithmetic.
Google Play now expresses these choices as ReplacementMode. WITH_TIME_PRORATION converts unused value into extra time, CHARGE_PRORATED_PRICE charges an upgrade difference while preserving the billing date, CHARGE_FULL_PRICE begins the new entitlement and applies remaining value according to Play’s rules, WITHOUT_PRORATION changes access while delaying the new price, and DEFERRED schedules the replacement for renewal. Older ProrationMode terminology is deprecated; implementations should follow the current Billing Library contract and product constraints.
Apple handles upgrades, downgrades, and crossgrades within subscription groups using App Store rules. Timing depends on relative service levels and durations, and StoreKit supplies the transaction evidence. Although developers often call the result proration, they should not assume Play’s named replacement modes map one-for-one to Apple behavior.
A plan change is a new purchase that needs verification and entitlement reconciliation. On Play, the new subscription resource can include linkedPurchaseToken and item replacement details. The server processes and acknowledges the new token, retires the replaced token, and applies the correct current entitlement without overlapping benefits accidentally. Deferred changes require special care because the new token can appear before the new product becomes effective. Tests should cover immediate upgrade, scheduled downgrade, trial replacement, retry, cancellation, and notification reordering.
The Play relationship connecting a replacement purchase to its predecessor.
The boundary when deferred changes and new prices can take effect.
The identifier the backend verifies for the new plan-change purchase.
Keep one authoritative entitlement across old and new purchases.
Start free