The FOCUS specification, in full the FinOps Open Cost and Usage Specification, defines a common schema for billing data: which datasets a provider delivers, which columns they hold, what each column means and which minimum requirements its values meet. It matters for the bill because a FOCUS export puts the cost of AWS, Azure, Google Cloud and other providers into the same terms, but only as far as the provider's version and documented gaps allow.

How it works

Ownership and licence

According to the project site, FOCUS is an open specification initiative of the Linux Foundation, supported by the FinOps Foundation, the Tokenomics Foundation and the ITAM Forum. It is set up as a Joint Development Foundation specification project, which supplies governance and a legal home for licensing and patents. A steering committee appointed by the FinOps Foundation's governing board sets direction and approves the specifications; each release passes community contribution, review, approvals, ratification and an IP review. On the read date the committee includes people from AWS, Google Cloud and Microsoft. Maintainers keep the specification in the public GitHub repository FOCUS_Spec. Organisations contribute after signing the Contributor License Agreement, without FinOps Foundation membership and at no cost, and anyone with a GitHub account can open an issue. The text is licensed under CC BY 4.0, and patents fall under the W3C Mode option.

Versions

Versioning is inspired by Semantic Versioning without promising strict compatibility: releases mostly add, breaking changes pass through a documented deprecation cycle, and an implementation is expected to state its version.

VersionDateWhat it added
1.0GitHub release 2024-06-14First major version after 0.5 and 1.0-preview, with the Cost and Usage dataset
1.1Ratified 2024-11-07More columns for cloud billing data, metadata for ETL
1.2Ratified 2025-05-29SaaS and PaaS in the same schema, virtual currencies such as credits and tokens, multiple currencies, an invoice id on every charge
1.3Ratified 2025-12-05Contract Commitment dataset, columns for cost split by the provider, recency and completeness metadata
1.4Ratified 2026-06-04Invoice Detail and Billing Period datasets, Contract Commitment grown from 13 to 30 columns, commitment eligibility, rules for corrections and delivery

Version 1.4 also removes ProviderName and PublisherName, whose roles pass to ServiceProviderName, HostProviderName and InvoiceIssuerName, and Data Generator metadata. Work on 1.5 has begun, covering AI model identity and token consumption in the Cost and Usage dataset, a Price Sheet dataset for list prices and a migration guide.

Datasets

DatasetKindRequiredContentSince
Cost and UsageTransactionAlwaysCost and usage per charge, 65 columns0.5
Billing PeriodReferenceWhere payable invoices existBilling periods per invoice issuer, status Open or Closed1.4
Contract CommitmentReferenceWhere the provider supports contract commitmentsCommitment terms, joined through the Contract Commitment ID1.3
Invoice DetailTransactionWhere payable invoices existCharges as they appear on the invoice, joined through Invoice Issuer Name and Invoice ID1.4

The columns of Cost and Usage and each provider's mapping are covered in FOCUS columns and the providers' mapping.

Conformance and the providers

Requirements use MUST, SHOULD and MAY as BCP 14 defines them. An implementation is expected to meet every MUST. The FinOps Foundation maintains the FOCUS Validator, which it uses for its own conformance assessments; the FOCUS Conformance Program is the certification path for data generators. On the read date the FOCUS Validator tests 1.2 and 1.3; 1.4 support, announced for the third quarter of 2026, was not yet offered. On the read date, the three large providers declare version 1.2 and publish their own gaps:

ProviderDeliveryStatusDocumented gaps, examples
AWSTable FOCUS 1.2 with AWS columns through Data Exports to S3Generally availableListUnitPrice, ContractedUnitPrice, SkuId empty for some offerings; ConsumedQuantity includes minimum quantities
AzureDataset Cost and usage details (FOCUS) exported to a storage accountSchema 1.2-previewOwn conformance report; several columns currently empty
Google CloudFOCUS export to an immutable BigQuery datasetPreviewNo Tags, no commitment discount columns, no InvoiceId

Following 1.2, none of the three delivers the datasets added in 1.3 and 1.4 yet. The exports themselves are covered in AWS Cost and Usage Report and Data Exports, Azure cost exports: actual, amortized and FOCUS and Google Cloud billing export: the three datasets.

What it means for your cost

FOCUS fixes names, definitions and minimum requirements, and no more. It does not normalise prices: ListCost from two providers compares two price lists. It does not allocate cost to a company's teams: the allocated columns from 1.3 show only how a provider splits cost itself, and mapping to products or cost centres stays with the user. And it does not replace the invoice: Cost and Usage describes what was used, tax lines are typically excluded from it according to the FinOps Foundation, and only Invoice Detail mirrors the invoice. How an invoice is treated in the accounts is for the reader's tax adviser or auditor, not the specification.

A report across providers can use only the columns every export involved fills. At the core are the cost columns: BilledCost is the invoice view, EffectiveCost the effective cost view, in which prepayments are spread over usage as amortized cost. Since 1.4, one provider-neutral rule governs this: a covering purchase has an effective cost of zero, and its cost moves to the usage it covers. The cost views are explained in List, billed, effective and amortized cost, and the choice between the FOCUS export and CUR 2.0 on AWS in AWS CUR 2.0 or FOCUS 1.2: choose the right cost export. Whoever owns the data decides which version to build on, whether a documented gap touches the planned report and whether a preview dataset will do as a source.

Where it goes wrong

  • The version is not checked. Symptom: a query written for one version cannot find ProviderName or InvoiceDetailId in another. Cause: versions add columns and drop deprecated ones; 1.4 removed ProviderName, and the three providers' exports follow 1.2.
  • Conformance is read as complete. Symptom: sums by CommitmentDiscountId or InvoiceId are empty for one provider. Cause: each provider documents its own gaps; Google carries committed use discounts in x_Credits.
  • The FOCUS export is taken for the invoice. Symptom: the total differs from the invoice. Cause: Cost and Usage describes usage, and none of the three providers delivers Invoice Detail yet.
  • Preview schemas break queries. Symptom: a report fails after a schema change. Cause: Azure ships 1.2 as a preview and Google the whole export; Google recommends views because the schema can change.
  • Older FOCUS data is missing in BigQuery. Symptom: the series stops two years back. Cause: Google's FOCUS table has a two-year time to live, and older rows are deleted automatically.

Sources

Read on 2026-10-16. FOCUS, What is FOCUS?, About the FOCUS Project, FOCUS Specification 1.4, FOCUS 1.4: Conformance Checkers and Validators, FOCUS 1.4 Datasets, FOCUS data generators: AWS, FOCUS data generators: Microsoft Azure, FOCUS data generators: Google Cloud, Introducing FOCUS 1.4, FOCUS Validator, FOCUS_Spec repository, FOCUS_Spec releases, Joint Development Foundation, FOCUS 1.2 with AWS columns, FOCUS 1.2 with AWS columns conformance gaps, FOCUS cost and usage details file schema, Create and manage Cost Management exports, Structure of FOCUS data export, Export Cloud Billing data to BigQuery.