Deployment Types & PTU Guide¶
Every Foundry deployment answers two questions: where is inference processed, and how do you pay? Pick a cell to see which models and regions offer it.
Choose a deployment type¶
Start with Global Standard. Move to Data Zone or Regional when data-residency rules require it, and to PTU when traffic is steady and latency matters.
Provisioned throughput (PTU)¶
A PTU (provisioned throughput unit) is a slice of model capacity reserved only for you. You pay for it by the hour whether or not you send traffic. In return you get predictable latency, and when you hit 100% the service answers 429 immediately instead of slowing down.
1 · Is PTU right for you?¶
Choose PTU when…
- Traffic is steady and predictable
- You need consistent, low latency (real-time, interactive)
- Volume is production-scale and per-token bills are climbing
Stay on Standard when…
- You're developing or testing
- Usage is low or highly variable
- You can't yet predict peak load well enough to size it
2 · Pick a provisioned deployment type¶
Global Provisioned
GlobalProvisionedManaged
- Data processing
- Routed across Azure regions worldwide
- Best for
- Highest availability and the most capacity
- Typical size
- 15 PTU min · +5
Data Zone Provisioned
DataZoneProvisionedManaged
- Data processing
- Stays inside a data zone (US or EU)
- Best for
- Zone-level data residency with better availability than regional
- Typical size
- 15 PTU min · +5
Regional Provisioned
ProvisionedManaged
- Data processing
- Stays in the region you deploy to
- Best for
- Strict single-region data residency
- Typical size
- 25–50 PTU min · +25/50
Reservations are bought per deployment type and are not interchangeable — decide this before you buy.
3 · Size it¶
- Measure your peak. Peak requests per minute, average prompt tokens, average response tokens and expected cache-hit rate.
- Run the Foundry capacity calculator. In the Foundry portal open Quota → Provisioned throughput, or go straight to the capacity calculator. It rounds to the model's minimum and scale increment.
- Benchmark it. Deploy the estimate and replay your traffic shape for 10+ minutes with the Azure OpenAI benchmark tool, then with your real client.
- Adjust. Watch utilization and 429 rates in Azure Monitor and resize.
Is it cheaper? The cost planner compares pay-as-you-go with hourly and reserved PTU at your volume and shows the break-even point.
Quick estimate
Same formula as Microsoft's sizing guide. Always confirm in the Foundry capacity calculator.
The formula and per-model numbers
- Input TPM = peak RPM × prompt tokens
- Output TPM = peak RPM × response tokens
- Normalized TPM = Input TPM × (1 − cache rate) + output-to-input ratio × Output TPM
- PTUs = Normalized TPM ÷ input TPM per PTU, rounded up to the minimum / increment
Worked example from Microsoft (gpt-5.2, Data Zone): 1,000 RPM × 200 prompt + 20 response tokens → 360,000 normalized TPM → 105.9 → 110 PTUs. With a 50% cache rate → 80 PTUs.
| Model | Global / Data Zone min (step) | Regional min (step) | Input TPM per PTU | Output : input ratio |
|---|---|---|---|---|
gpt-5.6-luna |
15 (+5) | 50 (+50) | 30,000 | 6 |
gpt-5.6-terra |
15 (+5) | 50 (+50) | 3,000 | 6 |
gpt-5.6-sol |
15 (+5) | 50 (+50) | 1,200 | 6 |
gpt-5.5 |
15 (+5) | 50 (+50) | 1,200 | 6 |
gpt-5.4 |
15 (+5) | 50 (+50) | 2,400 | 6 |
gpt-5.4-mini |
15 (+5) | 25 (+25) | 7,900 | 6 |
gpt-5.3-codex |
15 (+5) | 50 (+50) | 3,400 | 8 |
gpt-5.2 |
15 (+5) | 50 (+50) | 3,400 | 8 |
gpt-5.2-codex |
15 (+5) | 50 (+50) | 3,400 | 8 |
gpt-5.1 |
15 (+5) | 50 (+50) | 4,750 | 8 |
gpt-5.1-codex |
15 (+5) | 50 (+50) | 4,750 | 8 |
gpt-5 |
15 (+5) | 50 (+50) | 4,750 | 8 |
gpt-5-mini |
15 (+5) | 50 (+50) | 4,750 | 8 |
gpt-4.1 |
15 (+5) | 25 (+25) | 23,750 | 4 |
gpt-4.1-mini |
15 (+5) | 50 (+50) | 3,000 | 4 |
gpt-4.1-nano |
15 (+5) | 25 (+25) | 14,900 | 4 |
o3 |
15 (+5) | 50 (+50) | 3,000 | 4 |
o4-mini |
15 (+5) | 25 (+25) | 5,400 | 4 |
GPT-6 family and image models use normalized token accounting — use the capacity calculator for those. Source: PTU sizing.
4 · Get capacity, then reserve¶
- 1Check quotaFoundry → Manage → Quota → Provisioned throughput unit. Request more if needed.
- 2DeployCreating the deployment is what actually claims capacity. The portal suggests other regions if yours is full.
- 3ReserveOnly now buy a matching Azure Reservation (1 month or 1 year) to get the discounted rate.
- 4Go liveSame API as Standard — call it with the deployment name.
Reservations don't guarantee capacity
Quota is just a limit, and a reservation is just a discount. Capacity is only held once a deployment exists. Deploy first, then buy the reservation — matching deployment type, region (Data Zone and Regional) and scope.
| Hourly (no commitment) | Azure Reservation | |
|---|---|---|
| Price | Full $/PTU/hour, prorated to the minute | Discounted $/PTU/hour |
| Term | None — stops only when you delete the deployment | 1 month or 1 year |
| Good for | Benchmarks, short events | Steady production |
| Watch out | Can't be paused; scaling down and back up risks losing capacity | Bought per deployment type; extra PTUs above the reservation bill hourly |
5 · Run it in production¶
Monitor
Azure Monitor metric Provisioned-managed utilization V2 on the Foundry resource. Requests are rejected at 100%.
Handle 429s
A 429 is a traffic signal, not an outage. Retry using the retry-after-ms header — SDK retries do this for you.
Spill over
Send overflow to a Standard deployment in the same resource automatically with spillover (not yet for DeepSeek or Llama).
Plan retirements
Provisioned deployments are never auto-upgraded. Watch the retirement dates and migrate yourself.
Cleaning up
Delete the deployment before deleting the resource — billing continues until the resource is purged. Cancel or exchange the reservation separately.
Summarised from Microsoft Learn: What is provisioned throughput · PTU sizing · Billing & reservations · Operate in production. Retrieved Oct 2026 — check the source pages for the latest numbers.