Skip to main content
Your cloud bill tells you what you spent last month, not which cluster or team caused it or what you could turn off tonight. Cloud Cost prices every cluster from the machines and volumes Ankra already sees, splits the money down to namespaces and stacks, and points at the idle capacity worth cutting. It needs no extra cost tool.
All figures are estimates built from list prices for the resources Ankra can see. Use them for trends, right-sizing and chargeback, not for reconciling an invoice to the cent.

Get a number for every cluster

Ankra prices a cluster once two things are in place:
  1. A price source for its capacity. For a public provider, a cloud credential for that provider. For Proxmox VE, VMware, HPE Morpheus or your own hardware, a rate card.
  2. The cluster online, so the agent can sync its nodes and volumes.
Until then, the cost panel on the cluster’s Overview page says what is missing, such as no credential, no rate card, cluster offline or pricing still resolving. A cluster that cannot be priced is shown as not priced, never as free. The state values are listed in the Cost API reference. Open Cost in the main sidebar. It has six tabs: The fleet totals also appear on the Dashboard.

Where the prices come from

Hetzner. A server ordered before the 2026-06-15 price increase is priced from the earlier list. Without a Hetzner credential, Ankra uses its built-in copy of the list and reports medium confidence instead of high. A server that ran for only part of the month reads slightly low, and servers outside the cluster, such as CI runners in the same project, are not in any cluster’s estimate.

Private capacity: rate cards

Proxmox, VMware, Morpheus and imported hardware have no published price, so you state what the capacity costs. A rate card is three monthly rates in your own currency: per vCPU, per GB of memory and per GB of provisioned storage. Ankra multiplies them by what each cluster holds. The card lives on the credential that provisions the capacity, so every cluster built from one Proxmox datacentre inherits the same rates. Set it under Credentials → your credential → Pricing.
  • Proxmox ships with defaults of EUR 3.00 per vCPU, 0.75 per GB of memory and 0.02 per GB of storage per month, labelled Ankra defaults. Saving the form makes them your own; clearing it returns to the defaults.
  • Other private providers have no defaults, so their clusters stay not priced until you set rates.
  • Imported clusters with no provider credential use the organisation’s own rate card, if you set one.
A rate change applies from the next hourly pass. It does not rewrite past figures.

Read the fleet by credential

A cloud bill arrives per account, and an account is what a credential holds. The Credentials tab groups spend by provider, then by the credential that actually built each cluster. Each live credential opens its own page with its clusters and, for private capacity, its rate card. A deleted credential keeps its name in the list while its clusters still cost money, and clusters with no recorded credential, such as imported ones, collect into one No credential recorded row per provider.

Attribute spend to teams

Every hour Ankra allocates each cluster’s cost to its namespaces by their share of CPU and memory. The Workloads tab joins that allocation to names you recognise: the stack a namespace belongs to, the add-ons in it and the applications installed into it. Rows are ranked by monthly cost and can be filtered by cluster, which gives you a chargeback view per team. The tab shows the 500 costliest rows.

Cut waste

Savings turns the same data into actions, each with an estimated monthly saving:
  • Right-size idle capacity. When a large share of a cluster’s run rate sits idle, Right-size with AI opens Ankra’s AI on that cluster. It proposes scaling changes and applies nothing until you confirm.
  • Stop non-production clusters off-hours. A non-production cluster running around the clock on a provider with power schedule support gets Add off-hours schedule. It creates two schedules in UTC: weekdays at 19:00 the worker servers are deleted, at 07:00 new ones are created, and weekends stay down. The control plane, etcd, cloud volumes and addresses are kept and keep billing. Data on the workers’ own disks is lost at every stop. A cluster without a known environment label is never offered this.
  • Reduce unallocated spend. Raised when a quarter or more of a cluster’s run rate is not allocated to any workload.

Orphaned and idle resources

A waste scan runs every six hours and lists resources that bill while doing no work: Each finding shows its monthly cost, or “price unknown”, and Resolve with AI opens a chat naming the exact resource. The provider-side scan covers Hetzner accounts; the released-volume check covers every cluster. A credential that could not be listed is shown as a partial scan, not as “no waste”.

Per-cluster drill-down

Open a cluster from Clusters, Savings or the Overview to see what to change on it and why it is safe:
  • Cost trend over the last 30 days, and where the money goes: compute (on-demand and spot), storage, network, control plane, and Bastion and VMs, with idle and unallocated portions.
  • Node evidence: for every node, the measured average, p95 and peak CPU and memory over 24 hours, 7 days or 30 days, against what the scheduler reserved. Each node gets a verdict: underutilised (p95 fits well under the reservation on both CPU and memory, with the saving from sizing to 1.5 times p95), spiky - keep headroom (never called safe to downsize), well sized, or no metrics.
  • Recommendations with that evidence attached, namespace costs, and the cluster’s waste findings.
Node evidence needs the platform metrics pipeline. Without it, recommendations are based on resource requests and the page says so.

What if the node groups changed?

Under the breakdown, a what-if draft lists the cluster’s node groups (node count, vCPU, memory, disk and GPUs per node) and its load balancers. Change a count, resize or add a group, or add a load balancer, and the panel shows today’s bill, the predicted bill and the change. Nothing is saved or applied; Discard draft or a reload clears it. The prediction is today’s bill plus the priced difference between the draft and today, so only what you changed moves the number. A resized group lands on the cheapest published size that holds its vCPU, memory and GPUs, keeping its CPU architecture, and the panel names the size. Private capacity is priced from the cluster’s rate card. Pick another provider to price the same draft there, including from private capacity. A group with GPUs is placed only on a GPU size and keeps its card where a size carrying it fits; a group without GPUs is never placed on one. On UpCloud every GPU plan in the price book is a size, and a GPU group marked Spot lands on the matching spot plan. Where a provider’s price book records no GPU sizes, the group reads Not priced instead of taking a CPU size of the same shape. A group nothing can price reads Not priced with the reason. Scripts can use the same estimate: see What-if estimate.

Compare providers

Compare providers, a button on the cluster’s cost page, prices the whole bill (node groups, the control plane Ankra provisioned, volumes and load balancers) on every provider Ankra can build on, side by side.
  • DigitalOcean, Hetzner, OVHcloud, Scaleway and UpCloud price from Ankra’s list-price book.
  • AWS, Google Cloud and Azure price from their per-region catalogues, and each column names the region it used. AWS offers every current-generation EC2 type except Apple Mac hosts, burstable T instances included. Google Cloud and Azure offer only the families whose shape can be read from the size name: general-purpose and compute-optimised, plus Azure’s memory-optimised E series. Which sizes each hyperscaler offers.
  • Proxmox VE and HPE Morpheus price per unit of capacity from a rate card, and the column says which card.
Each column shows the predicted monthly bill and the difference against today. Tiles name the cheapest full match, the closest to today, and a break-even: two weeks of running both clusters during the move, against what the move saves per day. Pick a matching rule at the top:
  • Like-for-like (the default) keeps each group on the same vCPU class, shared or dedicated, where the target sells one. The class of each provider’s sizes is listed in the reference.
  • Cheapest size that fits ignores class. Under like-for-like it stays as a footnote on each column.
A node group with GPUs is priced only where the target’s price book records GPU sizes, which today is UpCloud. On every other target the group is unpriced, so the column shows a “from” figure and names it. A Stay column prices the same fleet re-sized on the cluster’s own provider. Select any column to see it line by line and group by group. A target with an unpriced line shows a “from” figure, names what is missing, and never sorts as cheapest. Latency, storage class, availability zones, load-balancer features, egress terms and negotiated discounts are not priced. Weigh them next to the number.

Settings

Each member can set Your display currency under Cost → Settings, and every cost figure they see, including provider quotes in the cluster-create wizards, renders in it. Organisation admins set the defaults:
  • Currency - the organisation default: EUR (the default), USD, GBP, SEK, NOK, DKK, CHF, PLN, CZK, JPY, CAD, AUD or INR.
  • Effective discount - a flat 0-100% discount on list prices, to approximate committed-use or enterprise agreements.
  • Network egress estimate - whether to add an estimated egress component.

From the CLI and Ankra AI

Every command takes -o json. See the ankra cost reference for savings, the ledger and per-object cost, and the Cost API reference for field meanings. In chat and over MCP, Ankra’s AI reads the same figures with get_fleet_cloud_cost, get_cluster_cost, get_stack_cost, get_cloud_savings and get_cost_settings. Changes need an mcp:write token and the same permissions as in the portal.

Budgets and the cost autopilot

A budget is a monthly amount for the organisation, one cluster, one environment label or one application. It shows spend so far, the projected month end and the hour it would cross the budget. Ankra sends a Budget crossing notification when the projection reaches the alert threshold (80% unless you set another). Route it with notification routing. The cost autopilot decides how much Ankra may do about cost without asking. Each environment kind (production, staging, development, preview, unknown) takes a tier: hands-off, scheduled, managed or ephemeral. An organisation that never set a policy is hands-off everywhere, so every change waits for a person. You can override one cluster’s tier and set daily quiet hours.
Every member can read budgets and the autopilot policy. Changing a budget needs the billing.manage permission; changing the autopilot also needs clusters.write. Ankra’s AI uses get_cost_budgets, set_cost_budget, get_cost_autopilot and update_cost_autopilot.
Closed beta. The portal Cost tabs do not show budgets or the autopilot yet; use the CLI, the API or Ankra’s AI. A new Cost page that shows them (under Autopilot and Signals & policy) is in closed beta and enabled per organisation on request. When it is on, a banner on the Overview, Savings and Clusters tabs links to it. Contact support to have it turned on for your organisation.
Next: stop idle clusters on a schedule with power schedules.