Skip to content

Cost & Capacity Planning

All prices are East US 2 retail pay-as-you-go, verified 2026-09-01 against the Azure Retail Prices API unless flagged. EA/CSP agreements differ. Capacity figures derive from live gateway validation (2026-09-01) plus Microsoft’s published rate limits.

The machinery — fixed monthly cost

The gateway + control plane costs roughly the same whether it serves 5 developers or 150 — model consumption is the variable cost, machinery is the fixed one.

Budget configuration (~$190–215/month)

ComponentSKUMonthly
API ManagementBasic v2, 1 unit ($0.21/hr, 10M calls incl.)$153.30
Azure SQLGP serverless, auto-pause (control plane is light)~$11–22
Container Apps (API)1 × 0.25 vCPU / 0.5 GiB, mostly idle~$4–14
FunctionsFlex Consumption (timers — under free grant)$0
Static Web AppsFree tier$0
Log Analyticstoken logs, no message bodies (~0.3 GB @ $2.76/GB)~$1
App Insights10% sampling~$1–5
Storage + Key Vault + ACR Basic~$6
Total≈ $190–215

Production configuration (~$660 with Basic v2 · ~$1,210 with Standard v2)

This row-for-row matches infra/parameters/prod.bicepparam — the production-grade knobs (zone redundancy, storage/ACR SKU, container size) are real parameters, not aspirations.

ComponentSKUMonthly
API ManagementStandard v2 ($0.96/hr, 50M calls incl.) — or keep Basic v2$700.80 / $153.30
Azure SQLGP_Gen5_2 provisioned, zone-redundant, Geo backups ($0.152/vCore-hr + $0.091/vCore-hr ZR)~$356
Container Apps1–3 replicas × 0.5 vCPU / 1.0 GiB (double the dev size)~$39–118
Static Web AppsStandard (SLA)$9
Log Analytics + App Insights~1M gateway requests/mo~$15–30
Functions + Key Vault + Storage (ZRS) + ACR Standard ($0.667/day vs Basic’s $0.167)~$25
Total≈ $660 (Basic v2) · ≈ $1,210 (Standard v2)

Zone redundancy is the single biggest line item after the gateway: it adds 60% to the SQL compute meter ($222 → $356) to survive the loss of one availability zone without a restore. The Container Apps range is one always-on replica ($39) to three sustained ($118) at $0.000024/vCPU-second and $0.000003/GiB-second, net of the monthly free grant; the top of the range only materialises under sustained load the admin plane is unlikely to see. The Container Apps environment is not zone-redundant yet — ARM only accepts that on a VNet-integrated environment, which arrives with private networking (#196); it costs nothing extra when it does.

Model prices (per 1M tokens)

ModelInputCached readOutput
claude-haiku-4-5$1.00 †$0.10 †$5.00 †
claude-sonnet-4-6$3.00 †$0.30 †$15.00 †
claude-opus (4.5/4.8)$5.00$0.50$25.00
gpt-4.1-mini$0.40$0.10$1.60
gpt-5-codex$1.25$0.125$10.00

† Claude models bill through a Marketplace meter and are absent from the retail Pricing API; haiku/sonnet rows are corroborated from secondary sources, opus and cache rates from Microsoft Q&A. Data Zone deployments are 1.1×. Cache writes are 1.25× input (5-min TTL) or 2× (1-hour).

Per active developer, per month (modeled): a heavy agentic-coding user (~30M uncached input + ~300M cache reads + 15M output on sonnet-class) lands around $300–400/month; moderate use $100–150; a haiku-heavy mix well under $100. Published industry averages for Claude Code ($6/dev/day, ~$12 p90) agree. Because Claude bills as one aggregate Marketplace meter, per-developer attribution comes from FoundryGate’s gateway telemetry × this rate card — Azure Cost Management cannot split it for you.

How many concurrent engineers?

Rate limits are pooled per Azure subscription per model (across regions — verified live: capacity units allocate per region, but the effective limit pool is subscription-wide).

Limit poolPAYGEnterprise / MCA-E
sonnet-4-5 / 4-6 / haiku-4-580 RPM / 80K ITPM / 16K OTPM4,000 / 4M / 800K
opus-class / sonnet-540 RPM / 40K ITPM / 8K OTPM2,000 / 2M / 400K

An active developer (agent actually generating) consumes roughly 4–6 requests and 2K–6K output tokens per minute. Dividing the pools:

ScenarioConcurrently active devsTotal org size (15–30% active)
PAYG, sonnet lane3–8 (OTPM-bound)~10–50
PAYG, opus lane1–4~5–25
Enterprise, sonnet lane130–400~450–2,500
Enterprise, opus lane65–200~200–1,300
GPT lane (gpt-4.1 T1 → T6)~40 → ~1,800 (total-TPM-bound, auto-tiers)grows with use

The haiku lane is a separate pool — Claude Code routes subagent/background traffic there by default, so it doesn’t eat the sonnet budget.

The four capacity levers, in order of effect

  1. More Azure subscriptions — each adds a full Claude allotment (quota pools per subscription). Deploy one FoundryGate stack per subscription; the tagging scheme (workload/environment/fg-role) keeps cost and inventory queries uniform across them.
  2. Enterprise/MCA-E agreement — 25–50× the PAYG pools in one step.
  3. Gateway max_tokens caps — OTPM is the binder, so capping response length at the gateway raises the concurrent-developer ceiling roughly linearly.
  4. Model mix — pushing summarization/routine traffic to haiku (or gpt-4.1-mini at $0.40/$1.60) both cuts cost and frees the premium lanes.

The machinery never binds: one APIM v2 unit handles orders of magnitude more requests than the model quotas admit, and the control plane’s SQL load is trivial.