Rule
Plan changes must compute and display the prorated amount before charging.
Why
Silent charges after plan upgrades are a leading cause of subscription cancellation.
Must
- Calculate and display the immediate charge (or credit) before the user confirms.
- Apply immediate proration for upgrades and deferred proration for downgrades.
- Use the provider proration calculation rather than computing it independently.
- Record the proration event in the subscription audit log.
Should
- Show both the one-time adjustment and the new recurring amount on the confirmation screen.
- Allow the user to choose: prorate now or change at period end.
Anti-patterns
- Charging proration without a preview step.
- Inconsistent proration between provider and app calculations.
Test Cases
- Upgrade mid-cycle shows correct prorated charge preview.
- Downgrade at period end does not charge immediately.
Telemetry
- plan_change_previewed
- plan_change_confirmed
- plan_change_cancelled_at_preview