Per-PTU throughput spans 25x across three models in the same GPT-5.6 family
Microsoft Foundry's sizing constants turn provisioned throughput into a division problem you can finish before you buy anything, which matters because the quota you commit does not travel across regions or deployment types.
The Engineer · Build desk

What happened
- Microsoft Foundry's sizing table lists Input TPM per PTU of 30,000 for GPT-5.6 Luna, 3,000 for GPT-5.6 Terra and 1,200 for GPT-5.6 Sol, a model-specific constant rather than a measurement of your traffic.
- Prompt caching works on provisioned deployments and cached input tokens consume no PTU capacity, which takes the walkthrough's 1,000 RPM example from 80 PTUs down to 60.
- Deployments must clear a 15-PTU minimum and land on 5-PTU increments, so a calculated 62.4 PTUs is rounded up to 65 before anything can be deployed.
- The pay-as-you-go comparison case is costed at $635.04 per day, $19,051.20 over a 30-day month and $231,789.60 over a 365-day year, all extrapolated from one repeating daily profile.
Why it matters
- decision Throughput per PTU is model- and version-specific while the quota pool is not, so pinning a new version silently invalidates an earlier capacity estimate and the sizing sum has to be run again before the deployment is updated.
- exposure A commitment placed in the wrong region or deployment type cannot be redirected, which leaves whoever signed it holding idle capacity in one geography while requests arrive in another.
- cost The 15-PTU floor sets a minimum bill for anyone whose arithmetic lands below it, so the smallest provisioned deployments pay for headroom their own sizing sum says they will not use.
- constraint The rate tables that would decide PayGo against PTU were pulled on a single date and are absent from the text supplied, so reproducing the comparison means fetching current rates from the pricing page and the Retail Prices API yourself.
Start with the division. A 1,000 RPM peak at 1,200 tokens per prompt is 1,200,000 input tokens per minute [6]. Luna's listed constant is 30,000 input TPM per PTU, so the input side of that workload is 40 PTUs [5][20]. Run the identical workload against Terra and it is 400 PTUs; against Sol, 1,000 [20]. Only the divisor moved, and the divisor is a property of the model version pinned in the deployment [3].
The dev.to walkthrough's own answer for that example is 80 PTUs before caching [1]. Input accounts for half of it [21]. The other 40 has to come from the output-side constants in Foundry's sizing table, and that table did not survive into the text supplied to me [21]. The caching delta is a decent check on the reading: cached input tokens consume no PTU capacity, and the drop from 80 to 60 is 20 PTUs, exactly half the input-side 40 [1][18]. Half the input tokens served from cache produces that number.
Then the rounding grammar. Estimates below the 15-PTU minimum go up to 15, and everything else lands on a 5-PTU increment, which is why 62.4 becomes 65, a 4.2 percent overshoot on the computed figure [8][22].
The PayGo case is checkable too. Six four-hour blocks summing to 7,000 RPM give 1,680,000 requests a day at 240 minutes per block, 2.016B input tokens a day, 60.48B over 30 days [9][23]. That reconciles with the published split of 24.192B regular input, 30.24B cached and 6.048B written, and output lands at 10.08B [11][23]. Against $19,051.20 for the month, the blend is $0.27 per million tokens across all 70.56B [12][24]. That looks cheap until you price the peak: 2,500 RPM against a 1,166 RPM daily mean, a factor of 2.14 [9][25]. Provisioned capacity is sized to the peak while PayGo is billed on the mean, and that gap is the spillover argument, one the rates could settle if they had reached me: the figures were pulled on 27 August 2026 from the Azure OpenAI pricing page and the Retail Prices API [13], and neither source reached the text I have.
One unit mismatch is worth catching before anyone signs. The hourly PTU monthly equivalent assumes 720 hours [14], while the PayGo annual figure assumes 365 days [12]. Those are not the same year. The annual total is 12.1667 of those 30-day months, and twelve 720-hour months is 8,640 hours against the 8,760 in a 365-day year, so multiplying a monthly PTU equivalent by twelve drops 120 hours, about 1.4 percent [26].
For any of this to transfer, your workload has to look like the example: an average prompt near 1,200 tokens whose first 1,024 tokens are identical across requests, which is what a cache hit requires [7]; roughly half your input tokens actually reading from cache [10]; and your region and deployment type matching the ones priced. The last condition is the one you cannot fix afterwards, because quota is granted per subscription, region and deployment type, and East US quota stays East US quota; it will not convert into West Europe quota [4]. The quota pool applies the same way no matter which model you point it at [3].
What to watch
- Whether the Sweden Central PTU rates and Global Standard token rates pulled on 27 August 2026 still hold, since the whole crossover rests on them.
- Whether Foundry's published output-token sizing constants for Luna reproduce the 80-PTU figure from the input side plus output side.
- The spillover mechanics named in the article's own title, which are absent from the text supplied here.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence47
- Adoption
- Insufficient
- Hype gap+12
- Incentives24
- Confidence55
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Prompt caching is available for Provisioned Throughput deployments and cached input tokens do not consume PTU capacity; in the example, caching reduces the calculated requirement from 80 PTUs to 60 PTUs, a reduction of 20 PTUs or 25 percent.
- [2]
Provisioned Throughput provides a dedicated, fixed amount of processing capacity exclusively for a model deployment; unlike Standard/PayGo it provides a model-specific latency SLA and its capacity is not shared across tenants.
- [3]
PTU quota is model-independent, so the same quota pool can be allocated across supported models, while throughput per PTU remains model- and version-specific.
- [4]
PTU quota is granted per subscription, region and deployment type: quota in East US does not carry over to West Europe, and Global Provisioned quota does not carry over to Data Zone Provisioned.
- [5]
Input TPM per PTU is a model-specific sizing constant, distinct from workload-calculated Input TPM; listed values include 30,000 for GPT-5.6 Luna, 3,000 for GPT-5.6 Terra and 1,200 for GPT-5.6 Sol.
- [6]
The worked provisioned example assumes a peak rate of 1,000 RPM, an average prompt of 1,200 tokens and an average response of 200 tokens, on gpt-5.6-luna with a Global Provisioned deployment.
- [7]
The 1,200-token representative prompt exceeds the 1,024-token minimum for prompt caching, and a cache hit also requires at least the first 1,024 tokens to be identical across requests.
- [8]
Provisioned deployments carry a 15-PTU minimum and a 5-PTU scale increment; rounding is required if an estimate falls below the minimum or between increments, so 62.4 PTUs would be rounded up to 65 PTUs.
- [9]
The pay-as-you-go example assumes traffic fluctuating between 0 and 2,500 RPM over 24 hours in six four-hour blocks (0, 500, 1,000, 2,500, 2,000 and 1,000 RPM), with 1,200-token average input and 200-token average output on a Global Standard deployment, and the daily profile repeating for 30 days.
- [10]
The pay-as-you-go example assumes 50 percent of input tokens are cache reads, 10 percentage points are cache writes and the remaining 40 percentage points are regular input; prompt caching applies only to input tokens, and output tokens are always charged at the regular output rate.
- [11]
The example's 30-day token totals are 24.19200B regular input, 30.24000B cached input, 6.04800B cache writes and 10.08000B output.
- [12]
The estimated pay-as-you-go cost is $635.04 per day, $19,051.20 per 30-day month and $231,789.60 per 365-day year.
- [13]
Standard/PayGo rates for gpt-5.6-luna Global Standard were taken from the Azure OpenAI pricing page as of 27 August 2026, and Sweden Central PTU rates were retrieved on 27 August 2026 using the Azure Retail Prices API.
- [14]
The hourly PTU monthly equivalent in the article assumes 720 hours, described as 30 days.
- [15]
The article carries a warning that hourly, non-reserved PTU is best suited to temporary use; the sentence is cut off in the supplied text.
- [16]
The article states that the same methodology applies to other models once their model-specific throughput and pricing values are substituted.
- [17]
The article positions PTU as a good fit for predictable, sustained traffic with consistent latency and high-throughput requirements.
- [18]
The 20-PTU caching saving equals half of the 40 input-side PTUs, consistent with half of input tokens being served as cache reads.
- [19]
Per-PTU input throughput spans a factor of 25 between the highest and lowest listed GPT-5.6 constants.
- [20]
The example workload's input side is 1,200,000 input TPM, which is 40 PTUs on Luna, 400 PTUs on Terra and 1,000 PTUs on Sol.
- [21]
Input accounts for 40 of the 80 PTUs in the article's pre-caching figure, leaving 40 PTUs attributable to output-side constants that do not appear in the supplied text.
- [22]
Rounding 62.4 PTUs up to 65 buys 4.2 percent more capacity than the calculation asked for.
- [23]
The traffic profile implies 1,680,000 requests per day and 2.016B input tokens per day, or 60.48B input tokens over 30 days, which matches the published regular, cached and cache-write totals; output of 10.08B also reconciles.
- [24]
The pay-as-you-go month covers 70.56B tokens in total, a blended $0.27 per million tokens.
- [25]
The example's peak of 2,500 RPM is 2.14 times its 1,166.7 RPM daily mean.
- [26]
The 365-day PayGo year is 12.1667 of the article's 30-day months, so annualising a 720-hour monthly PTU equivalent by twelve covers 8,640 hours against 8,760 in the year, a shortfall of 120 hours or about 1.4 percent.
Get this ledger inside ChatGPT. Ask about any of our stories and the answer brings its figure, each claim’s verdict and the sources. Free, no account.
Sources
1 independent publisher whose own reporting we read for this story.
- dev.toGPT-5.6 Luna on Foundry: PTU Sizing, PayGo vs. PTU + Spillover Pricing
1 article · August 30, 2026
Topics and entities
Follow any of these and your For You feed starts watching them — no settings page required.
Topics
- Inference Cost ModelingFollow
- Prompt CachingFollow
- Azure AI OperationsFollow
- LLM Capacity PlanningFollow
Entities
- Microsoft FoundryFollow
- GPT-5.6 LunaFollow
- GPT-5.6 TerraFollow
- GPT-5.6 SolFollow
- Azure OpenAIFollow
- Azure Retail Prices APIFollow
- Provisioned Throughput Unit (PTU)Follow
- MicrosoftFollow