Console
Docs/Operate

Spending limit

A hard monthly limit for paid plans that degrades quality step by step instead of disconnecting players.

How it works#

Every paid project has a monthly limit in USD (set at creation, changed any time in Overview or Project settings). Every five minutes the control plane recomputes the forecast for the month. When the forecast crosses a threshold, the corresponding step is applied through the cell; when it drops back, the step is lifted. Each change is written to the audit log and sent as a spend_cap.step webhook.

StepForecast ≥EffectPlayers notice
1100 %Maximum bitrate loweredSlightly less crisp audio
2105 %Server-side mixing and denoise turned offMore streams per client, more CPU on clients
3110 %New channels only in the home regionCross-region matches use the home region
4120 %New connections refused (QUOTA_EXCEEDED)New players cannot join until the month resets or you raise the limit

Nobody who is connected is ever disconnected by the ladder. Autoscale never adds a node that would push the forecast past the limit.

Toggles#

Each step can be switched off in Overview → Spending ladder if you would rather pay than degrade (for example, keep server mixing on for an esports event). Step 4 is the hard floor: with it on, the forecast cannot exceed 120 % of the limit. Switch it off only if you would always rather pay than refuse a join — the limit then becomes a notification and the Billing forecast is what you watch.

Raising or lowering#

Changing the limit takes effect at the next pass (≤ 5 minutes). Lowering it below current spend applies step 4 immediately; existing sessions continue.

Free and Indie#

Shared plans have no bill to cap; instead they have concurrency caps (50 / 300 concurrent participants) enforced at join time — the next connect above the cap is refused with QUOTA_EXCEEDED until someone leaves. There is no monthly participant-minute quota; the participant-minutes on Overview are informational.

Picking a number#

Start from the calculator estimate and add 20–30 % headroom for traffic you cannot predict (TURN share, chatty channels). The forecast is pessimistic right after a peak — it extrapolates the last hour over the rest of the month — so a limit set exactly at the estimate will trip step 1 on the first busy evening. Raising the limit lifts steps at the next pass.

Webhooks and audit#

Each step change produces a spend_cap.step webhook with the project, the step, the forecast and the limit, and a row in the organisation audit log; use it to post to your ops channel or to open your own capacity dashboard.