Snowflake and BigQuery bill on opposite meters
Snowflake charges for compute TIME. A virtual warehouse burns credits every second it runs, at the size you picked, even when it processes no query. BigQuery's default pricing charges for BYTES. A query costs the same in one second or in one minute. The cost depends on how much data the query scanned. The two warehouses overspend in different ways.
That split decides where the waste hides. On Snowflake, watch how much billed time a warehouse spent idle or resuming instead of running a query. On BigQuery's on-demand model, watch how many bytes a query scanned that it did not need. Neither console shows that number at a glance. A config change is easy to miss until the bill grows.
How the calculator works
The Snowflake panel prices two warehouses: a primary one and a smaller dev/test one. It uses their size, active hours, resumes and auto-suspend timeout. It splits the result into query-active compute, idle-before-suspend waste and resume-minimum makeup. Tightening auto-suspend trades one against the other. Cloud services credits and storage complete the total. Time Travel and the fixed 7-day Fail-safe window both retain extra bytes. Snowflake does not publish a $/credit or $/TB list price. Both are required inputs, priced at your own rate.
The BigQuery panel prices on-demand scanning against an Editions reservation at your own slot shape. It shows the crossover: the scan volume where the two cost the same. It prices storage at both the logical (uncompressed) and physical (compressed) billing option. Switching pays off only above a certain compression ratio.
Below both panels, a ranked set of levers computes what each concrete fix is worth at your own numbers. The levers do not all stack. Requiring a partition filter and pruning columns both cut the same scanned-byte total. Applying both saves less than their sum.