Show Costs to Tenants (Showback)¶
The Costs tab prices what each VM used in a month and shows it per tenant, cost center, cluster or VM. A Tenant Admin sees the same tab for their own tenant. It's showback: an estimate that tells people what their workloads cost, not an invoice.
1. Create a rate card¶
Costs → Rate cards → New rate card, as a Super Admin.
| Field | Charged for |
|---|---|
| Per running vCPU-hour | each vCPU, for each hour the VM was running |
| Per running GB RAM-hour | each GB of RAM, for each hour the VM was running |
| Per GB disk-month | each allocated GB of disk, for the part of the month the VM existed |
| Per GPU-hour | each GPU assigned to the VM, for each hour it was running |
| Per VM-month (flat) | the VM itself, for the part of the month it existed |
Pick the currency (a three-letter code such as USD or EUR), then under Applies to choose what the card prices:
- Tenant: every VM of that tenant
- Cluster: every VM on that cluster's hosts
- Cost center: every VM on clusters with that cost center
- Default: everything else
When several cards match a VM, the most specific wins: tenant, then cluster, then cost center, then default. A VM that no card matches has no cost, and the Costs tab counts it as unpriced rather than free.
Start with one default card
One default card prices the whole fleet. Add tenant or cluster cards later for the exceptions, such as a GPU cluster or a discounted tenant.
2. Read the costs¶
Choose a month and a grouping, then Show. Amounts in different currencies are listed separately and never added together.
The Billing button on the Hosts toolbar shows the same costs per cost center for the current month, next to allocated capacity and runtime hours.
3. Download a statement¶
Choose a tenant and Statement (CSV) or Statement (JSON). A statement has one line per VM: size, running hours, the rate card used, the cost of each item and the total.
How runtime is measured¶
The console samples every VM's power state every 5 minutes. Running hours are the number of "on" samples times 5 minutes, so they are accurate to about one sample per VM. The prices use each VM's current size for the whole month.
Things a statement does not include:
- a VM deleted before the statement is run, because its record is gone; run the month's statements before cleaning up;
- containers;
- a resize part-way through the month, which is priced at the new size.
API¶
| Call | Who |
|---|---|
GET /api/showback/costs?period=2026-09&group_by=tenant |
Super Admin; Tenant Admin (own tenant) |
GET /api/showback/statement?period=2026-09&tenant_id=<id>&format=csv |
Super Admin; Tenant Admin (own tenant) |
GET/POST /api/showback/rate-cards, PUT/DELETE /api/showback/rate-cards/{id} |
Super Admin, audited |