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.
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 | 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 share | 15% | 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 bills | Credits 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. |
| Advantage | Multi-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. |
| Risk | Every 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. |
| Load | Load | Load | Load | Load | Load | |
Architecture parameter matrix
| Parameter | Snowflake | BigQuery (on-demand) | BigQuery Editions (slots) | Databricks SQL (serverless) | Redshift Serverless | Redshift (provisioned RA3) |
|---|---|---|---|---|---|---|
| Billing structure & idle tax | ||||||
| Billing granularity | 60s min, then 1s | Per TiB scanned | 60s min, then 1s | No per-run minimum | 60s min, then 1s | No 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 share | 15% | 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.

