BigQuery Pricing: Google BigQuery Cost per TB, Storage Costs and Editions Slot Pricing

Every rate read off Google's own pricing page this week, with the arithmetic shown so you can check it. Including the storage price almost every other guide gets wrong. Or skip the math and just ask your warehouse a question.

See our pricing

Verified from cloud.google.com 15 August 2026 · nothing estimated, nothing invented · Last updated August 2026

Connected · demo_shop · Postgres · read‑only

Ask your data a question:

›_

Writing SQL… Running (read‑only)… SQL Agentsql wrote

Refine: refined ✓

Click a question. Agentsql writes the SQL, runs it read-only, and answers.

Direct answer

BigQuery costs $6.25 per TiB of data scanned by your queries, with the first 1 TiB free every month, plus $0.023 per GiB per month for active storage with the first 10 GiB free. Both figures are from cloud.google.com on 15 August 2026. Instead of paying per byte you can buy capacity in slots, from $0.04 per slot-hour on Standard edition and $0.06 on Enterprise, sold in reservations of 100 slots or more. A 100-slot Enterprise reservation held for a whole month costs $4,380, which buys 701 TiB of on-demand scanning, so on-demand is the cheaper model until you are scanning several hundred TiB a month.

›_ bigquery pricing model

BigQuery bills compute and storage separately, and compute has two modes.

Almost every surprise bill traces back to not knowing which of these four meters was running. Read off Google's pricing page on 15 August 2026.

Meter Price What it covers Worth knowing
On-demand (per TiB) $6.25per TiB scanned You pay for the bytes each query processes. The first 1 TiB per month is free per billing account. You get up to 2,000 concurrent slots, shared across all queries in a project. The default. Every new project bills this way until somebody buys a reservation.
Capacity (Editions) From $0.04per slot-hour You pay for compute capacity over time, measured in slots. Sold in three editions: Standard, Enterprise and Enterprise Plus. Autoscaling is billed per second with a one-minute minimum. Predictable, and cheaper at volume. Commitments start at 100 slots and go up in hundreds.
Storage $0.023per GiB / month, active logical Billed separately from compute under both models, prorated per MiB per second. The first 10 GiB is free each month. Data untouched for 90 days drops to the long-term rate automatically. Almost always the smaller half of the bill, and the half people forget to model.
BigQuery sandbox $0no credit card The same free usage limits as the free tier, 1 TiB of queries and 10 GiB of storage a month, with no billing account attached to the project at all. Tables, views and partitions auto-expire after 60 days. No DML, no streaming, no Data Transfer Service.

Prices shown are for US regions, us-central1 (Iowa) as the reference. BigQuery rates vary by region, so a European or Asian deployment will differ. New to the platform? Start with what the BigQuery sandbox and free tier actually cover.

›_ google bigquery cost, on demand

What on-demand BigQuery actually costs per month.

$6.25 per TiB scanned, minus the free TiB. This is the entire compute bill for most teams.

The critical word is scanned. BigQuery charges for the bytes a query reads off disk, not the rows it hands back. A query ending in LIMIT 10 against an unpartitioned billion-row table still reads every byte of every column it names, and bills you for all of them. This is why BigQuery costs feel unpredictable to teams arriving from a row-store: the price of a query has almost nothing to do with the size of its answer.

Scanned per month Billable after free tier Monthly query cost Typical of
1 TiB 0 TiB $0.00 Inside the free tier
5 TiB 4 TiB $25.00 A small analytics team
10 TiB 9 TiB $56.25 A startup with dashboards on a schedule
25 TiB 24 TiB $150.00 A growing data team
50 TiB 49 TiB $306.25 Ad-hoc analysis on real event data
100 TiB 99 TiB $618.75 Heavy BI plus scheduled transforms
500 TiB 499 TiB $3,118.75 Worth pricing a reservation against
1,000 TiB 999 TiB $6,243.75 A reservation is almost certainly cheaper

Cached results are free, failed queries are not billed, and the 1 TiB allowance resets monthly per billing account rather than per project. If ad-hoc queries are what worry you, we wrote up the three caps that actually work on BigQuery cost control.

›_ bigquery editions pricing

BigQuery Editions slot pricing, all three tiers.

Per slot-hour in us-central1. Commitments cut the rate; the three-year rate is 20% below pay-as-you-go.

Edition Pay-as-you-go 1-year commitment 3-year commitment What you get
Standard $0.04 $0.036 $0.032 Query workloads only. No BigQuery ML, no commitments beyond the CUD rates shown.
Enterprise $0.06 $0.054 $0.048 The usual choice. Adds BigQuery ML, and this is where slot commitments become available.
Enterprise Plus $0.10 $0.09 $0.08 Adds the strictest compliance and recovery features. Most teams never need it.

Reservations have a 100-slot minimum and are bought in increments of 100. Capacity is regional: slots committed in one region cannot be used in another. Billing is per second with a one-minute minimum, or per second with no minimum if an admin opts the reservation in to fluid scaling.

›_ the number nobody prints

The real crossover between on-demand and Editions is per slot-hour, not per month.

Everybody repeats "switch at around 400 TB a month". That number is roughly right for one edition and badly wrong for the others.

The two models meter completely different things. On-demand bills bytes off disk. Capacity bills processor time. So the question "which is cheaper" has no single answer in TiB, because it depends on how many bytes your queries read per unit of compute they burn. A wide scan with no joins reads enormous volumes and finishes fast, which is the worst case for on-demand and the best case for capacity. A gnarly self-join over a small table is the reverse.

There is a clean way to compare them anyway. Convert both to dollars and put them on the same side of an equation. On demand you pay $6.25 per TiB, and a TiB is 1,024 GiB, so a scanned gibibyte costs $0.006104. One Enterprise slot-hour costs $0.06. Divide and you get 9.83.

In other words: one Enterprise slot-hour costs exactly as much as scanning 9.83 GiB on demand. If your workload reads more than about 9.8 GiB for every slot-hour it consumes, capacity is the cheaper model. If it reads less, you are better off on demand no matter how big your monthly total looks. You can measure this today without buying anything: INFORMATION_SCHEMA.JOBS records both total_bytes_processed and total_slot_ms for every query you have already run.

how the math works

  • 01$6.25 per TiB, and 1 TiB = 1,024 GiB
  • 02So a scanned GiB costs $0.006104
  • 03Crossover GiB = slot rate divided by $0.006104
  • 04Above that GiB-per-slot-hour, capacity wins
  • 05Measure yours in INFORMATION_SCHEMA.JOBS
  • 06Reservations start at 100 slots, so there is a floor

Source: cloud.google.com/bigquery/pricing, us-central1, read 15 August 2026.

What one slot-hour buys you on demand

Read this as a threshold. If your average query scans more than the figure in the right column per slot-hour it burns, that plan beats on-demand pricing.

Plan Per slot-hour Breaks even at
Standard, 3-year commitment $0.032 5.24 GiB per slot-hour
Standard, pay-as-you-go $0.04 6.55 GiB per slot-hour
Enterprise, 3-year commitment $0.048 7.86 GiB per slot-hour
Enterprise, 1-year commitment $0.054 8.85 GiB per slot-hour
Enterprise, pay-as-you-go $0.06 9.83 GiB per slot-hour
Enterprise Plus, pay-as-you-go $0.10 16.38 GiB per slot-hour

And the simple version, if you just want a monthly number

A 100-slot reservation is the smallest you can buy. Held for a full month at 730 hours, here is what it costs and how much on-demand scanning the same money would have paid for. Autoscaling means you need not hold slots all month, so treat these as the ceiling rather than a mandatory floor.

100 slots, held all month Monthly cost Same money on demand
Standard, pay-as-you-go $2,920 467 TiB scanned
Standard, 1-year commitment $2,628 420 TiB scanned
Standard, 3-year commitment $2,336 374 TiB scanned
Enterprise, pay-as-you-go $4,380 701 TiB scanned
Enterprise, 1-year commitment $3,942 631 TiB scanned
Enterprise, 3-year commitment $3,504 561 TiB scanned
Enterprise Plus, pay-as-you-go $7,300 1,168 TiB scanned
Enterprise Plus, 3-year commitment $5,840 934 TiB scanned

Note how wide the spread is: 374 TiB on a committed Standard reservation against 1,168 TiB on pay-as-you-go Enterprise Plus. A single "switch at 400 TB" rule cannot cover a range that runs more than three to one.

›_ bigquery storage costs

BigQuery storage pricing, and the number most guides get wrong.

Google meters storage per GiB-hour. Convert it properly and active storage is $0.023 per GiB per month, not the $0.02 everybody quotes.

This one is worth being precise about, because it is repeated wrongly almost everywhere. Google's pricing page does not list a monthly storage price at all. It lists an hourly meter, $0.000031507 per GiB-hour for active logical storage, and bills it prorated per MiB per second. Multiply by 730 hours and you get $0.023 per GiB per month, or $23.55 per TiB. Google's own worked examples on the same page confirm it three separate times: 1 TiB for a full month is $23.552, 100 GiB for half a month is $1.15, and 512 MiB for half a month is $0.00575. Every one of those divides out to $0.023 per GiB. The familiar "$0.02 per GB" figure is a rounded, older number, and it understates a large warehouse's storage bill by about 15%.

Storage type Google's meter (per GiB-hour) Per GiB / month Per TiB / month When it applies
Active logical $0.000031507 $0.023 $23.55 Uncompressed bytes, modified within the last 90 days. The default billing model.
Long-term logical $0.000021918 $0.016 $16.38 Uncompressed bytes in a table or partition untouched for 90 consecutive days.
Active physical $0.000054795 $0.040 $40.96 Compressed bytes, modified within the last 90 days. Opt-in, per dataset.
Long-term physical $0.000027397 $0.020 $20.48 Compressed bytes untouched for 90 consecutive days.

The first 10 GiB is free each month on every one of these. Partitions are assessed for long-term status individually, so an old partition in a table you write to daily still gets the discount.

The "50% off after 90 days" claim is only half true

Google's prose says a table untouched for 90 consecutive days drops "by approximately 50%". Check it against Google's own rate table on the same page. Physical storage goes from $0.040 to $0.020, which is exactly half. Logical goes from $0.023 to $0.016, which is a 30.4% cut, not 50%. If you are on the default logical model and budgeted a halving of your cold-data bill, you will be roughly $0.007 per GiB per month short. On 500 TiB of cold data that is about $3,600 a year.

Physical storage needs better than 1.74 to 1 compression

Switching a dataset to physical billing charges you for compressed bytes instead of raw ones, which sounds like a free win. It is not. Active physical is $0.040 per GiB against $0.023 for logical, so physical costs 1.74 times more per byte stored and you need to beat a 1.74 to 1 compression ratio just to break even. Then there is the part people miss: time travel and fail-safe bytes are free on logical storage and billed on physical. With seven days of time travel plus fail-safe on top, the ratio you actually need is meaningfully higher than 1.74.

›_ google bigquery costs, in full

Six more meters that show up on the invoice.

None of these are hidden. They are simply on different parts of the pricing page from the two numbers everyone looks up.

Batch loading

Free

Loading data into BigQuery from Cloud Storage or a local file costs nothing, because it runs on a shared slot pool rather than your capacity. You start paying the moment that data lands and becomes storage. This is why "we only load, we barely query" teams still get a bill.

Streaming inserts

$0.01 per 200 MiB

The REST Storage Write API bills $0.01 for every 200 MiB successfully inserted, and each row is charged at a 1 KB minimum size. Streaming many small rows is therefore far more expensive per byte than it looks: a million 200-byte rows bills as if they were 1 KB each.

Storage Write API (gRPC)

$0.025 per GiB

The gRPC path is metered separately at $0.025 per GiB with the first 2 TiB per month free per billing account. For most pipelines this is the cheaper of the two streaming routes, and the free allowance covers a lot of ground before anything is owed.

Storage Read API

$1.10 per TiB

Reading data out through the Storage Read API costs $1.10 per TiB of bytes read, with a genuinely large 300 TiB per month free allowance per billing account. Bytes read into other Google Cloud services in the same region do not count against it.

Data Transfer Service

$25 per source / month

The managed SaaS connectors bill $25 per unique package name per month, prorated by the days a transfer actually ran, and that is on top of whatever storage and query costs the loaded data then generates. Multiple transfers of the same package on one day count once.

BigQuery Omni

$9.125 per TiB

Querying data that lives in AWS or Azure through Omni costs $9.125 per TiB rather than $6.25, roughly a 46% premium for leaving the data where it is. Cross-cloud transfer back to Google Cloud is billed on top, from $0.0875 to $0.126 per GiB depending on the source region.

›_ bigquery cost, in practice

Where BigQuery bills actually go wrong.

In our experience it is rarely the rate card. It is four habits, and all four are fixable in an afternoon.

The single most expensive habit is SELECT *. BigQuery stores data in columns, so naming three columns out of ninety reads roughly three ninetieths of the bytes. A dashboard built on SELECT * pays for all ninety columns on every refresh, forever, to display four of them. Teams often find that one change alone cuts their query spend by more than half.

The second is unpartitioned tables. Without a partition column, every date filter is a full scan, because BigQuery has no way to skip anything. A partitioned table with require_partition_filter set makes the expensive version of the query impossible to write by accident, which matters more than it sounds when a dozen people share a warehouse.

The third is scheduled queries nobody owns. A dashboard refresh set to hourly in 2024 for a page nobody opens now still scans its tables 730 times a month. Audit the schedule list once a quarter and you will usually find several.

The fourth is the exploratory loop. Someone does not know which table has the answer, so they run eight variations of a query to find out, each one a full scan. That is a real cost, and it is the reason we built what we built: turning the question into SQL in one pass, showing you the SQL and the estimated scan before it runs, so the exploration happens against the schema rather than against your billing account.

five ways to spend less

  • 01Never SELECT *. Name your columns. On a wide table this is the largest single saving available.
  • 02Partition, then require the filter. Make the full scan impossible rather than merely discouraged.
  • 03Dry-run before you execute. The console shows estimated bytes before you press run. It is free to look.
  • 04Set custom query quotas. A per-user daily byte cap turns a runaway query into an error instead of an invoice.
  • 05Measure before reserving. Read bytes and slot-ms out of INFORMATION_SCHEMA.JOBS before signing a commitment.

›_ honest read

When BigQuery pricing works in your favor, and when it does not.

We build a tool that runs on BigQuery, so weigh this accordingly. Every figure above is Google's own or arithmetic on Google's own, and you can check all of it.

Nothing is running when you are not querying

On-demand BigQuery has no cluster to leave on by mistake, which is the classic way to waste money on a warehouse. If your team asks fifty questions a week and nothing else, your compute bill genuinely can be zero. Very few competing warehouses can say that honestly.

The pricing punishes exploration, which is the point of a warehouse

Paying per byte scanned means the curious analyst is the expensive one. Teams respond by discouraging ad-hoc queries, which quietly defeats the reason they bought a warehouse. Custom quotas and dry runs are the honest fix; telling people not to look is not.

The step up to capacity is a real cliff

There is nothing between paying per query and a 100-slot minimum reservation. A team scanning 200 TiB a month has no good middle option: too big to be comfortable on demand, too small to fill a reservation. Autoscaling softens this but does not remove the floor.

The bill is a symptom of who can write SQL

Expensive BigQuery usually means people writing queries that scan more than they need, or one analyst running everyone else's questions in a queue. Fixing the SQL fixes the invoice. That is a workflow problem before it is a pricing problem.

Agentsql connects read-only to BigQuery, Postgres, MySQL or Snowflake, turns a plain-English question into SQL, runs it and shows the SQL every time so an analyst can check the logic before it costs anything. See how to query BigQuery without writing SQL, cap ad-hoc spend with BigQuery cost control, weigh the warehouses on BigQuery vs Snowflake and BigQuery vs Redshift, or put every BI vendor's list price side by side on our BI tools comparison.

›_ frequently asked

BigQuery pricing questions, answered.

How much does BigQuery cost?

BigQuery costs $6.25 per TiB of data your queries scan, with the first 1 TiB each month free, plus $0.023 per GiB per month for active storage with the first 10 GiB free. Those two meters are the entire bill for most teams. Heavy users can switch to capacity pricing from $0.04 per slot-hour instead.

Is BigQuery free?

BigQuery has a real free tier: 1 TiB of queries and 10 GiB of active storage every month, permanently, not just during a trial. The BigQuery sandbox gives you the same allowances with no credit card and no billing account at all. Past those limits you pay $6.25 per TiB scanned.

How much does BigQuery cost per TB?

On-demand analysis is $6.25 per tebibyte scanned in US regions, verified on cloud.google.com on 15 August 2026. Note it is per TiB (1,024 GiB), not per TB (1,000 GB), and it counts bytes the query reads rather than bytes it returns. Older guides still quoting $5 per TB are out of date.

How is BigQuery storage priced?

Active logical storage is metered at $0.000031507 per GiB-hour, which is $0.023 per GiB per month at 730 hours, or $23.55 per TiB. The first 10 GiB each month is free. A table or partition nobody has modified for 90 consecutive days drops automatically to $0.016 per GiB.

What is the difference between BigQuery on-demand and capacity pricing?

On-demand charges for bytes scanned at $6.25 per TiB, so a wasteful query is expensive no matter how fast it runs. Capacity charges for slot-time from $0.04 per slot-hour, so a wasteful query is expensive only if it is also slow. Capacity wins once you scan large volumes regularly.

When should I switch from on-demand to BigQuery Editions?

Compare the money, not the rule of thumb. A 100-slot Enterprise reservation held all month costs $4,380, which buys 701 TiB of on-demand scanning. A Standard reservation costs $2,920 and buys 467 TiB. The often-repeated "around 400 TB" figure is roughly right for Standard and clearly wrong for Enterprise.

How many slots do I need in BigQuery?

Reservations start at a 100-slot minimum and are bought in increments of 100. Rather than guessing, run on demand first and read the actual slot-time your jobs consume from INFORMATION_SCHEMA.JOBS, then size the reservation to the busy hours. Autoscaling covers the peaks above your baseline.

Is physical storage cheaper than logical storage in BigQuery?

Only if your data compresses well. Active physical is $0.040 per GiB against $0.023 for active logical, so physical costs 1.74 times more per byte and needs better than a 1.74 to 1 compression ratio just to break even. Physical also bills time travel and fail-safe bytes, which logical does not.

Does BigQuery charge for failed or cached queries?

No. Queries that return a cached result are free, and a query that fails is not billed for the bytes it touched. You are also not charged for a query you cancel before it completes, though a long-running query cancelled near the end may still have done most of its scanning.

How do I estimate a BigQuery query cost before running it?

Use a dry run. The BigQuery console shows an estimated bytes-processed figure in the top right before you execute, and the bq command line tool accepts a dry-run flag that returns the same number. Divide the bytes by 1,024 to the fourth power for TiB, then multiply by $6.25.

Does BigQuery have a pricing calculator?

Google publishes one inside the Google Cloud Pricing Calculator, but you can do it in your head with two numbers. Take the TiB your queries will scan each month, subtract the free TiB, multiply by $6.25, then add your stored GiB minus 10, times $0.023. That is the bill.

Is BigQuery cheaper than Snowflake?

They meter different things, so it depends on your workload. BigQuery charges per byte scanned with no cluster to leave running, which suits spiky ad-hoc analysis. Snowflake charges per second of warehouse compute from $2 to $4 a credit, which suits steady predictable pipelines. Neither is universally cheaper.

See the SQL before it costs you.