# BigQuery CUDs: A Practical Guide to Cost Optimization
BigQuery is Google Cloud’s serverless data warehouse that allows you to run SQL-like queries on large datasets. It’s designed for analyzing massive amounts of data quickly without managing infrastructure. BigQuery supports both structured and semi-structured data and integrates seamlessly with tools like Looker, Data Studio, and Cloud Composer.
While BigQuery is powerful and easy to scale, understanding its pricing can be a major pain point. Costs can quickly grow if workloads are unpredictable, This article aims to clarify those pricing challenges and focuses on how Committed Use Discounts (CUDs) can help reduce costs.
## Understanding BigQuery Pricing
BigQuery pricing is based on two main components: Compute and Storage. Compute charges apply to query execution, ML workloads, and orchestration via tools like Composer. Storage charges are based on the volume of data stored and how recently it has been modified. These are billed separately and follow different pricing models.
### Compute Pricing Models: On Demand vs. Capacity Based Editions
BigQuery compute pricing includes two options: on demand pricing and capacity based pricing using BigQuery Editions.
With on demand pricing, you are charged based on the amount of data scanned by each query. This model is ideal for users who run ad hoc or infrequent queries. It provides flexibility because there are no upfront commitments. However, it may become expensive if your workloads are large or consistent.
To address this, Google introduced BigQuery Editions under capacity based pricing. Instead of paying per query, you are billed per second for the CPU and memory resources consumed. This model includes autoscaling, so the system adjusts compute resources automatically based on your workload.
There are 3 Editions available:
- Standard Edition: Offers basic autoscaling and is ideal for general purpose analytics workloads.
- Enterprise Edition: Includes features like BI Engine, BigQuery ML, materialized views, and row level security.
- Enterprise Plus Edition: Designed for the most critical workloads. It provides the highest SLOs, cross region failover, automatic job restart, and secure VPN egress controls.
| Feature | Standard | Enterprise | Enterprise Plus | On-demand pricing |
| --- | --- | --- | --- | --- |
| **Pricing model** | Slot-hours (1 minute minimum) | Slot-hours (1 minute minimum) | Slot-hours (1 minute minimum) | Pay per query with free tier |
| **Monthly SLO** | >=99.9% | >=99.99% | >=99.99% | >=99.99% |
| **Compliance controls** | No access through Assured Workloads | No access through Assured Workloads | Access through Assured Workloads | Access through Assured Workloads |
| **BI acceleration** | Not available | Available | Available | Available |
| **Workload management** | No concurrency settings | Advanced management | Advanced management | Not available |
| **Compute model** | Autoscaling | Autoscaling + Baseline | Autoscaling + Baseline | On-demand |
| **Max reservation size** | 1,600 slots | Quota | Quota | Quota |
| **Max reservations per admin project** | 10 | 200 | 200 | Not available |
| **Commitment plans** | Not available | 1-year (20% off) or 3-year (40% off) | 1-year (20% off) or 3-year (40% off) | Not available |
| **Assignments** | Project only | Project, folder, org | Project, folder, org | Not available |
| **Assignment types supported** | QUERY, PIPELINE | QUERY, CONTINUOUS, PIPELINE, ML_EXTERNAL, BACKGROUND | QUERY, CONTINUOUS, PIPELINE, ML_EXTERNAL, BACKGROUND | Not supported |
| **Managed disaster recovery** | Not available | Not available | Available | Not available |
| **Data export to Bigtable** | Not available | Available | Available | Not available |
Source: BigQuery Docs
### Storage Pricing Models: Active and Long Term
Storage costs in BigQuery are based on how much data you store, and how recently that data was modified. (Storage pricing)
- Active storage (around $0.02 per GB per month): Charged for data modified in the last 90 days.
- Long term storage (around $0.01 per GB per month): Automatically applies to data that has not been modified in over 90 days.
To learn more about pricing, check out the BigQuery pricing dreakdown here.
📌 Note: Storage pricing is entirely pay as you go. BigQuery does not support CUDs or long term pricing for storage. (More info)
### What Are Committed Use Discounts (CUDs)?
Committed Use Discounts (CUDs) let you save money by committing to a fixed hourly spend over a 1- or 3-year term. In return, you get discounted rates on eligible compute usage. A 1-year CUD saves you around 10%. A 3-year CUD can save up to 20%.
### How do CUDs work with the new pricing model?
Unlike legacy slot reservations, CUDs are spend based instead of capacity based. You commit to a minimum spend amount, not to a fixed number of slots.
CUDs apply at the billing account level. This means different teams or projects can share savings if they run workloads in the same region.
They work across BigQuery Editions and extend to tools like Cloud Composer 3 and BigQuery Data Governance. Because CUDs apply automatically, there is no need to assign resources or reserve capacity manually.
⚠️ Important: If your usage drops below the committed spend, the unused portion still gets charged. Any usage above the commitment is billed at standard on demand rates. (Learn more)
### Where CUDs Do Not Apply
While CUDs offer savings on compute usage, they do not apply to every part of BigQuery or its ecosystem. Knowing these exclusions is important so you do not expect savings where they cannot be applied.
- CUDs do not apply to BigQuery storage. All storage is billed separately on a pay as you go basis.
- CUDs do not apply to on-demand analysis query pricing. These queries are charged based on the amount of data scanned.
- They do not apply to streaming inserts or data ingestion jobs.
- CUDs do not cover network egress or data transfer costs.
## Understading your baseline spend:
Before purchasing a CUD, it’s important to understand your typical usage. You can use the steps below to visualize your baseline spend.
Step 1: Set up billing export
- Go to Billing > Billing Export in the Google Cloud Console.
- Enable BigQuery export to a dataset of your choice.
- Wait 24–48 hours for data to populate.
Step 2: Run the analysis query
Open the Google Cloud Console, navigate to BigQuery, and click on “Compose New Query.” Paste the SQL query below into the editor. Replace project.dataset.billing_export* with your actual billing export dataset name, adjust the date range as needed, and click Run to execute.

Here’s the code to copy for your convenience:
```
sqlCopyEditWITH base AS ( SELECT * FROM `project.dataset.billing_export*` WHERE 1=1 AND TIMESTAMP_TRUNC(export_time, DAY) = TIMESTAMP("2025-04-20") AND sku_group_description LIKE "%PAYG%" AND service_description = "BigQuery Reservation API")SELECT usage_start_time, sku_group_description, sku_description, location.region, SUM(cost) FROM base GROUP BY ALL
```
Source
Once the results are generated, you can:
- Export results to Google Sheets.
- Create a line chart with usage_start_time on the x-axis and SUM(cost) on the y-axis.
- Identify consistent patterns in your spend.
Use this visualization to estimate your average hourly compute usage.This code is based on a method recommended by DoIT and helps you understand your baseline spend before making any commitments. A common recommendation is to commit to about 60–80% of your average usage. This gives you flexibility for unexpected spikes without overcommitting.
### Practices for Maximum Savings with BigQuery CUDs
- Commit to 60–80% of your average compute usage for a safe and cost effective baseline.
- Use a mix of 1-year and 3-year commitments to balance flexibility with long term savings.
- Regularly track your commitment usage and monitor them for changes. Tools like Economize, can help you with this by providing periodic insights about your cloud spend and smart recommendations based on your usage and environment.
- Because CUDs are region bound, make sure your workloads are aligned within the same region so different teams can benefit from shared savings.
### Conclusion:
BigQuery pricing now revolves around Editions, with Committed Use Discounts becoming the go-to way to reduce compute spend. If your workloads are steady and predictable, CUDs can help you cut costs without adding much management overhead.
To get the most out of it, track your past usage, estimate your commitment conservatively, and keep regional placement in mind since CUDs only apply within the same region. With the right approach, BigQuery can stay cost effective even at scale.
---
*Source: https://www.economize.cloud/blog/bigquery-commited-use-discounts*