Short answer: on-demand bills bytes scanned, Editions bills slot-hours, and the cheaper one depends on how much compute each scanned byte needs. Either way, the biggest savings usually come from scanning less.
What it costs (US list prices, illustrative)
On-demand: $6.25 per TiB of bytes billed, first 1 TiB per month free.
Editions, pay-as-you-go: about $0.04 (Standard) to $0.06 (Enterprise) per slot-hour, autoscaled in 50-slot steps with a one-minute minimum.
Where the money is
Refresh loops: dashboards and scheduled queries that rescan the same large table many times a day.
SELECT *: BigQuery bills per column read, so selecting every column of a wide table bills for all of them.
Unpartitioned tables: a date filter on a table that is not partitioned by date still scans everything.
Measure and fix
Pull 30 days from INFORMATION_SCHEMA.JOBS_BY_PROJECT: runs, total_bytes_billed and total_slot_ms, grouped by label or query hash.
Paste rows into the advisor or run node cli.mjs analyze queries.csv.
Cap expensive queries with --maximum_bytes_billed; partition, cluster or materialize the repeat scans.
If Editions looks cheaper, pilot with a small autoscale cap before moving the project.
Questions
Why is my BigQuery bill so high?
Usually repeated large scans. On-demand bills $6.25 per TiB of bytes billed after the first free TiB a month, so a dashboard that refreshes every ten minutes over a 180 GB table costs about $1.10 a run and several thousand dollars a month.
When is BigQuery Editions cheaper than on-demand?
When queries scan a lot of data but use little compute: slot-hours at $0.04 to $0.06 then cost less than bytes at $6.25 per TiB. Compute-heavy queries over small tables are the opposite. Compare your own rows, and treat the slot figure as a floor because autoscaling bills in 50-slot steps with a one-minute minimum.
How do I stop one query from costing a fortune?
Set maximum bytes billed on the job or in the client. A query that would exceed it fails without charge. Pair it with a custom daily query quota per project or user.