Introduction to legacy reservations
Note: Legacy reservations, including access to flat-rate billing or certain commitment lengths, are only available to allow-listed customers. To determine if you have access to these legacy features, contact your administrator. The flat-rate billing model defines how you are billed for compute, but flat-rate reservations and commitments function as Enterprise edition slots.BigQuery reservations enable you to switch fromon-demand pricing tocapacity-based pricing.With capacity-based pricing, you pay for dedicated or autoscaled queryprocessing capacity rather than paying for each query individually.
Reservations enable you to allocate query capacity, measured inslots, to different workloads or different parts ofyour organization.
Creating acapacity commitment isoptional when working with reservations that leverageBigQuery editions,but can save on costs for steady-state workloads.
Note:Legacy flat-rate commitments have access to the same features asEnterprise edition commitments. All legacy flat-rate commitments are labeled asflat-rate for the compute pricing model value andEnterprise for the edition value.Overview
BigQuery offers two compute (analysis) pricing models:
On-demand pricing:You pay for the data scanned by your queries. You have a fixed, per-projectquery processing capacity,and your cost is based on the number of bytes processed by each query.
Capacity-based pricing:You pay for dedicated or autoscaled query processing capacity, measured inslots, over a period of time. Multiple queries sharethe same slot capacity.
By default, you are billed according to the on-demand pricing model. Usingreservations, you can switch to capacity-based pricing anduseslots autoscaling and purchasediscountedcapacity commitments. There isno charge for bytes processed when using the capacity-based model.
You can combine both billing models. For example, you might run some workloadswith on-demand pricing and others with capacity-based pricing. As the billingmodel is specified per project, this would require that you use multiple projectsfor your query jobs.
Benefits of reservations
The benefits of using BigQuery reservations include:
Predictability. Capacity-based pricing offers predictable and consistent costs.You specify your maximum cost budget up front and can also take advantage of slotcommitments, which offer dedicated ongoing capacity at a discounted rate.
Flexibility. You choose how much dedicated capacity to allocate to aworkload or let BigQuery automatically scale capacity basedon your workload requirements. You are billed using for the slots consumed ata minimum of one second increments.
Workload management. Each workload has a specified pool of BigQuerycomputational resources available for use. At the same time, if a workloaddoesn't use all of its dedicated slots, any unused slots are shared automaticallyacross your other workloads.
Centralized purchasing: You can purchase and allocate slots for yourentire organization. You don't need to purchase slots for each projectthat uses BigQuery.
Reservations
BigQuery capacity is measured inslots,which represent virtual CPUs used by queries.Generally, if you provision more slots, you can run moreconcurrent queries, and complex queries can run faster.
Slots are allocated in pools calledreservations. Reservations let youallocate the slots in ways that make sense for your particular organization.
For example, you might create a reservation namedprod for productionworkloads, and a separate reservation namedtest for testing. That way, yourtest jobs don't compete for resources that your production workloads need. Or,you might create reservations for different departments in your organization.
Reservations can includebaseline slots, which are always allocated, as wellasautoscaled slots, which areadded or removed dynamicallybased on the demands of your workload.
A reservation nameddefault is automatically created if you purchase slotcommitments before creating a reservation. There is nothing special about thedefault reservation — it's created as a convenience. You can decidewhether you need additional reservations or just use the default reservation.
To use the slots that you allocate, you mustassign one or more projects toa reservation, as described in the next section.
A reservation is the lowest level at which you can specify slot allocation.Slot allocation within a reservationis handled by the BigQuery scheduler.
Assignments
To use the slots that you allocate, you must assign one or more projects,folders, or organizations to a reservation. Each level in the resource hierarchyinherits the assignment from the level above it. In other words, if a project orfolder is not assigned, then that project or folder inherits the assignment ofits parent folder or organization, if any. For more information about theresource hierarchy, seeOrganizing BigQuery resources.
When a job is started from a project that is assigned to a reservation, the jobuses that reservation's slots. If a project is not assigned to a reservation(either directly or by inheriting from its parent folder or organization), thejobs in that project use on-demand pricing.
None assignments represent an absence of an assignment. Projects assigned toNone use on-demand pricing. The common use case forNone assignments is toassign an organization to the reservation and to opt out some projects orfolders from that reservation by assigning them toNone. For more information,seeAssign a project to None.
When you create an assignment, you specify the job type for that assignment:
QUERY: Use this reservation for query jobs, including SQL, DDL, DML, andBigQuery ML queries.PIPELINE: Use this reservation for load and extract jobs.By default, load and extract jobs arefree anduse a shared pool of slots. BigQuery does not make guaranteesabout the available capacity of this shared pool or the throughput yousee. If you are loading large amounts of data, your job might wait as slotsbecome available. In that case, you might want to purchase dedicated slotsand assign pipeline jobs to them. We recommend creating an additionaldedicated reservation with idle slot sharing disabled.
When load jobs are assigned to a reservation, they lose access to the freepool. Monitor performance to make sure the jobs have enough capacity.Otherwise, performance could actually be worse than using the free pool.
BACKGROUND: Use this reservation when you choose touse your ownreservation to runyourBigQuery search indexmanagement jobs orBigQuery change data capture (CDC) ingestionbackground jobs. Also use this reservation when you replicatesource databases to BigQuery withDatastream's background apply operations.BACKGROUNDreservations are not available in the Standard edition.ML_EXTERNAL: Use this reservation for BigQuery ML queriesthat use services that are external to BigQuery. For more information, seeAssign slots to BigQuery ML workloads.ML_EXTERNALreservations are not available in the Standard edition.
You can't allocate slots to specific assignments. The BigQueryscheduler handles slot allocation for the assignments in a reservation.
Commitments
Acapacity commitment is a purchase of a fixed amount of BigQuerycompute capacity for some minimum duration of time. Capacity commitments areoptional for reservations created with anedition, but can save on costs for steady-stateworkloads.
BigQuery offers several commitment plans to choose from. Theydiffer mainly by cost and the minimum duration of your commitment. For currentpricing information, seecapacity commitment pricing.
Annual commitment. You purchase a 365-day commitment. You can choosewhether to renew or convert to a different type of commitment planafter 365 days.
Monthly commitment. You purchase a minimum 30-day commitment. After 30days, you can delete the plan at any time.
Flex slots. You purchase a 60-second commitment. You can delete it at any timeafter 60 seconds. Flex slots are a good way to test how your workloads performwith flat-rate billing, before purchasing a longer-term commitment. They arealso useful for handling cyclical or seasonal demand, or for high-load eventssuch as tax season.
Whichever plan you select, your slots don't expire at the end of the commitmentperiod. You keep the slots and are billed for them until you delete them. Youcan also change the plan type after the minimum duration.
Slots are subject to capacity availability. When you attempt to purchase slotcommitments, success of this purchase is not guaranteed. However, once yourcommitment purchase is successful, your capacity is guaranteed until you deletethe commitment.
For more details about these plans, seeCommitment plans.
Slot allocation within reservations
BigQuery allocates slot capacity within a single reservationusing an algorithm calledfair scheduling.
The BigQuery scheduler enforces the equal sharing of slots amongprojects with running queries within a reservation, and then within jobs of agiven project. The scheduler provides eventual fairness. There might be shortperiods where some jobs get a disproportionate share of slots, but the schedulereventually corrects this. The goal of the scheduler is to find a mediumbetween being too aggressive with evicting running tasks (which results inwasting slot time) and being too lenient (which results in jobs with longrunning tasks getting a disproportionate share of the slot time).
If an important job consistently needs more slots than it receives from thescheduler, consider creating an additional reservation with a guaranteed numberof slots and assigning the job to that reservation. For more information, seeWorkload management.
Idle slots
At any given time, some slots might be idle. This can include:
- Slot commitments that are not allocated to any reservation.
- Slots that are allocated to a reservation baseline but aren't currently in use.
By default, queries running in a reservation automatically use idle slots fromother reservations within the same administration project.That means a job can always run as long as there's capacity.Idle capacity is immediately preemptible back to the original assignedreservation as needed, regardless of the priority of the query that needs theresources. This happens automatically in real time.
To disable this functionality and force a reservation to use only the slotsprovisioned to it, setignore_idle_slots totrue. Reservations withignore_idle_slots set totrue receive no idle slots.
You cannot share idle slots between reservations of differenteditions. You can share only the baselineslots or committed slots.Autoscaled slotsmight be temporarily available, but are not shareable as they may scale down.
As long asignore_idle_slots is false, a reservation can have a slot count of0 and still have access to unused slots. If you are only using thedefaultreservation, we recommend setting it up this way. You may thenassign a project or folderto that reservation and it will only use idle slots.
Assignments of typeML_EXTERNAL are an exception to the behavior describedearlier. Slots used by BigQuery ML external model creation jobs are not preemptible;that is, the slots in a reservation with both ml_external and query assignmenttypes are only available for other query jobs when the slots are not occupied by theML_EXTERNAL jobs.Also, these jobs don't use idle slots from other reservations.
Limitations
- Reservations that you buy cannot be shared with other organizations.
- You must create a separate reservation and a separate administrationproject for each organization.
- Each organization can have a maximum of 10 administration projects withactive commitments in a single location.
- Idle capacity cannot be shared between organizations or between differentadministration projects within a single organization.
- Commitments are a regional resource. Commitments purchased in one region ormulti-region cannot be used in any other regions or multi-regions.Commitments cannot be moved between regions or between regions andmulti-regions.
- Commitments purchased in one administration project cannot be moved to adifferent administration project.
- Commitments purchased with oneeditioncannot be used with reservations of another edition.
- Idle slots are not shared between reservations of differenteditions.
- Autoscaled slotsare not shareable as they will scale down when no longer required.
Quotas
Your slot quota is the maximum number of slots you canpurchase in a location. You are not billed for quotas; you areonly billed for reservations and commitments. For moreinformation, seereservations quotas and limits.For information about increasing your slot quota, seeRequesting a quota increase.
Pricing
For information about pricing for reservations, seeFlat-rate pricing.
What's next
To get started with BigQuery reservations, seeGet started with reservations
For information about on-demand billing for reservations, seeCombine reservations with on-demand billing.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-18 UTC.