Appearance
Plans & Meters
The Console's billing engine is built on two primitives: meters measure usage, and plans turn usage into money.
Meters
A meter is a measurable unit of consumption. Each meter has:
- A name (snake_case, used internally — e.g.
api_calls). - A display name (what customers see — e.g. "API Calls").
- A unit —
count,gb,mb, orkb. - An aggregation mode that decides how raw measurements collapse into a billable number:
- Snapshot — the latest value wins. Use for gauges like "active users right now".
- Delta — values accumulate over the period. Use for counters like "API calls this month".
- Distinct — count of unique IDs over the period. Use for session-like metrics.
Some meters are built-in and cannot be deleted; others are custom and can be created on the Meters page.
Plans
A plan binds meters to limits and prices. A plan has:
- A display name and a generated key.
- A billing interval — monthly, quarterly, annual, or perpetual.
- A type — Built-in or Custom. Built-in plans (Starter, Professional, Enterprise) are the standard offering; custom plans are for one-off contracts.
- A list of meter limits, each consisting of:
- Included quantity — usage up to this is included in the plan price.
0with a non-zero overage price means "pay per unit from zero". The word "Unlimited" means no cap. - Overage unit price — what each unit above the included quantity costs.
$0means hard limit — usage above the cap is blocked, not charged.
- Included quantity — usage up to this is included in the plan price.
Plan versions
Plans evolve. Rather than mutating an existing plan and breaking history, the Console uses versions:
- The current version has no retirement date and applies to new customers.
- Retired versions are read-only. Existing customers stay pinned to whatever version they were on when retired, until you explicitly upgrade them.
Create a new version from the plan card on the Plans page. It pre-fills with the current version's meter limits — edit what should change, then click Create v[N]. The previous version is automatically retired.
How billing actually computes
For each customer's invoice period, the Console:
- Gathers raw usage measurements per tenant per meter.
- Aggregates them according to the meter's mode (snapshot / delta / distinct).
- Applies the plan's included quantity and overage price.
- Applies any non-prod multiplier to non-production tenants (configured per customer on the Billing Setup tab).
- Applies any per-tenant override (also on Billing Setup) — multiplier, meter exclusion, or price override.
- Applies the customer's tax rate and any credit balance.
- Issues an invoice.
You can preview usage at any granularity on the Usage page without issuing anything.
Production vs. non-production
The Console treats production and non-production billing separately. On a customer's Billing Setup:
- Production environments are listed explicitly. Tenants in those environments are billed at 100% against the plan.
- Non-production billing can be: free, a percentage of usage, a fixed monthly amount, or based on usage with per-environment defaults (e.g. DEV at 25%, UAT at 50%).
- Each non-production tenant can have a manual override that pins its multiplier and meter overrides independently of the environment default.
Manually-overridden tenants are not affected by changes to the environment default — they keep their pinned values until you reset them.
Where it shows up
- The customer's Billing Setup tab — assign plan, set tax, configure non-prod billing, override per tenant.
- The customer's Invoices, Payments, and credit tables.
- The Customer Finance dashboard — outstanding amounts, overage flags, credit exposure across all customers.
- The Usage page — query aggregated consumption.
- For customers themselves, Portal → Billing — usage with quota bars, invoices, payments, and credit history.

