Top-ups and rollover

How purchased bandwidth and credits expire, carry across periods, and are consumed.

Top-ups add bandwidth or credits without changing your plan's included allowance. The billing ledger records each purchase as its own lot. Value is spent in one order: your plan's included allowance, including any rollover from earlier periods, then purchased top-ups, then the one-time starter grant.

Expiration

Purchased top-up lots expire 180 days after the payment provider object was created. A cancellation or downgrade freezes the lot and resets that deadline to 90 days from the freeze. The reset runs in both directions: a lot with five months left loses that time, and a lot that was about to expire gains a little. The window is set by the billing service; it is not configurable in the dashboard. Expired lots are removed from the active purchased balance and cannot fund new usage. If your subscription is cancelled or lapses, any purchased balance above the pay-as-you-go tier is held (not spent, not forfeited) until you resubscribe at the same tier or higher. Restoring the balance does not restore the original deadline — a released lot keeps the date the freeze assigned it. A second freeze restamps from that second freeze, because the rule is keyed to the event, not to the lot.

That source-backed rule supersedes older wording that described top-ups as never expiring or said their expiration could be configured.

Billing-period rollover

Unused bandwidth from your monthly plan allowance rolls over to the next billing period with no cap, for as long as the subscription stays on its plan or moves to a higher one. A downgrade or cancellation freezes it: the frozen balance stops being spendable, and resubscribing at the same tier or higher within 90 days restores it in full — after that it is permanently lost. Purchased value is maintained separately in the billing ledger rather than being limited to the account_usage_periods row where the purchase first appeared; the current period's topup_bytes and topup_credits fields are projections of eligible, unexpired lot balances.

Credits do not roll over — they reset every billing period. The rollover_credits field exists on the usage-period row and is read when computing the enforced credit budget, but it is never written non-zero today, so it has no effect in practice. This does not affect top-up expiry, which follows the rule above and is not configurable.

Your current purchased and rollover balances appear under Dashboard → Settings → Billing.