Statement period: Apr 2026
$cloudfinopscost.com

Strategy / FOCUS billing standard

FOCUS Specification Guide 2026: the standard for multi-cloud billing data

FOCUS v1.3 is the emerging standard for normalised cloud billing data. The FinOps Foundation explains it conceptually. Cloud providers document their FOCUS exports. This is the practical reference: key columns, provider adoption status, working SQL queries, current limitations, and a step-by-step adoption guide.

FOCUS 1.3 GA Dec 2025AWS / Azure / GCP / OCI / TencentSingle SQL across providers

What FOCUS solves

AWS CUR, Azure Cost Management exports, and GCP BigQuery billing export historically used different column names, different units, and different metadata structures.

FOCUS provides a single schema across all providers. Billing analytics that worked on AWS now work on Azure and GCP without rewriting queries. Multi-cloud reporting becomes tractable for the first time without paying for a vendor abstraction layer.

Schema reference / 15 essential columns

FOCUS v1.3 key columns

ColumnWhat it represents
BilledCostWhat you actually owe for the line item, after applying credits and discounts.
EffectiveCostAmortised cost over the commitment period (relevant for upfront RIs / SPs).
ListCostPublic-list cost before any discount or credit.
ServiceNameCloud service the line item belongs to (Compute Engine, EC2, Azure VM).
ServiceCategoryHigher-level grouping: Compute, Storage, Networking, Databases, AI/ML, etc.
ResourceIdCloud-native resource identifier (instance ARN, resource ID, project/resource name).
ResourceNameHuman-readable resource name.
ChargeCategoryType of charge: Usage, Purchase, Tax, Adjustment, Credit.
ChargeFrequencyRecurring, OneTime, Usage-Based.
CommitmentDiscountIdIdentifier of the SP, RI, or CUD applied to the line.
CommitmentDiscountTypeSavingsPlan, ReservedInstance, CommittedUseDiscount, SpendCommitment.
ProviderAWS, Microsoft, Google, Oracle, Tencent.
InvoiceIssuerEntity issuing the invoice (often the provider, sometimes a reseller).
BillingAccountIdAccount or organisation under which the charge appears.
BillingPeriodStart / EndStandard ISO 8601 timestamps for the billing period.

Provider adoption / where FOCUS exports work today

Adoption status

ProviderStatusExport nameNote
AWSGACost and Usage Report 2.0 (CUR 2.0) with FOCUS columnsEnable via Billing console. Loads to S3 and Athena. FOCUS 1.0 GA, 1.3 columns rolling out.
AzureGACost Management FOCUS exportConfigure under Cost Management exports. Daily granularity, FOCUS 1.0 schema, 1.1 in preview.
GCPGABigQuery billing export with FOCUS schemaStandard FOCUS view layered on BigQuery billing export. SQL-native consumption.
Oracle (OCI)GAFOCUS-formatted cost reportAvailable via Cost Analysis console. CSV download or object storage.
TencentGAFOCUS-formatted cost reportReleased 2024 for international Tencent Cloud customers.

Working SQL / four queries that run identically across providers

Practical queries

Total spend by service category, current month

SQL
SELECT
  ServiceCategory,
  SUM(BilledCost) AS spend
FROM focus_billing
WHERE BillingPeriodStart >= DATE_TRUNC(CURRENT_DATE(), MONTH)
GROUP BY ServiceCategory
ORDER BY spend DESC;

Same query works on AWS, Azure, GCP, OCI, and Tencent FOCUS exports.

Commitment discount utilisation

SQL
SELECT
  Provider,
  CommitmentDiscountType,
  SUM(BilledCost) AS billed,
  SUM(ListCost) AS list,
  1 - SUM(BilledCost) / NULLIF(SUM(ListCost), 0) AS effective_discount
FROM focus_billing
WHERE BillingPeriodStart >= DATE_TRUNC(CURRENT_DATE(), MONTH)
  AND CommitmentDiscountType IS NOT NULL
GROUP BY Provider, CommitmentDiscountType;

Compares Savings Plan, RI, and CUD utilisation in a single result set.

Cost by tag (team), grouped

SQL
SELECT
  Tags ['team'] AS team,
  Provider,
  SUM(BilledCost) AS spend
FROM focus_billing
WHERE BillingPeriodStart >= DATE_TRUNC(CURRENT_DATE(), MONTH)
GROUP BY team, Provider
ORDER BY spend DESC;

Cross-provider tag-based chargeback using a normalised Tags column.

Month-over-month service trend

SQL
WITH monthly AS (
  SELECT
    DATE_TRUNC(BillingPeriodStart, MONTH) AS month,
    ServiceName,
    SUM(BilledCost) AS spend
  FROM focus_billing
  GROUP BY month, ServiceName
)
SELECT
  ServiceName,
  month,
  spend,
  spend - LAG(spend) OVER (PARTITION BY ServiceName ORDER BY month) AS mom_change
FROM monthly
ORDER BY ServiceName, month;

Detects services where spend is trending up unusually across providers.

Adoption playbook

8 steps to FOCUS-native cost reporting

  1. 01

    Enable FOCUS-formatted billing export from each provider you use

  2. 02

    Pick a central data warehouse (BigQuery, Athena/Snowflake on top of S3, or Snowflake)

  3. 03

    Schedule daily exports to land in the warehouse

  4. 04

    Build a unified table or view with consistent partitioning (BillingPeriodStart)

  5. 05

    Map existing reports and dashboards to FOCUS column names

  6. 06

    Validate totals against provider invoices for the first three billing periods

  7. 07

    Build cross-provider dashboards using the FOCUS column reference

  8. 08

    Roll out access to FinOps, engineering leads, and finance

Limitations / what FOCUS does not solve

Where you still need other tools

Resource-level utilisation data

FOCUS covers cost and usage but not CPU, memory, or storage utilisation. Rightsizing still requires provider-specific telemetry.

Real-time data

FOCUS exports are typically daily, sometimes hourly. Real-time alerting still requires native cost APIs or third-party platforms.

Kubernetes pod-level allocation

FOCUS describes cloud-billed resources, not pod-level allocation inside a node. Kubecost / OpenCost still required for K8s allocation.

Custom pricing visibility

EDP, EA, and PPA negotiated rates appear in BilledCost but the discount percentage relative to public list may not be exposed in all providers.

Sub-resource detail

Some providers expose sub-resource detail (S3 by storage class, EC2 by usage type) that does not have a fully consistent FOCUS representation yet.

Common questions

FAQ

What is FOCUS and who maintains it?+

FOCUS is the FinOps Open Cost and Usage Specification, a community-driven schema for cloud billing data. The FinOps Foundation (under the Linux Foundation) maintains the spec. Major cloud providers (AWS, Microsoft, Google, Oracle, Tencent) and FinOps platform vendors contribute. Version 1.3 was ratified December 2025.

Do I need FOCUS if I use only one cloud?+

Less critical, but still useful. Single-cloud teams can use the provider's native billing export. FOCUS becomes valuable when you might add a second cloud, change providers, or want a future-proof schema. The FOCUS column structure is also generally cleaner than legacy provider exports.

How do I set up FOCUS exports?+

AWS: enable CUR 2.0 in Billing console, export to S3, query via Athena. Azure: configure Cost Management FOCUS export to a storage account. GCP: enable BigQuery billing export, then layer the FOCUS view on top. Each provider has detailed documentation. Plan a one-week setup project and a few iterations to validate totals.

What does FOCUS not solve?+

Resource utilisation (CPU, memory, IOPS), real-time data, Kubernetes pod-level allocation inside nodes, and some sub-resource detail. FOCUS is a billing schema. Optimisation still requires utilisation telemetry, and Kubernetes still needs Kubecost or OpenCost for pod-level cost allocation. FOCUS is the substrate, not the whole stack.

Will FOCUS replace third-party FinOps platforms?+

No. FOCUS makes data interchange tractable but tools still add value: anomaly detection, automated commitment management, executive dashboards, allocation rules, and rightsizing recommendations. Vantage, CloudHealth, Apptio, and others have moved to FOCUS-aligned data models, which makes them easier to use, not redundant.

Continue reading