Cloud cost and FinOps: Google Cloud

Sefism.

Chapter 02

Reading the bill and tagging

The cost tool and detailed export on your cloud, tags and labels, a tagging policy template, enforcement, untaggable spend and your first billing query.

Cloud Billing reports

Also called billing reports, cost table, cost breakdown

What
Console reports of cost by project, service, SKU, location or label over time, with a forecast and options to include or exclude credits such as CUDs and SUDs.
Why
They take you from "Compute Engine grew" to the project and SKU behind it in a few clicks.

Watch out

Reading cost with credits excluded and concluding commitments are not working.

Billing export to BigQuery

Also called BigQuery billing export, detailed usage cost, standard usage cost

What
Automatic export of billing data to BigQuery: standard usage cost, detailed (resource-level) usage cost, pricing data and a FOCUS dataset in preview as of October 2026.
Why
Every cost question becomes SQL. Turn it on with the billing account: single-region datasets get no backfill.
SQL
SELECT service.description AS service,
  SUM(cost) AS cost
FROM `billing.gcp_billing_export_v1_XXXX`
WHERE invoice.month = '202609'
GROUP BY service ORDER BY cost DESC LIMIT 10;

Watch out

Turning it on the day you need last quarter's numbers.

Tags and labels for cost

Also called tags, labels, resource tags, cost allocation tags

What
Key-value pairs on resources, such as team=payments, that flow into billing data so cost can be grouped by team, product, environment or cost centre.
Why
They add the business context the cloud does not know, within the boundaries accounts or projects already give.

Watch out

Free-form keys, so Team, team and owner_team each hold a third of the cost.

Tagging policy

Also called tag standard, labelling policy, tag governance

What
A short written agreement on required tag keys, allowed values, who owns each list, where tags are applied, how compliance is measured and what happens to untagged resources.
Why
It turns tagging from a hope into a measurable standard teams can follow.

Watch out

Thirty required keys nobody applies instead of five everybody does.

Tagging policy template

Also called tag policy example, required tags, tag schema

What
A starting template with five required keys, their allowed values, and how the policy is applied and measured.
Why
Copy it, change the values to your organisation's, and agree it with finance and team leads.
YAML
required:
  cost-center: [cc-1001, cc-1002, shared]
  team: [payments, search, platform]
  env: [prod, staging, dev, sandbox]
  app: free text, lowercase, hyphens
  owner: team email or chat channel
format: lowercase keys and values, no spaces
applied: in IaC modules, checked in CI
measured: % of cost with all keys, monthly
untagged: owner notified, removed after 14 days
review: twice a year with finance

Watch out

Leaving out the owner key, so nobody can be asked about a resource.

Labels in Google Cloud billing

Also called labels, project labels, resource labels, tags vs labels

What
Key-value labels on projects and resources appear in billing reports and the BigQuery export. Keys and values use lowercase letters, numbers, hyphens and underscores. Google Cloud tags are a separate, policy-focused feature.
Why
Project labels cover every cost in a project, so they are the quickest win.

Watch out

Confusing tags with labels and wondering why tags do not appear in billing data.

Untaggable and shared spend

Also called untagged cost, unallocated cost, shared cost

What
Cost that cannot carry your tags: support, taxes, some data transfer, marketplace charges, centrally bought commitments and shared platforms.
Why
Reporting it openly keeps team totals adding up to the invoice and shows where split rules are needed.

Watch out

Leaving untagged cost out of team reports, so totals never match the bill.

Billing queries in SQL

Also called cost query, DuckDB, Athena, BigQuery, FOCUS query

What
SQL over a billing export answers what the console cannot: cost by tag and service, top resources, week-on-week change. This example runs on FOCUS data, so it works for any provider.
Why
Three saved queries (by service, by team with an untagged bucket, top resources) cover most weekly questions.
SQL
SELECT COALESCE(Tags['team'], 'untagged') AS team,
  ServiceName,
  SUM(EffectiveCost) AS cost
FROM focus
WHERE ChargePeriodStart >= DATE '2026-09-01'
  AND ChargePeriodStart < DATE '2026-10-01'
GROUP BY ALL
ORDER BY cost DESC;

Watch out

A query that silently drops rows with no tag, so the total is smaller than the invoice.

02 · Reading the bill and tagging2 / 10