How each platform bills
The three warehouses do not charge for the same thing, which is why a price-per-unit table on its own cannot tell you which is cheaper for you.
BigQuery on demand bills the bytes each query scans: $6.25 per TiB in US regions, with the first TiB each month free, plus storage at $0.023 per GiB-month for tables changed in the last 90 days and $0.016 for tables left alone longer. Time does not appear anywhere. A query that scans 1 GB costs the same whether it runs for two seconds or two minutes.
Snowflake bills credit-seconds of a running warehouse. An X-Small warehouse uses one credit an hour, each size up doubles it, and a credit costs $2, $3 or $4 on demand depending on edition. Every time a warehouse wakes it bills at least 60 seconds, then keeps billing for the auto-suspend time before it goes back to sleep. Storage is $23 per TB-month of compressed data.
Redshift Serverless bills RPU-hours: $0.375 per RPU-hour, per second, with a 60-second minimum each time it runs and no idle tail afterwards. Managed storage is $0.024 per GB-month.
Each rate comes from the vendor’s own pricing page, linked below and again in the full rate table with the date it was checked.
So BigQuery charges for how much a query reads, and Snowflake and Redshift charge for how long the compute is up. The difference matters most for small, frequent work: a dashboard that reads very little data still pays a full minimum every time it wakes a Snowflake warehouse or a Redshift workgroup.
Three workloads, priced on all three
These are illustrative workloads, not client data. Each one is run through the same code as the warehouse cost estimator, at the list prices in the table further down, and the figures are monthly, in US dollars. On Snowflake and Redshift a range mostly reflects how fast queries run, assumed at 8 GB a minute on an X-Small warehouse at the low end and 3 at the high end; the low end also runs the day’s jobs as one batch, and the high end wakes the warehouse for every job and every query. On BigQuery only storage ranges, with how much of the data is old enough for the long-term rate. Every assumption the tool lets you change is set to its default, and each workload opens in the estimator so you can change them.
Early-stage product, one analyst
200 GB stored, ten small scheduled jobs a day, five dashboards refreshing hourly and a handful of ad-hoc queries.
| Per month | BigQuery (on demand) | Snowflake (Enterprise, XS) | Redshift Serverless (8 RPU) |
|---|---|---|---|
| Storage | $3.22 – $4.37 | $4.49 | $4.80 |
| Scheduled transforms | $3.71 | $5.32 – $30 | $3.80 – $15 |
| BI refreshes | $4.46 | $73 | $37 |
| Ad-hoc queries | $1.33 | $1.36 – $22 | $1.36 – $11 |
| Free tier | −$6.25 | — | — |
| Total | $6.47 – $7.61 | $84 – $130 | $46 – $67 |
With incremental models and dashboards refreshing half as often: BigQuery $3.22 – $4.37, Snowflake $45 – $93, Redshift $26 – $49.
Open this workload in the estimatorScale-up with a small data team
2 TB stored, forty scheduled models rebuilt in full every day, twenty dashboards refreshing hourly and fifty analyst queries a working day.
| Per month | BigQuery (on demand) | Snowflake (Enterprise, XS) | Redshift Serverless (8 RPU) |
|---|---|---|---|
| Storage | $35 – $47 | $46 | $49 |
| Scheduled transforms | $149 | $154 – $466 | $152 – $406 |
| BI refreshes | $89 | $128 – $280 | $91 – $243 |
| Ad-hoc queries | $33 | $34 – $145 | $34 – $91 |
| Free tier | −$6.25 | — | — |
| Total | $299 – $311 | $361 – $937 | $326 – $789 |
With incremental models and dashboards refreshing half as often: BigQuery $121 – $133, Snowflake $161 – $452, Redshift $144 – $322.
Open this workload in the estimatorMid-market company with a central data platform
20 TB stored, 150 scheduled models rebuilt in full every day, sixty dashboards refreshing every half hour and two hundred analyst queries a working day.
| Per month | BigQuery (on demand) | Snowflake (Enterprise, XS) | Redshift Serverless (8 RPU) |
|---|---|---|---|
| Storage | $347 – $471 | $460 | $492 |
| Scheduled transforms | $2,785 | $2,853 – $7,604 | $2,852 – $7,604 |
| BI refreshes | $1,604 | $1,716 – $4,380 | $1,643 – $4,380 |
| Ad-hoc queries | $265 | $272 – $941 | $272 – $724 |
| Free tier | −$6.25 | — | — |
| Total | $4,995 – $5,119 | $5,300 – $13,386 | $5,257 – $13,200 |
With incremental models and dashboards refreshing half as often: BigQuery $1,686 – $1,810, Snowflake $1,876 – $4,580, Redshift $1,870 – $4,166.
Open this workload in the estimatorThe list prices behind every figure
| Platform | Item | List price (USD) | Applies to | Checked |
|---|---|---|---|---|
| BigQuery | On-demand queries | $6.25 per TiB scanned | US multi-region and US regions; the first 1 TiB each month is free | 2026-10-11 |
| BigQuery | On-demand free tier | 1 TiB scanned per month free | Per billing account | 2026-10-11 |
| BigQuery | Storage free tier | 10 GiB stored per month free | Per billing account, logical or physical storage | 2026-10-11 |
| BigQuery | Active logical storage | $0.023 per GiB-month | us-central1; tables modified in the last 90 days | 2026-10-11 |
| BigQuery | Long-term logical storage | $0.016 per GiB-month | us-central1; tables not modified for 90 days | 2026-10-11 |
| Snowflake | Credit, Standard edition | $2.00 per credit | On demand, AWS US East (Northern Virginia) | 2026-10-14 |
| Snowflake | Credit, Enterprise edition | $3.00 per credit | On demand, AWS US East (Northern Virginia) | 2026-10-14 |
| Snowflake | Credit, Business Critical edition | $4.00 per credit | On demand, AWS US East (Northern Virginia) | 2026-10-14 |
| Snowflake | Storage | $23.00 per TB-month | On demand, AWS US East (Northern Virginia); billed on compressed size | 2026-10-14 |
| Redshift Serverless | Serverless compute | $0.375 per RPU-hour | US East (N. Virginia); per second, 60-second minimum; base capacity 4–1024 RPUs | 2026-10-11 |
| Redshift Serverless | Managed storage | $0.024 per GB-month | US East (N. Virginia) | 2026-10-11 |
Snowflake warehouse sizes, credits per hour: XS 1 · S 2 · M 4 · L 8 · XL 16 · 2XL 32 · 3XL 64 · 4XL 128. Same source as the Snowflake rates.
What the numbers actually say
For the two larger workloads, how the work is shaped moves the bill more than which vendor runs it. Making the scheduled models incremental and halving how often the dashboards refresh cuts every platform’s total by more than half in both the scale-up and the mid-market workload. Between vendors, the low-end totals sit within about a fifth of each other for the scale-up and within about 6% for the mid-market workload.
The ranges on Snowflake and Redshift are wide: in those two workloads the high end is roughly two and a half times the low end. Most of that is not a vendor difference or a scheduling one. It is query speed, which a list price cannot tell you: the low end assumes an X-Small warehouse scans 8 GB a minute and the high end 3. Waking the warehouse for every job instead of running the day’s jobs as one batch adds far less: between nothing and about a third, depending on the platform and the workload. Your own query history is what narrows the range.
At the small end, the vendor does matter. For the early-stage workload BigQuery comes to a few dollars a month, because most of what it scans falls inside the free tier, while Snowflake and Redshift come to tens of dollars, most of it from hourly dashboard refreshes that each pay a minimum billing period for reading very little data. Halving how often they refresh roughly halves that line, but for a workload this small BigQuery stays far lower.
BigQuery on demand has the lowest total in all three workloads at these assumptions. Treat that with care for the two larger ones: its compute is a single figure because it bills bytes, while the Snowflake and Redshift figures rest on an assumed scan speed of 3 to 8 GB a minute on an X-Small warehouse, which is this page’s assumption, not a vendor figure. Faster real queries would narrow the gap, and your query history is the only thing that can settle it.
Redshift Serverless and Snowflake come out close because, at list price, 8 RPUs cost the same per hour as an X-Small warehouse on Enterprise edition, and the method assumes they scan equally fast. Redshift is lower where Snowflake pays for its auto-suspend tail after each short run, which is why the gap is widest for the early-stage workload. On Standard edition, Snowflake’s compute would be a third cheaper.
What list price leaves out
Every rate here is the vendor’s published on-demand list price for one US region. Committed-use and capacity contracts, editions bought through a marketplace, negotiated rates and credits are all left out, so a large account will usually pay less than this for the same work.
BigQuery’s capacity pricing (slot reservations through its editions) is not modelled, and above a certain steady volume it can come in below on-demand. Snowflake cloud services, which are not billed below 10% of daily compute, BigQuery’s minimum bytes per query and cache hits, and data transfer and egress between regions or out of the cloud are not included either. Snowflake Gen 2 warehouses use more credits an hour on AWS than the Gen 1 sizes used here.
Databricks is left out on purpose. Its bill combines Databricks units with the cloud provider’s virtual machines underneath them, so a list-price figure would depend on instance choices that are not part of the workload.
When the platform matters less than how it is run
If you are choosing a warehouse, these tables are a fair starting point. If you already have one and the bill is the problem, migrating is rarely the cheapest fix. The two levers above, incremental models and refreshes matched to how reports are actually used, cut more in these workloads than switching vendor would, and they come with you to whichever platform you end up on.
Finding which jobs and dashboards to change starts with attributing the bill to whatever causes it. The guide below covers how, and the case study shows the same problem worked through in an in-house role rather than a client engagement.