What is GCP Billing export?
GCP Billing export is the mechanism Google Cloud provides to export detailed billing and usage data to BigQuery or a Cloud Storage bucket for analysis. It is the GCP equivalent of the AWS Cost and Usage Report (CUR), giving organizations access to raw, granular cost data that goes beyond what is visible in the Google Cloud Console billing dashboard.
For any serious GCP cost management work, Cloud Billing export is the foundation. Without it, cost visibility is limited to what the console surfaces, which is sufficient for high-level monitoring but not for detailed allocation, chargeback, or trend analysis.
Two types of Cloud Billing export
GCP offers two export options:
- BigQuery export delivers detailed billing data directly into a BigQuery dataset. This is the recommended option for most organizations as it makes the data immediately queryable using SQL, without needing to move or transform files first. There are two variants: standard export, which covers usage and cost data, and detailed export, which includes resource-level data and labels.
- Cloud Storage export delivers billing data as JSON or CSV files to a Cloud Storage bucket, similar in structure to the AWS CUR. This option is less commonly used today, as BigQuery export is more flexible and easier to work with for analysis.
What the export contains
The detailed BigQuery export covers:
- Cost and usage data at the resource level, broken down by service, SKU, project, and region.
- GCP label values attached to resources, which serve the same cost allocation purpose as tags in AWS and Azure.
- Credits, discounts, and adjustments including sustained use discounts and committed use discount applications.
- Invoice and billing account information for organizations with multiple projects under a single billing account.
How to set it up
Cloud Billing export is not enabled by default. Setup involves:
- Enabling the export in the Google Cloud Console billing dashboard.
- Specifying a destination BigQuery dataset or Cloud Storage bucket.
- Selecting the export type, standard or detailed, depending on the level of granularity needed.
Once enabled, GCP begins exporting all data going forward. Historical data before the export was enabled is not backfilled, so setting it up early avoids gaps in cost history.
Querying billing data in BigQuery
Once the export is running, the BigQuery dataset can be queried directly using SQL. A few common use cases include:
- Filtering spend by project, label, or service to produce team-level cost reports.
- Tracking month-over-month cost trends by resource type.
- Identifying the specific resources or SKUs driving unexpected cost increases.
- Building cost allocation reports for chargeback or showback across GCP projects.
Google provides a set of sample queries in its documentation as a starting point, though most organizations develop their own based on how they structure projects and labels.
Keeping labels consistent
GCP labels, which are the equivalent of AWS and Azure tags, must be applied to resources before the export is enabled for them to appear in billing data. Labels added after the fact do not backfill historical records. This makes label hygiene and a consistent labeling strategy a prerequisite for useful billing export data, not an afterthought.
GCP Billing export vs. AWS CUR
| GCP Billing export | AWS CUR | |
|---|---|---|
| Destination | BigQuery or Cloud Storage | S3 |
| Query method | BigQuery SQL | Athena or similar |
| Default status | Not enabled | Not enabled |
| Historical backfill | No | No |
| Resource-level data | Yes, with detailed export | Yes, with resource IDs |
Both mechanisms require setup before data starts flowing, and neither backfills historical data. The main difference is that GCP's BigQuery destination makes the data more immediately accessible for analysis than the S3-based CUR, which typically requires a separate query layer.