Plan changes
This guide covers upgrade, downgrade, and cancellation behaviors.
Prereqs
- You understand assignment windows: Windows and precedence.
Change primitives
Treat each commercial change as an assignment transition:
- create a new assignment window
- update an existing assignment window
- change assignment status
Upgrade and downgrade timing
| Pattern | Typical use | Assignment strategy |
|---|---|---|
| Immediate upgrade | paid now, instant access | open new window at now |
| Next-cycle upgrade | cycle-aligned subscription | new window at next cycle start |
| Immediate downgrade | risk/compliance action | close current window at now, activate lower plan now |
| End-of-cycle downgrade | standard self-serve UX | keep current window until cycle end, start lower plan next cycle |
Cancellation
Use one of two explicit strategies:
- set assignment status away from
active - keep status but set/shorten
window_end
Choose one strategy consistently per source system.
Determinism requirements
- Keep source identity stable (
source_kind+source_ref) for each commercial object. - Never rely on "latest write wins" semantics alone.
- Ensure support tooling can reconstruct the effective plan for any timestamp.
Verify
- Your system can explain the effective plan for any timestamp.
- The gate loop reflects changes within your expected propagation window.
Next
- Access activation mapping: Access activation