LogoRouterDocs

Plan changes

Upgrades, downgrades, cancelling at period end, and how limits roll out.

Upgrades

Upgrades invoke Stripe proration. LogoRouter persists the mapped plan id immediately when customer.subscription.updated lands. Usage meters keyed to the Stripe billing anchor inherit the elevated limits as soon as the webhook updates Postgres + busts KV.

Downgrades

Downgrades can be effective next cycle (cancel_at_period_end, swap schedule) or immediate depending on Stripe configuration. LogoRouter computes feature access from the stored plan row — downgrade delays are honoured when Stripe emits the schedule events.

Edge cases

  • Meter carry-over — previous cycle counts do not rewind; budgets reset based on metering rules (UTC day anchors + Worker DO counters).
  • Batch-heavy workloads — if you downgrade batch limits mid-period, queued jobs may partially fail — bake defensive checks clientside.

Cancellations

IntentBehaviour
Cancel future renewals (cancel_at_period_end)Entitlement stays paid until Stripe marks invoice paid for final period window
Immediate cancelEnds subscription now; downgrade follows webhook ingestion

Always confirm with Stripe invoices rather than dashboards alone — Stripe data remains canonical.

Plan compare matrix

Prefer live numbers on /pricing — this docs page focuses on entitlement resolution ordering.

Related: Billing overview · Payment failures

On this page