Lens

BigQuery Cost

Lens shows what a BigQuery-backed table costs to sync: a free estimate before you save, the bytes and dollars of each run, a monthly projection, and a per-table pricing setting.

Which tables have a BigQuery cost

TableCost
Google BigQuery tableEvery sync runs a query in the Google Cloud project the table reads
Attribution table on the GA4 BigQuery exportEvery build runs queries in the export's project
Attribution table on a Lens event tableNone of its own
Joined, Union and Pivot tables built on BigQuery tablesNone of their own. The table page shows what the BigQuery tables they read cost
BigQuery datasets in a semantic modelQueried in your project each time a question is asked; not synced, so no sync cost is shown

Google bills the project the query runs in, not TagPipes. Every dollar figure is an estimate.

Before you save: the estimate

On a BigQuery table's setup page, the line above Save reads, for example:

Estimated scan per sync: 12 GB, about $0.07 (about $2.20 / month at daily)

  • It is a free BigQuery dry run of exactly the query the sync would run. Nothing is queried or billed until the table syncs.
  • It updates as you change the project, dataset, table, query, columns, Backfill Days or schedule.
  • The monthly figure assumes 720 runs for Hourly, 30 for Daily, about 4.3 for Weekly and 1 for Monthly. Manual and cascade schedules have no monthly figure.
  • "No estimate yet" means the form is not complete enough to build the query. "Could not reach BigQuery for an estimate" does not affect saving.

An attribution table on the GA4 export shows the same estimate as BigQuery scanned per sync when you click Check Setup.

After a sync: the BigQuery Cost panel

The table page has a BigQuery Cost panel:

LineExample
Last runLast run: 36 GB, about $0.20
MonthlyAbout $6.10 / month at daily (average of the last 5 runs)
Who paysBilled to the Google Cloud project example-analytics

The monthly figure averages up to the last 5 runs. Each run's bytes are also listed in the table's sync history. Before the first run, the panel says the cost shows after the next sync. The table list shows the last run on each BigQuery table's card.

Pricing for this project

In the BigQuery Cost panel, pick how the project pays and click Save Pricing:

SettingEffect
On demand (default)Pays per byte scanned. Dollars are worked out at the price per TiB
Flat rateEditions or reservations: the project pays for slot capacity, so only bytes are shown
Price per TiB, US dollarsOptional, on demand only. Leave empty for Google's list price ($6.25 per TiB); set it if your billing account has negotiated pricing

Pricing only changes the figures Lens shows. It never changes the sync.

How the numbers are worked out

RuleDetail
Unit1 TiB = 1,099,511,627,776 bytes. Sizes are shown in decimal units (MB, GB, TB), as the BigQuery console shows them
Free tierThe first 1 TiB each month is free per billing account, so your bill can be lower than the estimate
Small amountsAnything under one cent shows as "under $0.01"
Older runsRuns recorded before bytes billed was stored use bytes processed, and say so

Keep the cost down

  • Keep Backfill Days to the history you chart: a BigQuery table re-reads its whole window on every sync.
  • Pick only the columns you need; BigQuery bills by the columns a query reads.
  • Use Daily rather than Hourly unless you need intraday data.