Onam

What is cloud cost allocation?

In short

Cloud cost allocation is the practice of assigning every cloud cost to the team, product, environment or customer responsible for it. It relies on account structure, resource tags and rules for splitting shared costs, and its results are reported back to teams through showback, which informs them, or chargeback, which bills them.

Why cost allocation comes first

A cloud bill lists services and resources. It does not list owners. Until each cost is tied to someone accountable, every other FinOps activity stalls: a rightsizing recommendation has nobody to act on it, a budget has nothing to measure against, and an anomaly has nobody to ask.

Allocation turns "we spent more on compute this month" into "the payments team's staging environment doubled in size on the 14th".

How is cloud cost allocated?

Most organisations combine three mechanisms, from coarsest to finest:

  1. Account structure — separate accounts, subscriptions or projects per team, product or environment. Anything inside an account inherits its owner. This is the most reliable mechanism because it does not depend on anyone remembering a tag.
  2. Tags and labels — key-value metadata on each resource, such as team, product, environment and cost-centre. Tags allow finer splits inside shared accounts.
  3. Allocation rules — logic applied after the fact to costs that neither of the above can attribute, such as shared platforms, support charges and commitment discounts.

What makes a good tagging strategy?

  • A short, mandatory set of keys. Three to five required tags that every resource must carry beat thirty optional ones.
  • Controlled values. prod, Prod and production are three different owners to a report. Publish the allowed values.
  • Enforcement at creation. Tag policies, infrastructure-as-code checks or provisioning guardrails stop untagged resources being created, which is far cheaper than fixing them later.
  • Not every cost can be tagged. Some charges — data transfer, support, some marketplace fees — carry no resource tags at all, so tagging alone never reaches full coverage.
  • Measure coverage. Report the share of spend that is allocated, and treat the unallocated remainder as a number to drive down rather than a rounding error.

How are shared costs split?

Shared platforms — a Kubernetes cluster, a central network, a logging pipeline — serve many teams at once. Common approaches:

MethodHow it worksGood for
Even splitDivide equally among consumersSmall, roughly equal consumers
ProportionalSplit by a usage driver — CPU requested, bytes ingested, requests servedPlatforms with measurable consumption
Fixed ratioAgreed percentages, reviewed periodicallyCosts with no reliable driver
CentralKeep it in a platform budget, unallocatedCosts no team can influence

Whichever method is chosen, publish it. A split that teams cannot reproduce will be argued with rather than acted on.

Showback vs chargeback

  • Showback reports each team's allocated cost back to it, without moving money. It builds awareness and is where most organisations start.
  • Chargeback bills the cost to the team's budget through internal accounting. It creates stronger accountability, but only works when allocation is accurate enough that teams accept the numbers.

Moving to chargeback before allocation is trusted tends to produce disputes about the data instead of decisions about the spend.

Next steps

Frequently asked questions

What is the difference between showback and chargeback?

Showback reports each team's cloud costs to it for awareness, without moving money. Chargeback bills those costs to the team's budget through internal accounting. Showback is usually the first step; chargeback follows once teams trust the allocation.

Can tags alone allocate all cloud costs?

No. Some charges carry no resource tags — data transfer, support fees, some marketplace and commitment charges — and shared platforms serve many teams at once. Account structure and allocation rules are needed alongside tags to reach full coverage.

How do you allocate Kubernetes costs?

Usually proportionally: the cluster's cost is split across namespaces or workloads by a usage driver such as requested CPU and memory, with idle capacity either spread across consumers or kept as a platform cost. The chosen method should be published so teams can reproduce their share.

What is a good level of cost allocation coverage?

There is no universal target, but the unallocated share should be measured, reported and shrinking. What matters most is that the coverage figure is stated alongside the allocated numbers, so nobody mistakes a partial picture for a complete one.

See it on your own cloud

Onam FinOps works from reconciled billing data: what you spent, who owns it, what you will spend and what you can stop spending.