All Articles
Conceptยท5 min read

BigQuery Slots and Pricing, Explained Clearly

BigQuery's two pricing models confuse almost everyone. Here is what a 'slot' is and how to know which model your workload should use.

Part of: Google Cloud Platform (GCP) Engineer

BigQuery has two ways to charge you for running queries, and picking the wrong one can multiply your bill. The confusion usually comes down to one word โ€” "slot." Here is the mental model.

A Slot Is a Unit of Compute

A slot is a virtual unit of CPU and memory that BigQuery uses to execute a query. A query is broken into stages, and BigQuery assigns slots to work through them in parallel. More slots means more parallelism means faster queries. That is all a slot is: a worker.

You don't manage slots individually โ€” you either let BigQuery allocate them on demand, or you reserve a pool of them. That choice is the pricing model.

Model 1: On-Demand (Pay Per Byte)

By default, you pay for the bytes your queries scan, and BigQuery hands you slots automatically (up to a shared limit). You don't think about slots at all:

Cost = bytes scanned ร— per-TB rate

This is simple and great for spiky or low-volume workloads โ€” you pay only for what you query, and an idle day costs nothing. It is also why partitioning and column selection matter so much here: fewer bytes, lower cost.

Model 2: Capacity (Pay Per Slot)

With editions/reservations, you buy a fixed number of slots for a period and run unlimited queries against them:

Cost = slots reserved ร— time   (bytes scanned no longer billed)

Your bill becomes predictable and flat regardless of query volume. The catch: if your slots sit idle, you pay anyway.

Which One You Want

The rule of thumb:

  • โ–ธOn-demand โ€” variable, unpredictable, or modest query volume. You want to pay for nothing when you query nothing.
  • โ–ธCapacity โ€” steady, heavy, predictable workloads where per-byte costs would exceed a flat reservation, or where you need cost predictability.

Many organizations use both: a reservation for the steady production load, on-demand for ad-hoc exploration.

Summary

A slot is just a unit of query compute. On-demand pricing bills the bytes you scan and allocates slots for you โ€” ideal for spiky, lighter workloads. Capacity pricing rents a fixed slot pool at a flat rate โ€” ideal for heavy, predictable use. Match the model to your query pattern and you stop overpaying for whichever one you drifted into by default.

#GCP#BigQuery#Cost#Concepts

Want to go deeper?

Google Cloud Platform (GCP) Engineer

View Course