Skip to the page
Tecyfy

BigQuery ML, BI Engine and Data Transfer pricing

Three BigQuery meters a query estimate misses. BigQuery ML bills CREATE MODEL at $312.50 a TiB on demand, 50 times the query rate, and auto-ARIMA multiplies the bytes by every candidate model. BI Engine bills reserved memory at $0.0416 a GiB-hour whether or not a dashboard runs. Data Transfer Service is free for Google sources except Google Play, object storage and migration connectors, and bills slot-hours for the paid connectors such as Salesforce and the databases. The rules, worked sums and where each shows on the bill.

Tecyfy · Published · 8 min read

A till receipt headed BigQuery beside a gear holding a brain, a bar chart frozen in an ice cube and a pipe pouring data cubes

Three BigQuery costs never show up when you estimate a query: training a model with BigQuery ML, keeping BI Engine memory reserved, and running a Data Transfer Service connector. Each has its own meter. On demand, CREATE MODEL for the built-in models costs $312.50 per TiB it reads, 50 times the normal $6.25. BI Engine costs $0.0416 per GiB of memory every hour it is reserved. Data transfers are free from Google sources except Google Play, and from object storage, and bill slot-hours at $0.06 each for Salesforce, databases and the other paid connectors.

The figures below are Google's list prices for the US multi-region and Iowa (us-central1), read on 23 October 2026. For the queries and storage around them, the BigQuery cost calculator prices every region.

How much does BigQuery ML cost?

BigQuery ML has 3 prices on demand, and which one you pay depends on what the statement does, not on the model's size.

StatementOn-demand price (US)Counts toward the free 1 TiB?
CREATE MODEL: linear and logistic regression, k-means, PCA, ARIMA_PLUS, contribution analysis$312.50 per TiB readNo
CREATE MODEL: boosted tree, random forest, DNN, wide-and-deep, autoencoder, AutoML$6.25 per TiB, plus the Gemini platform's training costNo
ML.EVALUATE, ML.PREDICT, ML.FORECAST and inspection$6.25 per TiB readYes

The first row surprises people because those are the cheapest models to compute. They train inside BigQuery, so Google bills the training query at its own model-creation rate. The second row trains elsewhere: BigQuery bills its part as a query and the Gemini platform (Vertex AI under its new name) bills the training hours, converted into BigQuery bytes on the same invoice line. Matrix factorization cannot run on demand at all; it needs an Enterprise or Enterprise Plus reservation.

Google's own worked example: a CREATE MODEL job that read 100,873,011,200 bytes in the US cost 100,873,011,200 / 1,099,511,627,776 × $312.50 = $28.67. As a plain SELECT those bytes would have cost $0.57.

The ARIMA_PLUS multiplier

Time series models add a second multiplier. With auto-ARIMA on (the default), BigQuery trains several candidate models, keeps the one with the lowest AIC, and bills the training query's bytes once per candidate. The count comes from AUTO_ARIMA_MAX_ORDER, which defaults to 2:

AUTO_ARIMA_MAX_ORDER12 (default)345
Candidates, one series, differencing 0 or 236101521
Candidates, differencing 1, or many series (TIME_SERIES_ID_COL)612203042

So a default forecast over many products, trained on a 100 GiB history, bills 100 GiB × 12 candidates at $312.50 per TiB: $366.21 a run. Retrain it every night and the month comes to about $11,000, for a model whose predictions cost almost nothing. For your own table the sum is the same shape: GiB read ÷ 1,024 × candidates × $312.50 × runs a month.

Three ways to bring it down, in the order they usually help most:

  • Read less. The bytes billed are the bytes the training SELECT reads, so select only the timestamp, the value and the series id, and filter the history to the window that matters. Data Partitioning and ClusteringData Partitioning and ClusteringTwo ways to lay out a large table so a query reads only the files it needs: partitioning splits it by a column such as the date, clustering keeps similar values in the same files. on the date column makes that filter cheap.
  • Lower the order. AUTO_ARIMA_MAX_ORDER = 1 halves the candidates from the default. For a single series you can also turn auto-ARIMA off and give the order yourself; with TIME_SERIES_ID_COL auto-ARIMA must stay on.
  • Retrain less, predict often. ML.FORECAST runs on the chosen model at the query rate.

On an Enterprise or Enterprise Plus reservation none of the per-TiB rates apply. Built-in models train on the slots of a QUERY assignment, sharing them with your analytics. External models (boosted trees, DNN, AutoML) need an ML_EXTERNAL assignment, and those jobs are not preemptible: an AutoML Tables model takes about 1,000 slots, so give them their own reservation. Whether slots beat on-demand for your traffic is worked out in BigQuery on-demand vs editions. Standard edition has no BigQuery ML at all.

Foundation models and remote models

Two newer lines bill by the token instead. TabFM, the tabular foundation model, moves to token pricing on 30 October 2026, and TimesFM 3.0 has a target date of 1 December 2026: $0.05 per million input tokens and $0.20 per million output tokens for both, plus the BigQuery bytes or slots for the rest of the query. For TimesFM each data point is a token, so 1,000 series with 365 days of history and a 30-day forecast is 365,000 input and 30,000 output tokens, about $0.02.

A remote model, such as ML.GENERATE_TEXT on Gemini or Claude, bills twice: BigQuery charges the bytes the query reads, and the model's own service charges its tokens at Gemini platform prices. Google's models run at batch prices this way. The Machine LearningMachine LearningA subset of artificial intelligence that enables computers to learn and make decisions from data without being explicitly programmed. concept page explains what training and prediction do, if those words are new.

How is BI Engine billed?

BI Engine is memory you rent by the hour. You create a reservation of 1 to 250 GiB in a project and region, and pay $0.0416 per GiB-hour for as long as it exists, used or not. That is about $30.37 per GiB in a 730-hour month:

ReservationA month
1 GiB$30.37
10 GiB$303.68
50 GiB$1,518.40
250 GiB (the default maximum)$7,592.00

What you get back: when BI Engine accelerates a query, the stage that reads table data is free. On demand it is billed as 0 bytes and later stages add nothing; on editions that stage uses no slots, while later stages use the reservation as usual.

So BI Engine pays when a dashboard is opened often enough. Take a dashboard whose queries read 2 GiB per load on demand, $0.0122 each. A 10 GiB reservation costs $303.68 a month, which is what about 24,900 loads cost without it, roughly 830 a day. Below that, on demand is cheaper, and the first TiB each month is free anyway. Above it, or when people wait on slow charts, BI Engine wins on both price and speed. It caches only the columns and partitions queries touch, so Google's advice is to size it near the data your dashboards actually read and to list those tables as preferred tables.

Two things change the sum:

  • Editions commitments include some BI Engine for free: 5 GiB per 100 committed slots, up to 100 GiB for 2,000 slots per organisation. It must sit in a project with slots assigned; a reservation in an on-demand project does not count. It appears on the bill as a normal cost with a matching "Spending-Based Discount".
  • Many queries are never accelerated: those using JSON or RANGE columns, JavaScript UDFs, external or BigLake tables, row-level security, transactions, search or vector search, BigQuery ML, results over 1 GiB, or joins to dimension tables over 5 million rows. Those still bill normally while the memory sits idle. INFORMATION_SCHEMA.JOBS shows bi_engine_statistics.acceleration_mode for each query, so check it for a week before sizing up.

Standard edition cannot use BI Engine. Google's workaround for the unsupported cases is a scheduled query that writes a flat table every hour or day for the dashboard to read, which is the same move as a gold table in a Medallion ArchitectureMedallion ArchitectureOrganising a lakehouse in 3 layers of rising quality: bronze for raw data, silver for cleaned and joined data, and gold for tables shaped for reports and AI..

What does the Data Transfer Service charge?

The Data Transfer Service (DTS) bills in 2 parts: running the connector, and loading the data.

Running the connector depends on the source:

ConnectorsCharge
Google sources except Google Play (Google Ads, Ad Manager, Campaign Manager, Display & Video 360, Search Ads 360, Merchant Center, YouTube, Google Analytics 4), object storage (Cloud Storage, Amazon S3, Azure Blob Storage), migration (Amazon Redshift, Teradata)Free
Salesforce, ServiceNow, Salesforce Marketing Cloud, Facebook Ads, MySQL, PostgreSQL, OracleSlot-hours: $0.06 each in Iowa, $0.054 on a 1-year commitment, $0.048 on 3 years
Stripe, PayPal, HubSpot, Klaviyo, SQL Server (preview)Free until they are generally available
Google Play$25 per app package a month, prorated by the days it appears
Partner connectors in Google Cloud MarketplaceEach partner's own price

Google does not publish slot-hours per row or per GB. Its planning figure is up to 20 slot-hours per hour a transfer runs, about $1.20 an hour in Iowa. A Salesforce sync that runs 30 minutes a day is at most about $18 a month on that guide. One that runs 10 minutes every hour is 120 run-hours a month, at most about $144. Actual slot-hours may differ from that guide, so measure a week before you budget.

Loading is the second part. Plain loads into BigQuery native tables are free. Merge jobs into native tables bill as normal queries at your on-demand or slot rate, and loads and merges into Lakehouse for Apache Iceberg tables bill at the standard Lakehouse for Apache Iceberg rates. Then the data costs storage like any table; the BigQuery storage cost article covers which billing model to pick.

Two costs sit outside Google's bill. Pulling from Amazon S3 or Azure Blob Storage can also bring AWS or Azure data transfer charges. And DTS does not delete the files it loaded from a Cloud Storage bucket, so they keep billing storage there until you remove them.

Where each one shows on the bill

All three land inside BigQuery's lines, which is why they go unnoticed. To find them:

  • BigQuery ML has no line of its own. On demand, filter billing exports by the label key bigquery.googleapis.com/bqml; built-in training runs carry values such as bqml_linear_reg_training or bqml_arima_plus_training, and external models bqml_analytic plus CAIP or AUTOML_TABLES. For one job, read the bytes billed from the Cloud Logging audit log and multiply by $312.50 per TiB. Remote model calls carry billing_service = 'bigquery_ml' on the model service's bill.
  • BI Engine bills per project with a reservation. Look for its memory SKU, and for the spending-based discount if you have commitments.
  • Data Transfer Service carries the label goog-bq-feature-type with the value DATA_TRANSFER_SERVICE; from 11 August 2026 all Data Transfer Service SKUs are due to move to the value data_transfer_service, so filter on both, covering both the connector and the loading.

A dry run is no help for training: for some model types BigQuery cannot count the bytes until training has finished. Try the statement on a small sample first, read its bytes billed, and scale up.

For the rest of a BigQuery bill, the BigQuery cost calculator prices queries and storage in every region, and the Snowflake vs BigQuery comparison sets them against a Snowflake warehouse. Pipelines that move data into BigQuery on a schedule are an ELTELTLoading raw data into the warehouse or lakehouse first and transforming it there, the reverse of the older ETL order, which transformed data before loading it. pattern; the Change Data CaptureChange Data CaptureCopying only the rows that were added, changed or deleted in a source database, read from its change log, instead of copying the whole table again. concept page explains the merges an incremental connector runs.

Questions

How much does BigQuery ML cost?
On demand, training a linear or logistic regression, k-means, PCA, contribution analysis or time series model costs $312.50 per TiB the training query reads, in the US. Boosted tree, random forest, DNN and AutoML models cost $6.25 per TiB for BigQuery's part plus the Gemini platform's training cost. Evaluation, inspection and prediction cost the normal query rate of $6.25 per TiB and count toward the free 1 TiB a month. On Enterprise or Enterprise Plus editions, BigQuery ML runs on your reserved slots instead.
Why is my BigQuery ML ARIMA_PLUS model so expensive?
Auto-ARIMA trains several candidate models and bills the training query's bytes once for each. With the default AUTO_ARIMA_MAX_ORDER of 2 that is 6 candidates, or 12 when the differencing order is 1 or when you forecast many series with TIME_SERIES_ID_COL; at order 5 it is up to 42. Each candidate is billed at the model creation rate of $312.50 per TiB. Lower AUTO_ARIMA_MAX_ORDER, read fewer columns, or train on editions slots.
How much does BigQuery BI Engine cost?
BI Engine costs $0.0416 per GiB of reserved memory per hour, about $30.37 per GiB a month, for every hour the reservation exists. Queries it accelerates read table data for free: 0 bytes on demand, no slots on editions. With an editions commitment you get some capacity at no cost, 5 GiB per 100 slots up to 100 GiB. BI Engine needs Enterprise, Enterprise Plus or on-demand pricing; Standard edition cannot use it.
Is the BigQuery Data Transfer Service free?
For some sources. Connectors from Google sources (except Google Play), object storage such as Cloud Storage, Amazon S3 and Azure Blob Storage, and the migration connectors cost nothing to run. Salesforce, ServiceNow, Salesforce Marketing Cloud, Facebook Ads, MySQL, PostgreSQL and Oracle bill slot-hours at $0.06 each in Iowa. Google Play costs $25 per app package a month. Loading into native tables is free, but merges bill as normal queries.
How much does a BigQuery Data Transfer Service run cost?
Google's planning guide is up to 20 slot-hours for each hour a paid transfer runs, which is about $1.20 an hour in Iowa at $0.06 a slot-hour. A daily transfer that runs 30 minutes costs at most about $18 a month on that guide. Actual slot use can be lower.
Does BigQuery ML work on the Standard edition?
No. Standard edition reservations have no access to BigQuery ML or BI Engine. Use on-demand pricing or an Enterprise or Enterprise Plus reservation. Matrix factorization models need an Enterprise or Enterprise Plus reservation and cannot be trained on demand.