Starting January 21, 2026, Google Cloud makes changes to the Billing user interface, Cloud Billing export to BigQuery schema, and Cloud Marketplace API. These changes prepare for expanding the spend-based committed use discounts (CUD)s program. The changes provide customers the following benefits:
- Simplified billing: Google Cloud moves away from using credits to offset costs. It uses discounted prices to represent savings from spend-based CUDs. This change makes it easier for you to calculate the total cost of your CUDs and savings.
- Greater flexibility: This change expands the scope for some spend-based CUDs. As a result, a larger portion of your usage might be eligible for discounts.
This change doesn't increase the total cost. For more information about this change, see Billing user interface.
What action is required?
Review these upcoming changes. Prepare to update any systems that rely on Cloud Billing export to BigQuery . For example, update any FinOps cost management reporting dashboards to ensure compatibility with the new schema before the mandatory change. You can also opt in early.
When do these changes take effect?
The changes take effect on the following dates, depending on which scenario applies.
New customers
- If you create a Billing Account on or after July 15, 2025, the new billing model applies to you for spend-based CUDs in this list.
Customers without active spend-based CUDs in this list since July 15, 2024
- For Billing Accounts with no active spend-based CUDs in this list since July 15, 2024, the new model applies on July 15, 2025, at midnight US and Canadian Pacific Time (UTC-8).
Customers with active spend-based CUDs in this list since July 15, 2024
- For Billing Accounts with any active spend-based CUDs in this
list on or after July
15, 2024, the new model applies on January 21, 2026 at midnight US and
Canadian Pacific Time (UTC-8). You can opt in earlier, starting July 15,
- In that case, the new model applies when you click opt-in. Learn more about how to opt in
Resellers and customers with billing account hierarchies can find more details in the Do other CUDs change? section.
What is changing?
To support the new spend-based CUDs billing data model, the following changes apply to affected spend-based CUDs. For details on how this impacts your bills, see the What is changing? section.
- Some existing CUDs cover more products.
- Simplify CUD fees: New CUD fee SKUs replace existing CUD fee SKUs. The price for these new SKUs is $1.
- Improve Billing Console UI: The Billing Console UI changes to better enable accurate cost management and optimization experiences for CUDs.
- The UI that you use to purchase CUDs today changes. You used to input an hourly commitment amount in terms of equivalent on-demand spend.
- Update the Marketplace Procurement API: The Marketplace Procurement API is updated to enable purchasing of CUDs in this new model.
- Expand Billing data export: The Billing export data columns change to reflect the new pricing metadata and monetization of spend-based CUDs.
- Track consumption mode prices more easily: A new metadata field, Consumption Model, is added that represents the price of usage for a given SKU. Discounted prices at the appropriate Consumption Model represent the savings from spend-based CUDs. This new model replaces the use of "credits" that offset your list price usage rates.
- Purchasing new spend-based commitments is unavailable for a few hours for customers during their migration. For customers who opt in early, Google Cloud displays a warning about this outage on the Billing UIs. For customers who don't opt in early, this outage occurs when they are automatically migrated to the new model in January 2026.
- From 11 PM PST on July 14, 2025 to 12 AM PST on July 15, 2025, all customers are unable to purchase new CUDs for one hour.
What is not changing?
Your applicable discount rate for SKUs already eligible for spend-based CUDs remains the same. Your total costs won't increase if your usage behavior remains the same. However, your bill might decrease if you aren't fully utilizing your commitments but are using any of the newly added SKUs. Your contractual discounts are honored for the duration of your contract. Certain spend-based CUDs are not affected by this change at this time. Resource-based CUDs are also not affected by this change.
Change details
This section explains the changes that will occur with this CUDs expansion.
New SKUs added
After you opt in to the new model, SKUs for the following products are added to the scope of your Compute flexible CUDs:
- Compute H3
- Compute H4D
- Cloud Run (request-based billing during billed instance time), including Cloud Run functions
New CUD fee SKUs
The existing CUD fee SKUs (example) are replaced with new SKUs. These SKUs are priced at $1/hr unlike the existing SKUs which are priced at a lower rate to indicate the CUD benefit. The CUD benefit is now reflected using the Consumption Model prices described in New consumption model metadata. This doesn't affect your costs. More information about these SKUs is available in April, 2025.
New consumption model metadata
For each SKU, a new metadata field, "Consumption Model", represents the price of usage for this SKU. This price applies when the system monetizes usage for this SKU under this particular consumption model. For example, if a 1-Year Flex CUD covers VM usage, then the "Consumption Model" of the usage has a value of "1 Year Flex CUD".
Cloud Billing export to BigQuery
In the Cloud Billing export to BigQuery standard, detailed and rebilling (reseller only) data export, we will add or change the following fields:
Field | Type | New or updated | Description |
---|---|---|---|
price |
Struct | Existing (no change in detailed or rebilling export, adding to standard export.) | Fields that describe the structure and value related to the prices charged for usage. |
price.list_price |
Numeric | New field | SKU list price per the default consumption model. |
price.effective_price_default |
Numeric | New field | SKU price per the default consumption model per the custom pricing in the contract linked to your Cloud Billing account. |
price.list_price_consumption_model |
Numeric | New field | SKU list price per the applicable consumption model. |
price.effective_price |
Numeric | Existing (description updated in detailed and rebilling export; adding to standard export.) | SKU price per the applicable consumption model per the custom pricing in the contract linked to your Cloud Billing account. |
price.tier_start_amount |
Numeric | Existing in detailed export, adding to standard export. | The lower bound number of units for a SKU's pricing tier. |
price.unit |
String | Existing in detailed export, adding to standard export. | The unit of usage in which the pricing is specified and resource usage is measured. |
price.pricing_unit_quantity |
Numeric | Existing in detailed export, adding to standard export. | The SKU's pricing tier unit quantity. |
cost_at_list |
Numeric | Existing field, description updated to reflect changes. | Cost at list price. |
cost |
Numeric | Existing field, description updated to reflect changes. | Cost per the applicable consumption model per the custom pricing in the contract linked to your Cloud Billing account. |
cost_at_effective_price_default |
Numeric | New | Cost per the default consumption model per the custom pricing in the contract linked to your Cloud Billing account. |
cost_at_list_consumption_model |
Numeric | New | Cost per the applicable consumption model. |
consumption_model |
Struct | New | Fields that describe the applicable consumption model. |
consumption_model.id |
String | New | The ID of the consumption model. |
consumption_model.description |
String | New | The description of the consumption model. |
Price export changes
Cloud Billing export to BigQuery adds or changes these fields for pricing information:
Field | Type | New/Updated | Description (draft) |
---|---|---|---|
List_price |
Struct |
Updated | The list price of the Google Cloud or Google Maps Platform SKUs and SKU pricing tiers, in effect as of the pricing_as_of_time , with the default consumption model price. |
List_price.tieredrates.start_usage_amount |
Float |
Existing | Lower bound amount for a given list pricing tier, in pricing units. |
List_price.tieredrates.usd_amount |
Numeric |
Existing | The list price for the SKU, in US dollars. |
List_price.consumption_model_display_name |
String |
New | Display name for the consumption model. |
List_price.consumption_model_id |
String |
New | ID of the consumption model. |
Billing_account_price |
Struct |
Updated | If you have contract pricing, this is your custom SKU price from the contract that's linked to your Cloud Billing account, with the default consumption model price. |
Billing_account_price.tiered_rates.start_usage_amount |
Float |
Existing | Lower bound amount for a given billing account pricing tier, in pricing units. |
Billing_account_price.tiered_rates.usd_amount |
Numeric |
Existing | The billing account price for the SKU, in US dollars. |
Billing_account_price.tiered_rates.consumption_model_display_name |
String |
New | Display name for the consumption model. |
Billing_account_price.tiered_rates.consumption_model_id |
String |
New | ID of the consumption model. |
Consumption_Models |
List of structs | New | Both list price and billing account prices for the SKU, for all consumption models. |
Consumption_models.consumption_model_id |
String |
New | ID of the consumption model. |
Consumption_models.consumption_model_display_name |
String |
New | Display name for the consumption model. |
Consumption_models.list_price.tiered_rates.start_usage_amount |
Float |
New | Lower bound amount for a given list pricing tier, in pricing units. |
Consumption_models.list_price.tiered_rates.usd_amount |
Numeric |
New | The list price for the SKU, in US dollars. |
Consumption_models.billing_account_price.tiered_rates.start_usage_amount |
Float |
New | Lower bound amount for a given billing account pricing tier, in pricing units. |
Consumption_models.billing_account_price.tiered_rates.usd_amount |
Numeric |
New | The billing account price for the SKU, in US dollars. |
Billing user interface
The Billing section of the Google Cloud console includes updates to most pages to support the new data model. The updates include the Overview page, and the Cost Management and Cost Optimization sections of the Billing navigation menu.
Changes to budgets
You might need to adjust thresholds for budgets that you originally created that excluded "Committed use discounts (spend based)" credits. The total costs tracked by these budgets will decrease as the uncredited costs will now include savings when the new model applies. Visit the budgets dashboard at launch to review the affected budgets and make necessary changes.
Cloud Commerce Consumer Procurement API changes
The Cloud Commerce Consumer Procurement API enables programmatic purchases of spend-based CUDs with Marketplace offers. This API will change:
- The offer name for existing spend-based CUDs will change.
- The commitment amount for CUDs you purchase will change. Refer to CUD purchase flow changes for more details.
You must update any code that automates purchases of spend-based CUDs. Use the updated offer name and commitment amounts after you transition to the new billing model.
CUD purchase flow changes
The UI that you use to purchase CUDs today will change. This change doesn't impact CUDs that you have purchased. The system converts existing CUDs to the new model seamlessly. For more details, refer to CUD purchase flow changes.
Example data export before and after the new CUD model
The new spend-based CUD model requires you to plan and adjust your internal systems that might consume Cloud Billing data. As a result, we provide the following scenarios to show how the data export schema and data will change, before and after the new CUD model. We further divide these scenarios into situations where you overutilize and underutilize your CUDs to show the affect on the data export.
For both scenarios, consider that you've purchased an E2-Standard-8
VM in US Central 1
, consisting of two SKUs for RAM and Core. These SKUs use the fictional ID of RAM SKU
and Core SKU
, respectively.
Then, you purchase a 1 Year GCE Flex CUD
for $0.1/hr for the overutilized scenario and $.3/hr for the underutilized scenario. These are represented in the data as the fictional ID Fee SKU
.
Overutilized CUD scenario
In the overutilized scenario, you made the previously mentioned purchases and overutilized the CUDs.
Data before
Before the new CUD model, your Cloud Billing export schema and data values will look like the following table.
SKU | cost | usage.amount_in_pricing_units | usage.pricing_unit | price.effective_price | originating_sku_id | subscription.instance_id | credits |
---|---|---|---|---|---|---|---|
Fee SKU | 0.046868 | 6.509490 | hour | 0.0072 | RAM SKU | subscriptions/e52fd279-0851-4f53-a533-093119e27bad | [] |
Fee SKU | 0.025132 | 3.490510 | hour | 0.0072 | Core SKU | subscriptions/e52fd279-0851-4f53-a533-093119e27bad | [] |
RAM SKU | 0.174496 | 8 | hour | 0.02181159 | null | null | [{"amount":-0.065095,"full_name":"Committed use discount - dollar based: GCE Commitments", "type":"COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE"}] |
Core SKU | 0.093568 | 32 | gibibyte hour | 0.00292353 | null | null | [{"amount":-0.065095,"full_name":"Committed use discount - dollar based: GCE Commitments", "type":"COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE"}] |
Data After
After the new CUD model, your Cloud Billing export schema and data values will look like the following table.
SKU | cost | usage.amount_in_pricing_units | usage.pricing_unit | consumption_model.description | price.effective_price | originating_sku_id | subscription.instance_id | credits |
---|---|---|---|---|---|---|---|---|
Fee SKU | 0.046868 | 0.046868330 | hour | Default | 1 | RAM SKU | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [{"amount":"-0.046868",""type":"COMMITMENT_FEE_OFFSET"}] |
Fee SKU | 0.025132 | 0.025131670 | hour | Default | 1 | Core SKU | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [{"amount":"-0.025132",""type":"COMMITMENT_FEE_OFFSET"}] |
RAM SKU | 0.109398 | 5.015577498 | hour | Default | 0.02181159 | null | null | [] |
Core SKU | 0.058648 | 20.06066639 | gibibyte hour | Default | 0.00292353 | null | null | [] |
RAM SKU | 0.046868 | 2.984422502 | hour | Compute Flexible CUDs 1 Year | 0.01570434 | null | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [] |
Core SKU | 0.025132 | 11.93933361 | gibibyte hour | Compute Flexible CUDs 1 Year | 0.00210494 | null | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [] |
Note the following in this new CUD model:
- There are two rows for each CUD, instead of one for each.
- There is a new
consumption_model.description
column that separates the additional CUD entries, where:- the
Compute Flexible CUDs 1 Year
value indicates that you received the expected CUD discount. - the
Default
value indicates that you overutilized the CUD, and your cost reverted to the default pricing for the overage amount. This is also indicated by thesubscription.instance_id
having no value. - the CUD fee rows also have the
Default
value, because discounts don't apply to them. Instead, thecredits
field indicates that a negative offset was applied to negate the fee.
- the
Underutilized CUD scenario
In the underutilized scenario, you made the previously mentioned purchases and underutilized the CUDs.
Data before
Before the new CUD model, your Cloud Billing export schema and data values will look like the following table.
SKU | cost | usage.amount_in_pricing_units | usage.pricing_unit | price.effective_price | originating_sku_id | subscription.instance_id | credits |
Fee SKU | 0.022994 | 3.194 | hour | 0.0072 | null | subscriptions/e52fd279-0851-4f53-a533-093119e27bad | [] |
Fee SKU | 0.125637 | 17.450 | hour | 0.0072 | RAM SKU | subscriptions/e52fd279-0851-4f53-a533-093119e27bad | [] |
Fee SKU | 0.067369 | 9.357 | hour | 0.0072 | Core SKU | subscriptions/e52fd279-0851-4f53-a533-093119e27bad | [] |
RAM SKU | 0.174496 | 8 | hour | 0.02181159 | null | null | [{"amount":-0.065095,"full_name":"Committed use discount - dollar based: GCE Commitments", "type":"COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE"}] |
Core SKU | 0.093568 | 32 | gibibyte hour | 0.00292353 | null | null | [{"amount":-0.034905,"full_name":"Committed use discount - dollar based: GCE Commitments", "type":"COMMITTED_USAGE_DISCOUNT_DOLLAR_BASE"}] |
Data After
Before the new CUD model, your Cloud Billing export schema and data values will look like the following table.
SKU | cost | usage.amount_in_pricing_units | usage.pricing_unit | price.effective_price | consumption_model.description | originating_sku_id | subscription.instance_id | credits |
Fee SKU | 0.022994 | 0.0230 | hour | 1 | Default | null | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [] |
Fee SKU | 0.125637 | 0.1256371 | hour | 1 | Default | RAM SKU | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [{"amount":"-0.1256348",""type":"COMMITMENT_FEE_OFFSET"}] |
Fee SKU | 0.067369 | 0.0673690 | hour | 1 | Default | Core SKU | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [{"amount":"-0.0673581",""type":"COMMITMENT_FEE_OFFSET"}] |
RAM SKU | 0.125637 | 8 | hour | 0.0157043448 | Compute Flexible CUDs 1 Year | null | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [] |
Core SKU | 0.067369 | 32 | gibibyte hour | 0.0021049416 | Compute Flexible CUDs 1 Year | null | subscriptions/1fd3b130-40f8-4a79-ac6f-5753aaa0ceeb | [] |
Note the following in this new CUD model:
- There are two rows for each CUD, instead of one for each.
- There is a new
consumption_model.description
column that separates the additional CUD entries, where:- the
Compute Flexible CUDs 1 Year
value indicates that you received the expected CUD discount. - the
Default
value indicates the CUD fee rows, because discounts don't apply to them. Instead, thecredits
field indicates that a negative offset was applied to negate the fees, which were rolled up into the first row.
- the
- The first row shows a sum of the CUD fees.
Sample Queries for key CUD KPIs
To gain better insight into your cost data, the following BigQuery query shows how to retrieve useful information for these KPIs:
commitment_cost
commitment_savings
effective_savings_rate
SET bigquery_billing_project = billing-project-id; WITH cost_data AS ( SELECT * FROM `committed-use-discount-test.recommendations.gcp_billing_export_resource_v1_016676_F7EDE9_45E9C2` WHERE invoice.month = '202411' ), cud_fee_skus AS ( SELECT * FROM UNNEST( [ '1234-5678-9ABC', // ... etc 'DEF0-1234-5678']) fee_sku_id ), cud_costs AS ( SELECT invoice.month AS invoice_month, subscription.instance_id AS subscription_instance_id, IFNULL( ( SELECT l.value FROM UNNEST(labels) l WHERE l.key = 'goog-originating-service-id' ), service.id) AS service, SUM(cost) AS commitment_cost, SUM( ( SELECT SUM(credit.amount) FROM UNNEST(credits) credit WHERE credit.type = 'COMMITMENT_FEE_OFFSET' )) AS commitment_fee_offset FROM cost_data JOIN cud_fee_skus ON fee_sku_id = sku.id GROUP BY 1, 2, 3 ), cud_savings AS ( SELECT invoice.month AS invoice_month, subscription.instance_id, service.id AS service, SUM(cost - cost_at_effective_price_default) AS cud_savings_amount, SUM(cost_at_effective_price_default) AS on_demand_costs FROM cost_data WHERE consumption_model.id IS NOT NULL AND consumption_model.id != '7754-699E-0EBF' GROUP BY 1, 2, 3 ) SELECT invoice_month, subscription_instance_id, service, commitment_cost, commitment_cost + commitment_fee_offset + IFNULL(cud_savings_amount, 0) AS commitment_savings, ABS(commitment_fee_offset) / commitment_cost * 100 AS cud_utilization_percent, ( commitment_cost + commitment_fee_offset + IFNULL(cud_savings_amount, 0)) / IFNULL(on_demand_costs, 1) AS effective_savings_rate FROM cud_costs LEFT JOIN cud_savings USING (invoice_month, cud_product, service);
What CUDs will this affect?
The following spend-based CUDs will be affected by this change.
- Compute Flex CUDs
- GKE
- Cloud Run
- AlloyDB for PostgreSQL
- Bigtable
- Dataflow
- Spanner
- Cloud SQL
- Memorystore
What CUDs aren't affected by this change?
The following CUDs aren't impacted by this change:
- backup for GKE
- Backup and DR (for VMware Engine)
- All VMware Engine CUDs
- NetApp Volumes
- All resource-based CUDs
As new CUDs launch, check back to understand their eligibility for these changes.
How can you opt in?
You can opt in to your billing account starting July 15, 2025 using the Billing Console UI. You can't purchase new spend-based commitments for a few hours during your migration. Google Cloud displays a warning about this outage in the Billing UI. For more details about resellers and customers with billing account hierarchies, see Do other CUDs change?.
Frequently Asked Questions (FAQ)s
This section answers many of the frequently asked questions about this CUDs expansion.
Will your costs change?
No. The change in the billing model doesn't increase your total costs. Your contractual discounts are honored for the duration of your contract. Your total costs won't increase. However, you will notice changes in the way that Google Cloud represents your CUD savings. You will also notice changes in the data structure in the BigQuery export. You will also notice changes in the presentation of information in the Billing Console UI. The goal of the change is to simplify billing, make CUDs easier to understand, and expand their scope over time.
Additionally, the cost of your commitments won't change. However you will notice that your total commitment amount will change from commitment amount in on-demand spend to comment amount in CUD discounted spend and will equal your hourly commitment costs at the time of conversion.
Does this change previous bills?
No. This change doesn't affect previous bills. This change in how spend-based CUDs are billed only affects future bills.
Do resource-based CUDs change?
No. Resource-based CUDs aren't affected by this change.
Will this change affect CUD purchasing?
You used to purchase an hourly commitment in terms of equivalent on-demand spend. This amount represented the equivalent of on-demand costs that you would have incurred without the CUD. You now purchase an hourly commitment amount in terms of equivalent CUD discounted spend. This amount represents the total amount of CUD discounted spend that you commit to each hour.
Determine when other spend-based CUDs change
Google Cloud moves all CUDs to this new model. Timelines for other spend-based CUDs are unavailable.
When changes take effect for resellers
- Resellers that don't have active spend-based CUDs in this list on or after July 15, 2024: For reseller parent billing accounts that have no active spend-based CUDs in this list since July 15, 2024, the new model applies on July 15, 2025, at 12 AM US and Canadian Pacific Time (UTC-8). This applies to all billing accounts in the hierarchy.
- Resellers with active spend-based CUDs in this list since July 15, 2024: For reseller parent billing accounts with any active spend-based CUDs in this list since July 15, 2024, the new model applies on January 21, 2026, at 12 AM US and Canadian Pacific Time (UTC-8). Resellers can opt in their parent billing account earlier, starting July 15, 2025. In that case, the new model applies when you click opt-in to all billing accounts in the hierarchy that don't have spend-based CUDs in this list since July 15, 2024. For the remaining billing accounts, billing account administrators can then opt in their billing accounts. Learn more about how to opt in
When changes take effect for direct customers with a two-tier billing account hierarchy
- Customers that don't have active spend-based CUDs in this list on or after July 15, 2024: For billing account hierarchies with no active spend-based CUDs in this list since July 15, 2024, the new model applies on July 15, 2025, at 12 AM US and Canadian Pacific Time (UTC-8) to all billing accounts in the hierarchy.
- Customers with active spend-based CUDs in this list since July 15, 2024: For billing account hierarchies with any active spend-based CUDs in this list on or after July 15, 2024, the new model applies on January 21, 2026, at 12 AM US and Canadian Pacific Time (UTC-8). You can opt in your entire hierarchy (at the parent billing account) earlier, starting July 15, 2025. In that case, the new model applies when you click opt-in to all billing accounts in the hierarchy. Learn more about how to opt in
Additional information
Starting in April, 2025, Google Cloud provides a sample data export. This export helps you preview your monthly bill in the new format. It also includes information on new SKUs added to CUDs and pricing adjustments. You can use this export to validate that your queries function correctly in the new data model.
This also helps ensure that the change doesn't affect your costs. You enable this sample export from the Billing Exports page. Google Cloud shares more information about this in April, including additional queries for other key CUD KPIs. Details of the new CUD Fee SKU IDs, offer names, consumpticron model IDs, and other product-related information are also available.