Check transfer charges before moving Google Cloud workloads
On this page
This check is due for a source refresh. Confirm the current documentation before you rely on provider-specific details.
Confirm the billed traffic and charging unit before counting a regional move as savings, or you may target the wrong charge and forecast unsupported reductions. Start with the largest network-related items after credits and link each one to traffic the move would change.
What you need first
- Tool
- Use BigQuery, Google's service for querying exported billing data. Start with an existing Standard Cloud Billing export and its full table path: project.dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID>.
- Access
- Ask an authorized billing-data colleague to provide read-only query results for the intended billing account and completed invoice month.
- If you do not use that tool
- Send the query to an authorized billing-data colleague with the billing account, export table path and invoice month. Request ranked results and help matching the largest billing items to catalog entries.
Why this is worth a look
You can target the wrong charge if you treat every network billing item as inter-region transfer. Internet data transfer out is billed per GiB delivered, but a description containing “network” does not establish the traffic path. Count savings only after the owner links a charge to traffic the move would change.
Start with this query
SQLRun this read-only Standard SQL query in BigQuery after replacing the table path and YYYYMM. It covers one billing account's export and one invoice month. Cost and credit totals use the returned currency, not traffic units.
WITH shortlisted AS (
SELECT
sku.description AS sku_description,
currency,
SUM(cost) AS cost,
SUM(IFNULL((SELECT SUM(c.amount) FROM UNNEST(credits) AS c), 0)) AS credits
FROM `project.dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID>`
WHERE invoice.month = 'YYYYMM'
AND LOWER(sku.description) LIKE '%network%'
GROUP BY sku.description, currency
)
SELECT
sku_description,
currency,
cost,
credits,
cost + credits AS cost_after_credits
FROM shortlisted
ORDER BY currency, cost_after_credits DESC;How to confirm it
- 01
Choose the account and month
Replace the table path and YYYYMM with one billing account's Standard export and one completed invoice month. Ask the billing-data colleague to confirm that the export covers that month before using the totals.
- 02
Review the largest charges
Run the query or request its results. Start with the largest cost_after_credits values within each currency. Treat the network keyword as a shortlist, not a complete list of transfer charges; an empty result is not proof of zero transfer cost.
- 03
Confirm the billing item and unit
Use the Google Cloud SKUs catalog, which lists billable items, to find candidates with its SKU name or SKU ID filters. Ask the billing owner to confirm each match. Verify the charging unit and applicable rate in the relevant product pricing documentation, such as VPC network pricing, rather than assuming a catalog unit field.
- 04
Tie the charge to the move
Ask the workload owner to record the source and destination services, regions and zones for each priority item, plus the traffic quantity the proposed move would change. Leave unresolved items out of the savings forecast.
Before making changes
Assume the export covers the selected account and invoice month before relying on these totals. The query groups descriptions, not traffic paths, and only includes descriptions containing “network”. It sums credits within each billing row before aggregation. Export cost includes applicable negotiated discounts, so do not substitute a catalog price for your contract rate.