Unallocated cloud cost is the part of the bill that no account, tag or rule assigns to an owner: a remainder that stays in the report as a line of its own and needs a named person responsible for shrinking it. Its size is the complement of allocation coverage. For the bill this matters because cost in the remainder is missing from every team report, budget per owner and unit cost, and nobody acts on a saving or explains an anomaly inside it. Spread quietly over everyone, it makes the reports complete but no longer right.
How it works
Cost allocation works in layers. The account structure assigns every line to its account, subscription or project; tags add the owner on the resource; allocation rules cover what tags miss; and a key splits the shared cost. Whatever falls through every layer is the unallocated remainder. The FinOps Foundation tracks this remainder in its Allocation capability (Understand Usage & Cost domain) with KPIs of its own: its size, as the effective cost of unallocated resources divided by total cloud cost in the period, and how long it takes on average until such cost is explained and assigned to an owner.
What the remainder is made of
| Component | Example | Why nothing catches it | Way out |
|---|---|---|---|
| Untagged usage | a database without the team key | the tag is missing on the resource | tag it, and a rule for the past |
| Untaggable charges | support, tax, fees | they belong to no resource | a rule, or a split as shared cost |
| Commitments | the unused part of a reservation or savings plan | it belongs to the buyer, not a workload | a central budget or a split key |
| Late lines | credits, refunds, restatements | they arrive after the report or without a resource | allocate again after finalisation |
| Cluster remainders | idle and unassignable capacity in Kubernetes | nodes are billed, not pods | a rule for the cluster |
The providers name these groups differently. Azure cost analysis, grouped by a tag, separates three cases: purchases, classic resources and others that cannot be tagged show as Tags not supported, services whose usage data carries no tags as Tags not available, and only the rest as Untagged. On Google Cloud, support costs belong to the Cloud Billing account rather than a project, so those lines and the tax on them carry empty project columns in the export. On AWS, such lines can be routed by a rule on the Charge type dimension, with values such as Tax, Fee, Recurring reservation fee or Savings Plan Recurring Fee. Azure shows the unused part of reservations and savings plans only in the amortized view, as a line of its own.
Kubernetes tools each keep their own buckets. The AKS cost analysis add-on reports Unallocated charges (cost that could not be assigned to a namespace) and, separately, Idle charges for unused capacity. GKE puts capacity requested neither by workloads nor by the system into the kube:unallocated namespace. The OpenCost API returns idle as an allocation of its own, __idle__, when includeIdle is set. The same word therefore means different things: what GKE calls unallocated sits under idle on AKS. How these remainders arise inside a cluster is covered in Kubernetes cost allocation.
Where it shows in the data
| Provider | Native view of the remainder | Where it sits in the data |
|---|---|---|
| AWS | cost category: lines no rule matches get the default value; without one, the details page shows them as Uncategorized | the cost category column in the CUR, a dimension in Cost Explorer and AWS Budgets |
| Azure | the Untagged, Tags not available and Tags not supported groups in cost analysis | lines without the tag in the cost details |
| Google Cloud | in the BigQuery export, rows without the label key carry an empty value | rows without the label key, and rows with empty project columns, in the BigQuery export |
AWS applies a new or edited cost category from the first day of the current month and takes up to 24 hours to apply it. A default value with an unambiguous name turns the remainder into a visible line across the AWS tools.
What it means for your cost
In a cost report the remainder is a line beside the teams, and teams plus remainder add up to the invoice. Its share of total cost, month by month, is the companion figure to allocation coverage: when it rises, a source of cost without an owner has appeared; when it falls, someone has tagged resources or written a rule. Broken down by component, the report also shows who can act. Untagged usage is closed by the teams that create resources (tag coverage and untagged cost). Untaggable charges need a rule, commitments a decision about who bought them. Late lines settle only with restatement and the month's finalisation (freshness, restatements and finalisation).
Spreading the remainder by default, for example in proportion to each team's direct cost, makes the team totals add up. But every team then carries cost it can neither see nor influence, and nobody has a reason left to close the gap. The FinOps Foundation's Allocation capability notes that many practices at an early stage handle shared cost by "informed ignore": they leave such items in a central budget on purpose and charge none of them to cost centres. The same logic applies to the remainder. Where spreading is the agreed policy, it is a shared cost rule with its own dated key, and the report still shows the remainder before the split.
The remainder needs a named owner who presents it in the monthly review (monthly cloud cost review), passes individual lines on to teams and follows the trend. Which role that is follows from the operating model (FinOps roles and responsibilities). Enforcing mandatory metadata at provisioning belongs to governance; it prevents new gaps but does not clear the existing remainder.
Where it goes wrong
- The remainder is spread silently. Symptom: team totals match the invoice exactly, yet every team's cost rises with no visible cause. Cause: an apportionment spreads the remainder, so nobody sees it grow.
- One bucket for everything. Symptom: the unallocated line grows month after month and nobody feels responsible. Cause: untagged usage, untaggable charges, commitments and late lines sit together, although each has a different way out.
- The default value points at a team. Symptom: an AWS cost category shows no remainder, but one team grows without changes of its own. Cause: the category's default value is a real team instead of an unambiguously named remainder.
- Cluster remainders are missing from the report. Symptom: the namespaces add up to less than the cluster's cost on the invoice. Cause: AKS idle and unallocated charges or GKE's
kube:unallocatedare not carried as lines of their own. - The remainder changes after month end. Symptom: a closed month shows a different remainder the next time it is queried. Cause: credits, refunds and restatements arrive late, often without the original resource.
Sources
Read on 2026-10-16. FinOps Foundation Allocation capability (CC BY 4.0); AWS organizing costs using AWS Cost Categories and viewing cost categories; Microsoft group and filter options in Cost Analysis and Budgets and Azure Kubernetes Service (AKS) cost analysis; Google get key spending insights for your GKE resource allocation and cluster costs and structure of the Standard data export; OpenCost OpenCost Specification and API.