Home/Library/How to Ingest FOCUS Billing Exports Into a Data Warehouse
Tools, FOCUS & Visibility · Updated June 2026

How to ingest FOCUS billing exports into a data warehouse

A FOCUS billing export is cost data in the FinOps Foundation open format that AWS, Azure, and GCP all publish. Loading it into a warehouse is six steps: enable exports, land raw, load, validate against the spec, model into one table, and schedule. Reconcile to the invoice before trusting a single query.

Last updated: June 2026·Reviewed by Fredrik Filipsson, FinOps Certified Practitioner & Co-founder
// TL;DR

To ingest FOCUS billing exports into a data warehouse, enable the FOCUS-conformant export on each provider, land the raw files in object storage, load them into warehouse staging tables with correct data types, validate against the FOCUS specification and reconcile BilledCost to the invoice, model the providers into one unified FOCUS-shaped fact table, then schedule and monitor the whole load. Target FOCUS 1.3, ratified December 4, 2025, or the latest version your providers support. The step that most teams skip and most regret skipping is reconciliation: never trust a cross-cloud query until each provider's BilledCost matches its official invoice for the month.

Ingesting FOCUS billing exports into a data warehouse is how you turn three providers' cost feeds into one queryable, reconciled table that every dashboard and optimization play can sit on. FOCUS, the FinOps Open Cost and Usage Specification, gives all three major clouds a common schema, so the ingestion job is less about reshaping data and more about landing it reliably, validating it, and keeping it honest against the invoice. This guide is part of our cluster pillar, the complete guide to cloud cost visibility and tooling, and it is the loading counterpart to how to normalize cost data across AWS, Azure, and GCP.

What is a FOCUS billing export?

A FOCUS billing export is a cloud cost and usage dataset delivered in the format defined by the FinOps Open Cost and Usage Specification, the open standard maintained by the FinOps Foundation. Because AWS, Azure, and Google Cloud each publish a FOCUS-conformant export, the same column names and definitions apply across all three providers. That is exactly what makes FOCUS the natural landing schema for a multicloud warehouse: you ingest into one shape rather than maintaining three separate models, which is the difference described in our companion piece on how to build a cost anomaly detection pipeline that runs on the same clean dataset.

Which FOCUS version should you target in 2026?

Target FOCUS 1.3, ratified by the FOCUS Steering Committee on December 4, 2025, or the latest version your providers support. According to the FinOps Foundation, FOCUS 1.3 adds a Contract Commitment dataset, new allocation columns for splitting shared costs, metadata timestamp requirements that let you verify data recency and completeness, and Service Provider and Host Provider columns to distinguish who offers a resource from where it runs. The prior release, FOCUS 1.2 (ratified May 29, 2025), introduced foundational support for SaaS billing along with columns for effective cost and pricing in non-monetary units such as credits or tokens. Pin your pipeline to a known version, read each provider's documentation for which version their export currently emits, and upgrade on purpose rather than by surprise.

How do you ingest the exports, step by step?

Ingest FOCUS exports in six steps, from enabling the feed to a monitored daily load:

  1. Enable the FOCUS export on each provider. Turn on the FOCUS-conformant export in AWS Data Exports, Azure Cost Management exports, and the Google Cloud BigQuery billing export, each delivering daily to storage.
  2. Land the raw export in object storage. Deliver each export to a raw bucket partitioned by provider and date, and keep the original files untouched as your immutable source of record.
  3. Load into the warehouse with the right types. Load raw files into staging tables in BigQuery, Snowflake, Redshift, or Synapse, parsing FOCUS columns into correct numeric, string, and timestamp types rather than all-string.
  4. Validate against the FOCUS specification. Confirm the required FOCUS columns are present and conformant, the export version is the one you expect, and the period's BilledCost reconciles to the provider invoice.
  5. Model into one unified cost table. Union the per-provider staging tables into a single FOCUS-shaped fact table, deduplicating overlapping export windows so no charge is counted twice.
  6. Schedule, monitor, and version. Orchestrate the daily load, alert on late, missing, or unreconciled exports, and version the schema so a new FOCUS release cannot silently break downstream reports.

What does a FOCUS ingestion pipeline look like across providers?

StageAWSAzureGoogle Cloud
Export sourceData Exports (FOCUS)Cost Management export (FOCUS)BigQuery billing export (FOCUS)
Raw landingAmazon S3Azure Blob StorageBigQuery / Cloud Storage
FormatParquet / CSVParquet / CSVNative table
Delivery cadenceDailyDailyContinuous / daily
Reconcile onBilledCost vs invoiceBilledCost vs invoiceBilledCost vs invoice

The shapes converge on the same FOCUS columns at the staging stage, which is the entire point of the standard. Verify the current export setup and supported FOCUS version against each provider's live documentation before you build, since export product names and version support change.

Want a reconciled FOCUS warehouse stood up for you?

Our FinOps implementation engagement builds the FOCUS ingestion pipeline across AWS, Azure, GCP and OCI, validates it against every invoice, and delivers the unified cost table your reporting and optimization run on. Fixed fee or performance fee. No savings, no fee.

See FinOps implementation →

How do you reconcile a FOCUS export to the invoice?

Reconcile by summing the BilledCost column for one provider over one billing month and comparing it to that provider's official invoice. FOCUS defines BilledCost as the amount invoiced for the period and EffectiveCost as the value of commitments and one-time charges amortized across the period they cover, so reconciliation is always done on BilledCost. Treat any variance above one percent as a data defect rather than rounding; the usual culprits are missing credit or refund rows and double counted rows from overlapping export windows. Reconciliation is the validation step that separates a warehouse leadership trusts from a pile of plausible-looking numbers.

Which data warehouse is best for FOCUS billing data?

Any columnar analytics warehouse handles FOCUS data well, including BigQuery, Snowflake, Amazon Redshift, and Azure Synapse. BigQuery is the path of least resistance if you are already on Google Cloud because the billing export lands there natively, but the engine matters far less than the model. Once you have committed to a single FOCUS-shaped fact table with reconciliation built in, the warehouse choice becomes a question of cost, existing skills, and convenience rather than correctness. The white paper below includes a reference data model you can adopt regardless of engine.

// Go deeper · free guide

The Multicloud Visibility and FOCUS Guide includes the FOCUS ingestion reference architecture, the per-provider export setup checklist, and the reconciliation queries referenced above.

Common questions about ingesting FOCUS billing exports

What is a FOCUS billing export?

It is a cloud cost and usage dataset delivered in the format defined by the FinOps Open Cost and Usage Specification, the FinOps Foundation open standard. AWS, Azure, and Google Cloud each publish a FOCUS-conformant export, so the same columns and meanings apply across all three, which makes FOCUS the natural landing schema for a multicloud warehouse.

Which FOCUS version should you target in 2026?

Target the latest version your providers support, which is FOCUS 1.3, ratified December 4, 2025. It adds a Contract Commitment dataset, allocation columns for split shared costs, and metadata timestamps for recency and completeness. FOCUS 1.2, ratified May 29, 2025, added SaaS support and effective-cost columns. Pin your pipeline to a known version and upgrade deliberately.

How do you reconcile a FOCUS export to the invoice?

Sum the BilledCost column for one provider over one billing month and compare it to the official invoice. BilledCost is the FOCUS column for the amount invoiced, while EffectiveCost amortizes commitments, so reconcile on BilledCost. Treat any variance above one percent as a data defect, commonly missing credit rows or overlapping export windows.

Which data warehouse is best for FOCUS billing data?

Any columnar analytics warehouse works well, including BigQuery, Snowflake, Amazon Redshift, and Azure Synapse. BigQuery is easiest for Google Cloud because the export lands there natively. The schema matters more than the engine: model to one FOCUS-shaped fact table and the warehouse choice becomes a cost and convenience decision.

Written by Morten Andersen and reviewed by Fredrik Filipsson, applying our See, Cut, Lock, Run method. Independent and vendor neutral.

Primary sources & further reading

Cloud pricing and service behavior change frequently. Verify the specifics in this guide against the providers’ own current documentation and the FinOps Foundation: FinOps Foundation Framework ↗ and FOCUS billing specification ↗. This article also reflects Cloud Cost Room’s hands-on, vendor-neutral engagement experience.

Written by Morten Andersen

Co-founder of Cloud Cost Room and a FinOps Certified Practitioner, with 20 years in IT and cloud cost optimization across AWS, Azure, Google Cloud and OCI. More about Morten →

More from the Tools, FOCUS & Visibility cluster

See every guide in the Tools, FOCUS & Visibility cluster →

The Cloud Cost Brief

Cloud pricing moves. We tell you when it matters.

New commitment instruments, FOCUS changes, hyperscaler pricing shifts, and the plays that actually move a bill. No schedule, no filler.

Subscribe · Work email only