Skip to content

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