BigQuery is the warehouse for people who don’t want to run a warehouse. No clusters, no nodes, no capacity planning: you load data, you write SQL, Google bills you for the bytes your query scanned. For a small team it’s the least infrastructure you can own while still having a serious analytics platform, and it’s the warehouse I’d point most startups at first.
The pricing, which is actually published
A rare pleasure in this category: real numbers on a public page. On-demand queries cost $6.25 per tebibyte scanned, and the first tebibyte each month is free. Storage runs about $0.023 per gibibyte a month for active data (billed per hour, with long-term data cheaper), and the first 10 gibibytes are free. A small team’s analytics workload routinely lands in single or low double-digit dollars a month (really).
When the on-demand bill gets big and predictable, you switch models: capacity pricing sells slots (virtual CPUs) by the hour. The Standard edition starts at $0.04 per slot-hour with no commitment, Enterprise at $0.06, Enterprise Plus at $0.10, and one-year or three-year commitments bring the rates down further. That migration path, from pay-per-query to reserved capacity, is the sane cost curve most warehouses make you negotiate for.
A worked month, in real numbers
Take a 200-gigabyte warehouse with three analysts. If their dashboards and ad-hoc work scan 10 gibibytes per query, 30 times a working day, that’s roughly 6.4 tebibytes a month. The first tebibyte is free, so you’re billed for about 5.4 at $6.25: around $34 a month of compute, plus about four dollars of storage. Partition the two biggest tables and those same dashboards might scan a tenth of that. The arithmetic is the product’s best sales pitch, and it’s also the warning: multiply the scans by a wide table and careless SQL, and the same team can spend ten times as much answering the same questions.
The one habit that keeps it cheap
Billing follows bytes scanned, so the cost of a query is decided when you write it. A SELECT * on a wide unpartitioned table costs more than a week of disciplined queries. Partition and cluster the big tables early, teach the team to select columns, and set a project-level limit as the backstop. This is the entire BigQuery cost-management manual, and it fits in a sentence, which is exactly the appeal after reading Snowflake’s.
The storage switch almost nobody flips
Buried in the dataset settings is a second pricing lever this research pass surfaced: every dataset can bill storage on a logical (uncompressed) or physical (compressed) model. The physical rate per gibibyte is higher, but it bills the compressed bytes, and analytics data commonly compresses several times over, so for most warehouses physical billing is meaningfully cheaper for the same data. Google lets you check both numbers per dataset before deciding, the switch takes a day to apply, and you’re locked for 14 days after each change. For a directory obsessed with honest pricing, a published toggle that can cut the storage line is exactly the kind of detail worth a paragraph.
When to move to capacity
The switch point is when your on-demand spend is both meaningful and steady. At $0.04 per slot-hour on the Standard edition, 100 slots running 8 hours a day for a month is about $960; if your on-demand bill is above that and stable, capacity gives you a fixed number and removes per-query anxiety entirely. The autoscaler bills per second with a one-minute minimum, so you’re not paying for slots overnight. Committed one-year and three-year rates ($0.036 and $0.032 on Standard) exist once you trust the baseline. It’s the least dramatic pricing migration in the warehouse world: no renegotiation, just a billing model toggle when the numbers say so.
What it’s like to live with
Streaming ingestion, materialised views, built-in ML if you want it, and every Google source (Analytics, Ads, Sheets) a native transfer away. The connector world treats it as a first-class destination; so does dbt. Stack Overflow has 26,000 questions tagged for it, which for practical purposes means every error message you’ll ever see has already been answered.
Reviewers rate it 4.5 on both G2 and Gartner Peer Insights, across 1,223 and 449 reviews. The G2 spread is telling: 69% five-star, 28% four, and a combined 1% below that, which for a tool this widely used is about as clean as distributions get. The steady complaint in those reviews isn’t the product, it’s the platform: BigQuery means Google Cloud, full stop.
The lock-in question, answered honestly
That single-cloud fact is the real trade-off. Snowflake runs the same on three clouds; BigQuery runs on one. Export paths exist and the formats are standard, so leaving is work rather than hostage negotiation, but if multi-cloud is a requirement rather than a preference, this is not your warehouse. My take: for a company already inside Google Cloud, or a small team without a cloud religion, the simplicity is worth far more than the optionality you’re giving up.
Skip it when
Three honest outs. If multi-cloud is a hard requirement, this decision is already made against BigQuery. If your workload is sustained heavy transformation in Spark or Python rather than SQL, Databricks fits the shape of the work better. And if your organisation lives in Microsoft’s world end to end, fighting the gravity of your own platform for a warehouse is rarely worth it. Otherwise the defaults here are unusually kind to small teams, and the exit, should you ever take it, is standard exports rather than a hostage exchange.
Verdict
The best starting warehouse in the directory, and a legitimate endpoint too: plenty of large companies never need to leave it. Free tier that means it, published prices, nothing to switch off at night. Learn the partitioning habit in week one and BigQuery stays the cheapest serious answer in analytics.

