Skip to content
Select themeSelect language

Manage seats and billing

In SupaCloud, billing is per organization seat (ADR 0035, ADR 0045). Every active member of your organization occupies exactly one seat. Your plan ships an included seat pool; once your active headcount exceeds that pool, each extra member bills as an overage seat. Seat types (member, operator, …) are entitlement markers — they do not add a separate billing line; every seat, role or not, pools the same way against the headcount.

SupaCloud reconciles seat quantities automatically on every membership change (invite accepted, member suspended, reactivated, removed, or a seat reassigned) and on an hourly background sweep. The figures are computed entirely on the server — the panel renders them verbatim, with no client-side math.

Billing is a single dimension — headcount:

Part What it is How it bills
Included seats The pool your plan ships, read from the plan’s users.max Already covered by the plan base price (no extra charge). An unlimited pool never overflows.
Extra seats (overage) max(0, active members − included pool) extra seats × per-extra-seat price, charged on top of the plan base.

Every active member — including one who holds the operator (or any other) role — is counted once: one seat in the headcount pool. A role no longer adds a flat per-seat charge on top; it only sharpens that member’s entitlements.

Seats are assigned from the member’s detail drawer. You need the owner, admin, or billing admin organization role to change a seat.

  1. Open Organization settings.

    Navigate to Settings → Organization. The Members list is on the left; the Seats & billing panel is in the right rail.

  2. Open the member.

    Click a member’s row to open their detail drawer.

  3. Pick a seat tile.

    In the Seat type chooser, select a tile. Each active seat type is offered (for example the default member seat and the operator seat), plus a No seat option. Selecting a tile assigns that seat immediately.

  4. Confirm the reconcile.

    The change is saved and the organization’s seat quantities are reconciled. The Seats & billing panel updates to reflect the new totals.

The Seats & billing panel (right rail of Settings → Organization) shows exactly how your bill is composed. Lines appear only when they apply:

  • Included seatsused of included, e.g. 5 of 3. The used figure is your active headcount; included is the plan pool (or unlimited). This line is always shown.
  • Extra seats — shown only when you are over the pool. The sub-line reads count × unit (extra seats times the per-extra-seat price); the amount is the overage total.
  • Plan base — your plan’s flat monthly base price, shown when it is greater than zero.

The panel footer shows the total members seated and the MRR (monthly recurring revenue): the plan base plus the overage total.

A plan with a 3-seat included pool, a €19 base price, and a €5 per-extra-seat price. The organization has 5 active members, one of whom also holds the operator role:

Line Calculation Amount
Included seats 5 of 3 (pool covered by the plan base)
Extra seats 2 × €5 (5 active − 3 included) €10
Plan base flat €19
MRR €19 + €10 €29

The operator member is counted once toward the 5 active members (driving the overage); holding the operator role adds no separate charge.

A member shows “No seat” but the MRR still went up. Expected. Every active member occupies one headcount seat regardless of seat type — “No seat” does not change billing; the member still pools against the included/overage seats.

The seat tile chooser is not shown in the member drawer. Changing seats requires the owner, admin, or billing admin organization role. Members and viewers see the member’s seat read-only.

Extra seats / overage line never appears even with many members. Your plan’s included pool is unlimited, so there is no overage to bill — every member is covered by the plan base.

The panel total looks stale after a member change. Seat quantities reconcile on every membership mutation and on an hourly sweep. If a transient Stripe push failed, the database figure stays accurate and the next sweep retries; reload the page to re-fetch the server-computed summary.

An instance admin sets each billing plan’s included-seat quota — the pool a subscriber gets before overage seats bill — in the admin Plans tab.

  1. Open Settings → Admin → Plans. Each plan has an Included seats column.
  2. Enter a whole number for a finite pool, or unlimited for a pool that never overflows.
  3. Save.

The quota is the plan’s users.max feature. The value must be a non-negative whole number or the literal unlimited — decimals, negatives and other strings are rejected. The seat and € figures the seat-billing panel shows stay coherent with the deployment edition; an Enterprise-edition instance grants entitlements by edition, so a per-plan pool there is informational rather than billed.