Free tool

BigQuery on-demand or Editions: which is cheaper for you?

Put in how much your queries scan, or how many slots they keep busy, and see the monthly cost on-demand and on Standard, Enterprise and Enterprise Plus — with the break-even point in TiB and in slots, at Google’s list prices.

What you know about your usage

Not sure? One query against your job history returns all three.

Editions

Commitments are sold for Enterprise and Enterprise Plus, in steps of 50 slots. Standard is always pay as you go.

Storage
Assumptions you can change

Slot-hours billed above the slot-hours your queries used, for autoscaled slots. The autoscaler scales in steps of 50 slots and bills each step for at least a minute, so the billed figure is higher than total_slot_ms. How much higher depends on how spiky your queries are; it is an assumption, not a vendor figure.

List prices for the US multi-region, not a quote. Your inputs never leave this browser. They are only copied into the part of the page address after the #, which browsers do not send anywhere, so you can share the result as a link.

Your real numbers

Measure your usage with one query

BigQuery records every job it runs in INFORMATION_SCHEMA.JOBS, with the bytes it billed and the slot time it used. Run this in the BigQuery console for the project you want to price. It reads job metadata only, never your tables, and returns your last 30 days as the three numbers above, plus a link that opens this page with them filled in. Nothing is sent to this site unless you open that link, and even then the values stay after the #.

BigQuery: last 30 days as calculator inputs · vendor docs
-- Your last 30 days of BigQuery queries as cost calculator inputs:
-- TiB billed a month, average slots while queries run, and for how many hours a day.
-- Reads job metadata only. Change region-us to where your data lives.
-- Scope: this project. For a whole organisation, use JOBS_BY_ORGANIZATION.
DECLARE days INT64 DEFAULT 30;

WITH jobs AS (
  SELECT total_bytes_billed, total_slot_ms, start_time, end_time
  FROM `region-us`.INFORMATION_SCHEMA.JOBS
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL days DAY)
    AND job_type = 'QUERY'
    AND state = 'DONE'
    -- A script's parent job repeats the bytes and slots of the statements inside it.
    AND IFNULL(statement_type, '') != 'SCRIPT'
),
-- Every clock hour in which at least one query was running.
active AS (
  SELECT COUNT(DISTINCT hour) AS hours
  FROM jobs,
    UNNEST(GENERATE_TIMESTAMP_ARRAY(TIMESTAMP_TRUNC(start_time, HOUR), end_time, INTERVAL 1 HOUR)) AS hour
  WHERE start_time IS NOT NULL
),
totals AS (
  SELECT
    -- Scaled from `days` to an average month, 730 hours, as Google bills.
    SUM(total_bytes_billed) / POW(1024, 4) * (730 / 24) / days AS tib_per_month,
    SUM(total_slot_ms) / (1000 * 3600) AS slot_hours,
    -- The calculator takes 1 to 24 hours a day.
    LEAST(GREATEST(IFNULL((SELECT hours FROM active) / days, 1), 1), 24) AS hours_per_day
  FROM jobs
)
SELECT
  ROUND(tib_per_month, 2) AS tib_billed_per_month,
  -- Average slots in use during those hours, so slots x hours x days = slot-hours used.
  ROUND(SAFE_DIVIDE(slot_hours, hours_per_day * days), 1) AS avg_slots_while_active,
  ROUND(hours_per_day, 1) AS active_hours_per_day,
  CONCAT(
    'https://lp-data.cloud/tools/bigquery-cost-calculator',
    '#tib=', FORMAT('%.2f', IFNULL(tib_per_month, 0)),
    '&slots=', FORMAT('%.1f', IFNULL(SAFE_DIVIDE(slot_hours, hours_per_day * days), 0)),
    '&hours=', FORMAT('%.1f', hours_per_day),
    '&via=sql-bigquery'
  ) AS calculator_url
FROM totals;

Run it per project, or swap in JOBS_BY_ORGANIZATION to price everything at once, because commitments are shared across an organisation. If your projects are already on Editions, total_bytes_billed is still recorded, so the same query tells you what on-demand would have cost.

Method

How it is calculated

A month is 730 hours, the way Google prices a slot-month. 1 TiB is 1,024 GiB. Every price is the US multi-region list price, shown with its source under “Prices used”.

On-demand

  • Compute = (TiB billed a month − the free 1 TiB) × $6.25.

Editions, pay as you go

  • Compute = average slots × hours a day × 730 ÷ 24 days × the edition’s slot-hour price × (1 + autoscaler overhead). Standard $0.040, Enterprise $0.060, Enterprise Plus $0.100.

Editions with a slot commitment

  • Compute = committed slots × 730 hours × the commitment price, whether used or not, plus any average usage above the committed slots at the pay-as-you-go price, as above. Enterprise: $0.048 for 1 year, $0.036 for 3 years. Enterprise Plus: $0.080 and $0.060.

Storage

  • Storage = (TiB stored × 1,024 − the free 10 GiB) × the active price for the share modified in the last 90 days, and the long-term price for the rest. It is the same under every compute model.

Break-even

  • In TiB: the TiB a month at which on-demand compute equals the edition’s compute = edition compute ÷ $6.25 + 1 TiB. Below it, on-demand is cheaper.
  • In slots: the average slots at which the edition’s compute equals on-demand compute. Below it, the edition is cheaper. With a commitment that alone costs more than on-demand, there is none.

Not included: BigQuery’s 10 MB minimum per query and table, cache hits (free under both models), the one-minute minimum per autoscaling step beyond the overhead you set, BI Engine, streaming, data transfer, and spend-based committed use discounts.

Worked example

A team’s queries bill 700 TiB a month and keep an average of 100 slots busy around the clock. Storage is left out, because it is the same either way.

  • On-demand: (700 − 1) × $6.25 = $4,369 a month.
  • Enterprise, pay as you go: 100 slots × 730 hours × $0.060 = $4,380 a month.At this usage, on-demand and Enterprise (pay as you go) cost about the same for compute.
  • Enterprise with a 3-year commitment for those 100 slots: 100 × 730 × $0.036 = $2,628 a month.At this usage, Enterprise (3-year commitment) is about 40% cheaper than on-demand.
  • Without a commitment, if the autoscaler bills 30% more slot-hours than the queries use: $5,694. At this usage, on-demand is about 23% cheaper than Enterprise (pay as you go).

The same workload can land on either side of the line depending on how steady it is, which is why the commitment question matters more than the edition. Open this example in the calculator.

Sources

Prices used

The calculator uses the on-demand price, the free tiers and the US multi-region rows. The us-central1 storage rows are the ones the warehouse cost estimator uses.
PlatformItemList price (USD)Applies toChecked
BigQueryOn-demand queries$6.25 per TiB scannedUS multi-region and US regions; the first 1 TiB each month is free2026-10-11
BigQueryOn-demand free tier1 TiB scanned per month freePer billing account2026-10-11
BigQueryStorage free tier10 GiB stored per month freePer billing account, logical or physical storage2026-10-11
BigQueryActive logical storage$0.023 per GiB-monthus-central1; tables modified in the last 90 days2026-10-11
BigQueryLong-term logical storage$0.016 per GiB-monthus-central1; tables not modified for 90 days2026-10-11
BigQueryStandard edition, pay as you go$0.040 per slot-hourUS multi-region; autoscaling only, no slot commitments2026-10-12
BigQueryEnterprise edition, pay as you go$0.060 per slot-hourUS multi-region; billed per second, 1-minute minimum2026-10-12
BigQueryEnterprise edition, 1-year slot commitment$0.048 per slot-hourUS multi-region; committed slots, billed whether used or not2026-10-12
BigQueryEnterprise edition, 3-year slot commitment$0.036 per slot-hourUS multi-region; committed slots, billed whether used or not2026-10-12
BigQueryEnterprise Plus edition, pay as you go$0.100 per slot-hourUS multi-region; billed per second, 1-minute minimum2026-10-12
BigQueryEnterprise Plus edition, 1-year slot commitment$0.080 per slot-hourUS multi-region; committed slots, billed whether used or not2026-10-12
BigQueryEnterprise Plus edition, 3-year slot commitment$0.060 per slot-hourUS multi-region; committed slots, billed whether used or not2026-10-12
BigQueryActive logical storage$0.020 per GiB-monthUS multi-region; tables modified in the last 90 days2026-10-12
BigQueryLong-term logical storage$0.010 per GiB-monthUS multi-region; tables not modified for 90 days2026-10-12
BigQueryActive physical storage$0.040 per GiB-monthUS multi-region; compressed bytes, including time travel2026-10-12
BigQueryLong-term physical storage$0.020 per GiB-monthUS multi-region; compressed bytes, not modified for 90 days2026-10-12

Questions

On-demand vs Editions

When do BigQuery Editions beat on-demand pricing?

When your queries scan a lot of data for the slot time they use. On-demand bills $6.25 for every TiB scanned, however long the query takes; Editions bill slot-hours, however much the query scans. Large, steady, scan-heavy workloads — big scheduled transforms, dashboards over wide tables — usually come out cheaper on Editions, especially with a commitment. Small or bursty workloads, and well-partitioned queries that scan little, usually stay cheaper on-demand. The break-even figures above tell you which side of the line you are on.

What is the difference between autoscaling and baseline slots?

Baseline (committed) slots are always on: you pay for them every hour of the month whether or not a query runs, at the commitment rate if you bought a 1- or 3-year commitment. Autoscaling slots are added when queries need them and billed at the pay-as-you-go rate per second, with a one-minute minimum and in steps of 50 slots, so you pay for what the autoscaler scaled to, not just what your queries used. Standard edition only autoscales; slot commitments are sold for Enterprise and Enterprise Plus.

Is storage included in the Editions price?

No. Storage is billed separately and the same way under every compute model: by logical or physical bytes, with tables untouched for 90 days at a lower long-term rate (US multi-region list prices: $0.020 and $0.010 per GiB-month logical, $0.040 and $0.020 physical). Switching compute model does not change it, which is why the calculator adds it to every column.

Should we fix our queries before switching pricing model?

Usually, yes. A full-table rebuild that should be incremental, or a dashboard refreshing every few minutes that nobody opens, costs money on either model, and fixing it changes the break-even itself: on-demand gets cheaper when queries scan less, Editions when they use fewer slot-hours. Switching first can lock a commitment in at today's wasteful usage. The guide on where warehouse spend actually goes covers how to find those queries first.

Where do the prices come from, and do they include discounts?

From Google Cloud's BigQuery pricing page, for the US multi-region, each linked below with the date it was checked. The 1- and 3-year slot commitment rates are included because they are published; negotiated discounts, spend-based committed use discounts and credits are not, so a large account may pay less.

Before changing pricing model, find out what the bill is paying for: Where your data warehouse spend actually goes.

The Divergence Point

Where the numbers stop agreeing, and what to do about it. One email a month on data quality, reconciliation and building warehouses that survive contact with a real business. No recycled LinkedIn posts.

Tell me what is broken.

A short call is usually enough to tell whether this is a two-week fix or a two-month one — and whether I am the right person for it.