Plan changes and proration
When you change plans from an existing subscription, ProteinIQ applies the change immediately and settles the prorated difference today.
Overview
A plan change can mean three different things: moving to a different tier, changing billing interval (monthly vs annual), or changing seat quantity for per-seat plans. In all of these cases, ProteinIQ treats the change as immediate for existing subscriptions and calculates prorated adjustments for the current period.
How proration is calculated
Proration previews are generated from Stripe invoice previews and intentionally rely on proration line items rather than raw invoice totals. This is important because raw totals can include non-proration invoice components that make previews harder to interpret.
In practical terms, the amount shown as due today reflects the net prorated adjustment:
- Positive amount: charge due now
- Negative amount: credit applied
Existing subscribers vs new subscribers
If your workspace already has an active subscription, changing the plan updates the existing Stripe subscription directly with proration behavior enabled. If the workspace does not have an active paid subscription, ProteinIQ creates a hosted Checkout session instead.
This split is what allows fast in-place upgrades for existing customers while still supporting first-time checkout flows.
Same-plan guardrails
When the selected plan and interval are identical to your current subscription, the confirmation action is intentionally disabled and shown as Current plan. This prevents accidental no-op submissions and clarifies that no change is required.
Seat-change validation
For per-seat plans, seat reductions are validated against occupied seats (active members plus pending invitations). If the requested seat count would put the workspace over capacity, the change is rejected and must be resolved by removing members/invites or choosing a higher seat count.
This same occupancy logic is used consistently across invites and billing changes.
What happens after confirmation
After a successful plan change, the prorated difference is settled today and future renewals use the new plan/seat configuration. The upgrade UI also surfaces next renewal amount and renewal date so teams can verify what happens after the current cycle adjustment.
FAQ
Why can due-today be negative?
If you move to a lower cost configuration mid-cycle, the unused portion of your previous configuration can exceed the cost of the new configuration for the remaining period, producing a net credit.
Why can seat downgrades fail even when some members are inactive?
Seat validation uses active members plus pending invitations. Pending invites reserve seats until canceled or accepted.