BigQuery Query Cost Analyzer
Paste a query and get the structural findings that drive its cost: columns read, partition pruning that works and pruning that only looks like it does, and the 10 MB-per-table floor. Add your schema or a dry-run figure and it prices the query exactly. No login, nothing uploaded.
- Region
- US multi-region
- Currency
- USD
- Rate basis
- Public list price, no negotiated or committed discount
- Prices verified
- 4 Aug 2026
Your query
Your SQL is analysed in this browser tab and is never transmitted, and nothing is written to the URL either.
Why there are three modes
BigQuery’s own cost estimate comes from a dry run, and a dry run needs credentials. This page holds no credentials and never sees your data, which means it cannot produce that number by itself. Rather than assume a table size and present the result as a calculation, it separates what it can know from what it cannot:
- Structure only, findings and ratios from the SQL alone. Deliberately no dollar figure.
- I have the bytes, you supply the dry-run figure, we do exact pricing arithmetic against real regional rates.
- Add my schema, an INFORMATION_SCHEMA extract lets us model bytes per table: fixed-width columns exactly, variable-width columns calibrated against the table’s real logical size rather than guessed.
Clustering is never modelled, because block pruning cannot be predicted before a query runs, even a dry run returns an upper bound on a clustered table. Where a partition filter cannot be turned into a partition count, the estimate assumes a full scan and says so, which overstates cost rather than flattering it.
What it looks for
11 detectable anti-patterns, each with its own page explaining the mechanism and the fix.
Frequently asked questions
How do I estimate the cost of a BigQuery query before running it?
The authoritative answer is a dry run: paste the query into the BigQuery console and read the validator message, or run bq query --dry_run. That returns exact bytes processed. This tool takes that figure and prices it, and separately finds the structural reasons the number is as large as it is, which the dry run does not tell you.
Why does this tool not just tell me the cost from my SQL?
Because it cannot honestly. Bytes processed depend on how much data sits in the columns your query touches, which is not in the SQL. Any tool that prints a dollar figure from SQL alone has assumed a table size, and that assumption is doing all the work. Give it your schema or your dry-run figure and it will do real arithmetic.
Does LIMIT reduce BigQuery cost?
No, not on a non-clustered table. LIMIT truncates the result after BigQuery has read the data it needs, so bytes billed are identical with and without it. To look at a sample cheaply, use table preview or bq head, which read no billable bytes.
How much does SELECT * cost in BigQuery?
It costs the total logical size of every column in the table, per run, regardless of how many rows you get back. On a wide table where you need four columns out of two hundred, that is roughly fifty times what the query needs to cost.
Why is my partition filter not reducing the bytes scanned?
Pruning happens at planning time, so the filter value has to be resolvable before any data is read. Literals and functions of literals qualify. A value coming from a subquery, a join, or a correlated reference does not, so every partition is read and the filter is applied afterwards. Resolve the value into a scripting variable or a query parameter first.
Is it safe to paste my SQL here?
Yes. The analysis runs entirely in your browser: your SQL is never transmitted, and no part of your query is written into the URL either. The site records anonymous usage events, and the /privacy page lists exactly what those contain.
Related tools
The questions this one tends to raise next.
BigQuery FinOps Query Pack
Copy-paste SQL for the cost questions you ask at 4pm during an incident.
OpenBigQuery Slot vs On-Demand Advisor
Find out whether BigQuery Editions slots would actually save you money.
OpenGCP Billing SKU Dictionary
What that mystery line on your Google Cloud bill actually is.
OpenEvery tool on this site that touches analytics and warehouses, across every cloud.
One query at a time is a slow way to find them all.
Finitizer ranks every query in your project by cost, groups them by shape so you see the repeated ones, and rewrites the expensive ones with an AI optimizer that shows the cheaper version side by side. Read-only and keyless.
