TL
The short answer

If you run more than one cloud, you cannot manage what you cannot compare, and raw provider bills do not compare. Each of AWS, Azure, GCP, and OCI names its services differently, groups charges differently, applies discounts and commitments differently, and times its billing differently, so the same idea appears under different labels and a naive side by side total is misleading. Normalizing means mapping all of that into one schema with consistent definitions, so committed discount, amortized cost, usage, and service category mean the same thing whichever cloud the row came from. The FinOps Foundation FOCUS specification standardises billing data across providers into exactly this shape, which is why normalization is now mostly a question of adopting FOCUS exports and resolving the gaps, rather than building a bespoke translation layer from scratch.

Here is why the bills differ, how FOCUS fixes most of it, and the decisions you still have to make to keep the numbers honest.

Why is cost so hard to compare across clouds?

The providers were never designed to be compared, so their billing reflects their own internal models. Service taxonomy differs: a managed database, a load balancer, or an egress charge sits in a different category and carries a different name on each cloud. Discount mechanics differ: AWS Savings Plans and Reserved Instances, Azure Reservations and the Azure Savings Plan, GCP Committed Use Discounts and automatic sustained use discounts, and OCI Universal Credits each apply savings in their own way, so the relationship between list price and what you pay is not the same. Timing and amortization differ: some charges are upfront, some are amortized, and the granularity of the records varies. Even the meaning of cost differs, because billed cost, amortized cost, and effective cost can each be reported, and mixing them produces nonsense.

The consequence is that a report stitched together from raw exports tends to double count, miscategorise, or compare list price against effective cost. The fix is a single normalized schema applied before any comparison or chart is built.

How does the FOCUS standard help?

FOCUS, the FinOps Open Cost and Usage Specification, is an open standard that defines a common set of columns and consistent definitions for cloud billing data. AWS, Azure, GCP, and OCI can export their billing into the FOCUS schema, so instead of mapping four proprietary formats by hand you start from data that already shares a structure. That gives you consistent fields for things that previously needed reconciliation: a common notion of billed and amortized cost, a consistent way of expressing commitments and discounts, a shared service category, and aligned time periods. It does not erase every difference, because provider specific concepts still exist, but it moves normalization from a large custom engineering project to a manageable exercise of adopting the exports and handling the residue.

What decisions still have to be made?

Normalization is not purely mechanical, and three choices matter. First, choose the cost basis and hold it constant: use effective amortized cost for spend reporting because it reflects what you actually pay after commitments, and reserve list price for like for like rate comparisons, never mixing the two in one view. Second, align the dimensions you allocate by, because a tag, account, project, or subscription means something slightly different on each cloud, so a normalized tagging dictionary is what lets you slice all four estates the same way. Third, decide how to handle provider specific items that do not map cleanly, such as Support Rewards on OCI or specific marketplace charges, by assigning them a consistent category rather than letting them fall into a miscellaneous bucket that hides real money.

Worked example

A European SaaS company running three clouds built its executive cost report by exporting each provider bill and summing them, and the totals never reconciled with what finance saw leave the bank. The problem was unnormalized data: one cloud was reported on billed cost, another on amortized, commitments were counted twice in places, and egress sat in different categories on each. Moving to FOCUS exports, fixing the cost basis to effective amortized cost everywhere, and applying one normalized tagging dictionary produced a single report where a category meant the same thing across all three clouds. The reconciliation gap closed, and for the first time the company could compare cost per category across providers and act on the differences. Figures are verified against billing data and anonymised.

What does normalized cost data unlock?

Once the data is normalized, the multicloud work that was impossible becomes routine. You can produce single pane reporting where one dashboard shows every cloud on the same basis. You can compare cost per unit, such as cost per customer or per transaction, across providers and let economics inform workload placement. You can run anomaly detection that works the same way on every cloud, and you can give each team one number it owns regardless of which provider its workloads run on. Normalization is the unglamorous foundation under all of it: without it, every cross cloud comparison is an argument about definitions instead of a decision about cost.

Frequently asked questions

Why is cost hard to compare across clouds?
Each provider names, groups, and times its billing differently, applies discounts in its own way, and uses its own service taxonomy. The same concept, such as committed discount or amortized cost, appears under different labels, so a raw side by side comparison is misleading.
What is the FOCUS billing standard?
FOCUS is the FinOps Foundation open specification that standardises cloud billing data into one schema with consistent columns and definitions. AWS, Azure, GCP, and OCI can export to it, so normalized data becomes the starting point rather than a custom mapping effort.
Should you normalize on list price or effective cost?
Use effective amortized cost for spend reporting, because it reflects what you actually pay after commitments and discounts. Use list price only for like for like rate comparisons, and always label which basis a number uses so two figures are never mixed.

Build the foundation for multicloud cost control

Our cloud cost optimization playbook covers normalizing and governing cost across AWS, Azure, GCP, and OCI, including how to put the FOCUS standard to work. We are an independent buyer side advisory with zero provider commissions, and our guarantee is simple: we reduce your cloud spend or we reimburse our service fee.

Independent · buyer-side

Put a defensible number on your cloud spend.

No provider in the room, no published price list. Tell us your footprint and we will scope the savings against your billing data — we reduce your cloud spend or we reimburse our service fee.

Buyer-side intelligence, monthly.

The Cloud Spend Navigator: what changed in cloud pricing, commitments, and FinOps — no vendor spin.