Provisioned Throughput Pricing: Monthly Terms Need 99% Utilization

Azure and Google now meter reserved model capacity at pay-as-you-go token weights, so a monthly term needs about 99% utilization to save money. Annual terms break even at 84% on Azure and 75% on Google; Bedrock publishes too little to compute.

By Rajesh Beri·October 22, 2026·15 min read
Share:
A half-lit server rack in a dark data hall at night, only a few rows of green status lights glowing while the rest sit dark, an empty office chair pushed back beside it.

Illustration generated using AI

If production got throttled and you are about to reserve model capacity, size it to your 3 a.m. traffic, buy the annual term or nothing, and send the rest to pay-as-you-go. Azure and Google now meter reserved capacity at the same token weights they use for pay-as-you-go, so the break-even is a single number: the utilization at which the reservation's monthly price equals what the same tokens would cost on demand. On today's published rates, a monthly reservation needs roughly 99% utilization on Azure and more than 100% on Google. An annual term pays from 84% on Azure and 75% on Google. Bedrock publishes neither the throughput of a model unit nor its Claude price, so you cannot run that math on AWS without an account-team quote.

All prices below were checked on each vendor's live pricing page or price API on October 22, 2026, in USD, for US or global endpoints.

Azure OpenAI PTU Vertex AI GSU Amazon Bedrock Provisioned Throughput
Unit Provisioned throughput unit, model-independent pool Generative AI Scale Unit, tied to one model and region Model unit, tied to one base model
Terms Hourly, 1-month or 1-year reservation 1 week, 1, 3 or 12 months None, 1 month or 6 months (model units); 1 or 3 months (Reserved tier)
Published price $1.00/PTU/hr; $260/PTU/month; $2,652/PTU/year (Global) $7.14 to $2.74 per GSU-hour by term (global) Legacy models only; Claude is "contact your account team"
Throughput per unit published Yes, per model Yes, per model No
Break-even, shortest commitment 99% (1-month) 101% (1-month); 196% (1-week) Not computable from public data
Break-even, longest commitment 84% (1-year) 75% (1-year) Not computable from public data
Commitment follows a new model Yes, any supported model With notice, same publisher only No, for base models
Verdict Best default for Azure OpenAI shops Cheapest break-even, narrowest lock Loser: model units for base models

What Is the Break-Even Formula for Provisioned Throughput?

Break-even utilization is the reservation's monthly cost divided by the pay-as-you-go cost of the tokens one unit can process in a month at 100% load. Below that share of the unit's capacity, you are paying for idle capacity; above it, the reservation saves money.

Written out: break-even utilization = (unit price per month) ÷ (unit capacity in normalized tokens per month × pay-as-you-go price per normalized token). A normalized token is a provider's common currency for capacity: one uncached input token counts as 1, and output and cached tokens count at a weight set by the provider.

The reason the formula collapses to one number is that both Azure and Google now set those weights equal to their own price ratios. Microsoft's PTU sizing guide says that for GPT-4.1 and later the output-to-input ratio is set "to match the global standard price ratio", and for GPT-6 Astra, GPT-6 Sol and GPT-6.1 Sol it weights input, cached input, cache writes and output (short and long context) by price. Google's Provisioned Throughput calculator burns Gemini 3.6 Flash output at 5 tokens and cached input at 0.1, the same ratios as its $1.50 / $7.50 / $0.15 list prices on Google's Gemini pricing page. When capacity weights equal price weights, your token mix changes how many tokens you push through a unit, and it no longer changes whether the unit pays.

Azure, worked for GPT-6 Sol on Global Provisioned

One PTU of GPT-6 Sol supplies 3,000 normalized tokens per minute, per Microsoft's sizing table. Over a 730-hour month that is 3,000 × 60 × 730 = 131.4M normalized tokens. At the Global Standard input price of $2.00 per million, that capacity is worth $262.80 a month on pay-as-you-go.

The Azure retail price API lists the Global reservation at $260 per PTU for one month and $2,652 for one year ($221 a month) in East US. The hourly meter is $1.00 per PTU-hour Global, $1.10 Data Zone and $2.00 Regional.

  • Hourly: $730 ÷ $262.80 = 278%. Hourly PTUs never beat pay-as-you-go on price.
  • 1-month reservation: $260 ÷ $262.80 = 98.9%.
  • 1-year reservation: $221 ÷ $262.80 = 84.1%.

Microsoft says much the same in its own worked example: at full utilization "PTU and pay-as-you-go costs are approximately equal", and "lower utilization increases the effective PTU cost per token."

Google, worked for Gemini 3.6 Flash on the global endpoint

One GSU of Gemini 3.6 Flash delivers 675 normalized tokens per second, per Google's calculator page (updated October 21, 2026). Over 730 hours that is 1,773.9M normalized tokens, worth $2,660.85 a month at the $1.50 list input price that applies from January 1, 2027.

Google's Agent Platform pricing page lists global GSU rates of $7.14 per hour on a 1-week term, $3.70 on 1 month, $3.29 on 3 months and $2.74 on 1 year. Multiplied by 730 hours:

  • 1 week: $5,212 ÷ $2,660.85 = 196%.
  • 1 month: $2,700 ÷ $2,660.85 = 101.5%.
  • 3 months: $2,400 ÷ $2,660.85 = 90.2%.
  • 1 year: $2,000 ÷ $2,660.85 = 75.2%.

Non-global endpoints cost about 10% more per GSU ($3.01 an hour on a 1-year term). The consumption options page confirms the 1-year term is priced 26% below 1-month.

Watch the calendar on Gemini. Gemini 3.6 Flash pay-as-you-go is $0.75 input / $3.75 output through December 31, 2026, then doubles. Google's pricing page also lists a 50% billing credit on Gemini 3.6, 3.7 and 3.8 Flash Provisioned Throughput through the same date. If the credit applies to your order, the ratio holds through the switch. If it does not, a GSU bought today runs at 150% break-even until New Year. Get the credit in writing before you sign.

Bedrock: the formula needs a number AWS won't publish

AWS's Provisioned Throughput guide defines a model unit as a fixed number of input and output tokens per minute, then says that for "what an MU specifies, pricing per MU" you should contact your account manager. The Bedrock pricing page lists model-unit prices only for older models (Cohere Command is $49.50 per hour with no commitment, $39.60 on 1 month and $23.77 on 6 months) and says of Anthropic: "For Provisioned Throughput pricing, please reach out to your account team." Without tokens per model unit you have a numerator and no denominator.


Why Does Throughput per Unit Move With Your Prompts?

A unit's real capacity in requests depends on how your requests spend normalized tokens: output costs several input tokens' worth, long prompts can carry a higher weight, and caching can make input almost free. The price per unit stays fixed while the number of requests it serves moves with your traffic shape.

  1. Output-to-input ratio. On GPT-6 Sol one output token counts as 5 input tokens; on gpt-5 and gpt-5.2 it counts as 8, and on gpt-4.1 as 4, per Microsoft's table. A chat assistant writing 400-token answers burns capacity mostly on output.
  2. Prompt length. GPT-6 family long-context requests weigh 2x on input and 1.5x on output relative to short context. On gpt-5.4 and the gpt-4.1 series, PTU deployments reject prompts over 128K tokens outright and send them to spillover, if you have it.
  3. Caching, which can move the break-even itself. On gpt-5.x and earlier Azure models, cached input tokens are "deducted 100%" and consume no PTU capacity, while pay-as-you-go still bills them. So on those models a high cache rate makes a PTU worth more than the formula above says. On GPT-6 and later, cached tokens burn capacity at their price weight (0.1, or 0.05 on GPT-6.1 Sol), and that edge is gone. On Google, cached tokens burn at 0.1. On Bedrock's Reserved tier, AWS's service-tier docs say input TPM counts both InputTokenCount and CacheWriteInputTokens, so a cache-heavy prompt needs more reserved input capacity than its billed tokens suggest.

If you run an older Azure model with a long cached system prompt, re-run the break-even with the cache deduction, since it may already pay at a lower utilization. Don't assume the advantage carries to the GPT-6 deployment you migrate to next.


How Should You Size a Reservation: Baseline or Peak?

Size it to the floor of your traffic over the last 60 to 90 days, and let everything above that floor spill to pay-as-you-go. A unit sized to peak sits partly idle every night, and with the break-evens above it cannot recover that cost.

To make the comparison like for like, take one workload on both clouds. A support assistant sends a 3,000-token prompt (half of it a cached system and policy block) and gets a 400-token answer. Traffic bottoms out at 300 requests per minute overnight, averages 500 and peaks at 1,200 in business hours. Each request is 1,500 + (1,500 × 0.1) + (400 × 5) = 3,650 normalized tokens on both GPT-6 Sol and Gemini 3.6 Flash, since their weights match.

Strategy, per month Azure GPT-6 Sol, Global, 1-year Vertex Gemini 3.6 Flash, global, 1-year
All pay-as-you-go (500 RPM average) $159,870 $119,903
Reserve to peak (1,200 RPM) 1,460 PTUs = $322,660 109 GSUs = $218,000
Reserve to floor (300 RPM), spill the rest 365 PTUs $80,665 + spill $63,948 = $144,613 28 GSUs $56,000 + spill $47,961 = $103,961
Saving vs all pay-as-you-go 9.5% 13.3%

Pay-as-you-go cost per request is $0.0073 on GPT-6 Sol and $0.005475 on Gemini 3.6 Flash at the 2027 list rate. The table assumes the average holds across all 730 hours. Real traffic is lumpier, which makes the peak-sized row worse.

Reserving to peak costs 1.8 to 2 times as much as never reserving at all. Reserving to the floor saves 10% to 13%, roughly $15,000 to $16,000 a month at this volume. The independent DoiT guide to Bedrock costs puts Bedrock's crossover at "around 60-70% sustained utilization of a model unit" and calls low-utilization provisioned throughput "the single most expensive mistake on Bedrock", describing a media company that ran a load-test reservation at 15% utilization for three months before anyone noticed.

The spillover routing this requires

Floor sizing only works if overflow is routed automatically, and each cloud does that differently:

  • Azure: set spilloverDeploymentName on the PTU deployment or send x-ms-spillover-deployment per request. You need a standard deployment of the same model and version in the same Foundry resource. Spilled requests return an x-ms-spillover-from-deployment header and bill at standard token rates. Microsoft recommends spillover on "all global and data zone provisioned deployments." Its GenAI gateway playbook describes the same pattern for teams routing through API Management: use the PTUs first, then pay-as-you-go.
  • Google: spillover is the default. Google's usage guide says a request over quota "is processed as an on-demand request by default." Set X-Vertex-AI-LLM-Request-Type: dedicated to get a 429 instead, or shared to bypass the reservation.
  • Bedrock: the Reserved tier overflows to Standard automatically. Model-unit Provisioned Throughput is invoked through its own provisioned model ARN, so routing overflow to on-demand is your gateway's job. LiteLLM or Kong AI Gateway can do the fallback.

Is Latency or Guaranteed Capacity Worth the Commitment Alone?

Sometimes, but a pay-per-token priority tier usually buys the latency for less, and Azure states outright that a reservation does not guarantee capacity.

  • Azure publishes a latency target per model for PTUs (GPT-6 Sol: 99% of requests above 80 tokens per second). Microsoft also sells priority processing on pay-per-token with its own latency target, per the provisioned throughput overview. And the same page warns that "reservations don't guarantee capacity": you must create the deployment first, and scaling down releases capacity you may not get back.
  • Google ties a Provisioned Throughput order to one project, region, model and version.
  • Bedrock's Reserved tier targets 99.5% uptime for model response, with minimums of 100,000 input and 10,000 output tokens per minute. Bedrock also has a Priority tier for request-level prioritization without a reservation.

If your throttling incident was a regional shortage on a launch day, a reservation is insurance and may be worth paying above break-even for. If it was a quota ceiling, raise the quota first. If it was slow responses, check output length before you buy anything. A Microsoft Tech Community investigation of timeouts on GPT-4o-mini traced the delays to long generations, and the fix was capping max tokens and streaming.


Can the Reservation Move to the Next Model Mid-Term?

On Azure, yes; on Google, with notice and within one publisher; on Bedrock model units for base models, no. This clause matters more than the discount, because a 1-year term will outlive the model you size it for.

  • Azure reservations are "model-independent" and apply to any supported model in scope, per the PTU billing guide. The PTU count you need will change with the new model's TPM per PTU (GPT-6 Astra delivers 600 per PTU against GPT-6 Sol's 3,000), but the commitment itself carries over. Exchanges reset the term and cancellation may carry an early termination fee.
  • On Google you can change "model, model version, or region with notice", Google models to Google models only, typically within 10 business days, per the purchase guide. Term fees "are not cancelable" and apply even if the model is discontinued. A GSU of a different model delivers a different throughput, so check the new rate before you switch.
  • On Bedrock, "You can't change the model for a Provisioned Throughput associated with a base model", per the modification guide. Custom models can move only to the base they were tuned from or a sibling. With a 6-month lock, a model retired in month three leaves you paying for capacity nothing calls. Check our model deprecation comparison for each vendor's notice windows before you sign.

Who Should Not Buy Each Option

Skip Azure PTUs if your floor is under the 15-PTU Global minimum (45,000 normalized TPM on GPT-6 Sol, or $3,315 a month on an annual term). Never run hourly PTUs in production for savings; Microsoft's own billing guide says not to. Skip the 1-month reservation unless you are buying latency, because at 98.9% break-even it only adds risk. And if you need Data Zone or Regional deployments ($286 a month or $2,916 a year per PTU in East US), redo the break-even against the Data Zone pay-as-you-go rate rather than Global.

On Vertex, skip the 1-week and 1-month terms for cost; they cost more than pay-as-you-go at any utilization. Skip GSUs entirely if you might move to a non-Google model on Vertex during the term, since changes are publisher-locked. Skip them too if you cannot tolerate a 10-business-day wait to move a reservation to a new model version.

Bedrock model units are the weakest option here. Don't buy them for a base model unless the account team gives you tokens per minute per model unit in writing and you can run the formula. If you are on Claude, ask for the Reserved tier instead: shorter terms, automatic overflow, and capacity sized in tokens per minute. The exception is custom models, where AWS requires Provisioned Throughput to serve them at all.


What to Do Before You Sign

This Week:

  1. Pull 90 days of per-minute token metrics, split into uncached input, cached input and output. Take the 5th-percentile hour as your floor.
  2. Convert the floor to normalized tokens with your model's weights and divide by the per-unit throughput. That is your reservation size.
  3. Turn on spillover (Azure) or confirm default spillover (Google), and confirm your gateway sends overflow on Bedrock.

This Month:

  1. Run the break-even with today's pricing and write down the date. For Gemini, run it at both the 2026 and 2027 list rates and confirm whether the 50% Provisioned Throughput credit applies.
  2. On Azure, deploy first and confirm capacity, then buy the reservation, as Microsoft advises.
  3. Ask AWS for model-unit throughput and Reserved tier pricing in writing. If they won't give you both, stay on demand.

Before the Term Starts:

  1. Get the model-change clause in writing and map it against the vendor's deprecation schedule for your model.
  2. Set a weekly utilization alert. DoiT's rule (below 50% sustained, go back to on-demand) is a reasonable trigger.

The Bottom Line

Reserved model capacity now behaves like reserved compute: the discount applies only to traffic that runs around the clock. Azure's model-independent annual reservation is the safest buy because the commitment survives a model change. Google's annual GSU breaks even soonest at 75% but locks you to one publisher. Bedrock model units ask you to commit for six months without telling you what a unit holds. Our GPU reserved vs spot break-even reached the same answer for raw accelerators: commit to the floor, rent the peak.

Size the reservation to the 3 a.m. number and buy the annual term.

Continue Reading

Share:

Frequently Asked Questions

When does Azure OpenAI provisioned throughput become cheaper than pay-as-you-go?

On GPT-6 Sol Global Provisioned, a 1-year reservation ($2,652 per PTU, or $221 a month) breaks even at about 84% utilization against the $2.00 per million input Global Standard rate. A 1-month reservation ($260) needs about 99%, and hourly PTUs ($1.00 per PTU-hour) never break even on price. Prices checked October 22, 2026.

How do I calculate the break-even for a provisioned throughput reservation?

Divide the reservation's monthly price by the pay-as-you-go cost of one unit's full monthly capacity. Capacity is the unit's normalized tokens per minute times 60 times 730 hours; multiply by the pay-as-you-go price per normalized token. The result is the utilization the unit must sustain to save money.

Should I size provisioned throughput to peak or baseline traffic?

Baseline. Reserve the floor of the last 60 to 90 days of traffic and spill bursts to pay-as-you-go. In a worked example with a 300 to 1,200 requests-per-minute workload, sizing to peak cost 1.8 to 2 times more than never reserving, while sizing to the floor saved 10% to 13%.

Can a provisioned throughput commitment move to a new model version?

Azure reservations are model-independent and cover any supported model in scope. Google lets you change model, version or region with notice, within Google models only, typically within 10 business days. Bedrock Provisioned Throughput bought for a base model cannot change model at all.

How much does Bedrock Provisioned Throughput cost for Claude?

AWS does not publish it. The Bedrock pricing page tells Anthropic customers to contact their account team, and AWS also does not publish how many tokens per minute a model unit delivers. The newer Reserved tier for Claude is priced per 1,000 tokens per minute on 1- or 3-month terms, also through the account team.

Newsletter

More on AI ROI & Cost, every Sunday

The week's enterprise AI news, AI ROI & Cost included, in one Sunday email.

Weekly, free. Unsubscribe any time. Privacy

Latest Articles

View All →