Composable CDP costs by warehouse: how do they compare?

The same activation workload, priced against Snowflake, BigQuery, Databricks SQL and AWS Redshift, with each engine's own billing floor and idle-tax behaviour computed by this app's real cost model, not typical-range estimates.

At this workload (batch sync every 4 hours, daily audience unify), Databricks SQL (serverless) is the cheapest at $569 a month and BigQuery (on-demand) the most expensive at $1,079. The warehouse itself is 9% to 52% of the bill.

Each warehouse is priced at the size shown, on the same workload, at published list prices checked 26 October 2026. Licence fees, services and discounts are excluded.

Simulated workload profile
Warehouses shown

Reading this fairly: each column uses one representative compute tier per vendor, the same relative position in that vendor's own size ladder, not a confirmed equivalent. RPU, DBU and Snowflake credits aren't standardised units, so a lower listed $/hour at the same tier position doesn't guarantee less real compute power.

Per-run workload also isn't held fixed while this scenario's sync frequency changes: every engine below runs against a constant total of 150s of query time and 0.30 TiB scanned per day, anchored to the Standard scenario, divided across however many runs this scenario actually makes. At 6 runs/day that's 25.0s of query time and 51.2 GiB scanned per run below, not the fixed 25s/51 GiB every scenario would see if run count were ignored. A floor of 3s and 1.0 GiB stops that scaling going to zero at very high frequency, the way a real query still has non-zero overhead on a tiny incremental delta.

Metric
Snowflake
Small, Standard · $4.00/hr
BigQuery (on-demand)
On-demand · $6.25/TiB scanned
BigQuery Editions (slots)
Standard, 100 slots · $4.00/hr
Databricks SQL (serverless)
X-Small, 6 DBU/h · $4.20/hr
Cheapest here
Redshift Serverless
8 RPU · $3.00/hr
Redshift (provisioned RA3)
4× ra3.xlplus · $4.34/hr
Monthly cost$608$1,079$608$569$585$571
Annual cost$7,299$12,945$7,299$6,825$7,023$6,847
Compute share15%52%15%9%12%10%
Cost breakdown
Warehouse compute$92.00$563$92.00$52.50$69.00$54.30
Batch sync jobs$66.26$66.26$66.26$66.26$66.26$66.26
Platform floor$450$450$450$450$450$450
Reading each engine
How it billsCredits burn per second, but every resume bills at least 60 seconds. Short audience queries fired on a schedule are the worst case for this: a four-second query and a fifty-nine-second query cost exactly the same.Billed on bytes scanned, so run frequency barely matters. What matters is how much of the table each query reads. Partitioning and clustering move this number more than scheduling does.A reservation you pay for while it is up. Predictable once your scan volume is steady, and usually cheaper than on-demand past roughly 10–15 TiB scanned per month.Billed per second while running, at a DBU rate that includes the underlying machines, so the headline number looks higher than classic compute while often costing less in total for bursty work. Databricks publishes no minimum charge per start, so none is applied here.Billed per RPU-second above a 60-second floor per query or transaction. The 4 RPU minimum sets the cheapest run you can have, whatever the query does.Always on, so sync frequency costs nothing extra until you saturate the cluster. Cheapest per query at high steady volume, most wasteful at low volume. The mirror image of serverless.
AdvantageMulti-cluster warm reuse can push the floor-tax share close to zero at high sync concurrency.No cluster to manage, and scan-based billing means there is no minimum-floor tax on cold runs.A fixed slot reservation replaces per-query scan billing, so cost stops moving with how often you sync.No published minimum charge per start, so short scheduled queries are not padded up to a minute.The base RPU floor is predictable and cheap at steady, continuous volume.Always-on compute means no cold-start floor tax at any sync frequency, the mirror image of Serverless.
RiskEvery cold resume bills a full 60s, whatever the query actually takes.Unpartitioned or unpruned tables scale cost directly with bytes scanned, not runtime.The reservation bills in full even in a quiet period, the opposite problem from on-demand scanning.The DBU rate folds machine cost in, so the headline $/hour reads higher than raw compute.A 4 RPU minimum applies per query regardless of how little work it does. 8 RPU is the closest tier to the ~$4/hr band the other columns sit in: Redshift simply has no tier that lands closer.The cluster bills every hour whether or not a query is running, so it is the most wasteful option at low, spiky volume.
LoadLoadLoadLoadLoadLoad
Deep dimensional matrix

Architecture parameter matrix

ParameterSnowflakeBigQuery (on-demand)BigQuery Editions (slots)Databricks SQL (serverless)Redshift ServerlessRedshift (provisioned RA3)
Billing structure & idle tax
Billing granularity60s min, then 1sPer TiB scanned60s min, then 1sNo per-run minimum60s min, then 1sNo per-run minimum
Floor waste (100 runs @ 15s)$5.00$0.00$5.00$0.00$3.75$0.00
Representative rate$4.00/hr$6.25/TiB$4.00/hr$4.20/hr$3.00/hr$4.34/hr
Fit for this scenario
Total monthly spend$608$1,079$608$569$585$571
Warehouse compute share15%52%15%9%12%10%

Which warehouse engine should you select?

Rule of thumb: if your sync intervals run under a minute, a 60-second-floor engine taxes every cold resume. That floor applies here to Snowflake, BigQuery Editions (slots) and Redshift Serverless; it doesn't apply to BigQuery (on-demand), Databricks SQL (serverless) and Redshift (provisioned RA3). Pool syncs onto warm concurrency, or move to a scan-billed or always-on engine instead. For this scenario, Databricks SQL (serverless) comes out cheapest at $569/mo.

Every figure is recomputed, not looked up

Switching the scenario above re-runs the real cost model for every engine below. Nothing on this page is a cached or pre-written number.

Same rates as the calculator

This matrix shares its rate card with the main calculator. Edit a rate there and this page's next load reflects it too.

Billing shape, not just vendor

BigQuery and Redshift each get two columns here because on-demand vs. reserved, or serverless vs. always-on, changes the cost behaviour more than the vendor does. Open the full calculator to model every size tier and rate individually.