Member-only story
Cutting BigQuery Costs Without Slowing Analytics
The first thing most teams do when the BigQuery bill jumps is the wrong thing.
Finance forwards the invoice, the data team panics, and within a week there’s a new policy. Analysts get a per-user quota. Access to the raw event tables gets revoked. Every new dashboard needs a review. The bill goes down that month, and everyone declares victory.
Three months later the company is slower, the data team has turned into a ticket queue, and the bill has crept back to where it was — because nobody fixed the thing that was burning money. They just made it harder to reach.
The bill is a symptom. You don’t treat a symptom by amputating.
What follows is a practical sequence for investigating costs. The best order and the savings depend on your workload, pricing model and operational constraints.
Step zero: find out where the money goes
Start with the billing breakdown, then use job-level telemetry to investigate the queries behind it. A recurring dashboard query is one possible source of cost; identifying its owner may require job labels, service-account details or BI-tool logs.
INFORMATION_SCHEMA.JOBS is a useful starting point:
SELECT
user_email,
job_id…









