Studio Cost Model: Monthly Platform Cost vs Users
Status: Working estimate · Updated: 2026-07-18 · Companion to: Agentic Coding Platform design
This page estimates the monthly cost of operating Auraison Studio as a function of user count and substrate mix (hosted Cloudflare CPU, BYO, hosted GPU). All vendor prices were pulled from the Cloudflare and Anthropic pricing pages on 2026-07-18; the model is parameterized so a price change is a cell edit, not a rework. The headline result comes first because it should shape pricing and quota decisions: LLM spend is roughly 90% of variable cost on every substrate, and the second-largest line at scale is not compute at all — it is Cloudflare Access per-seat pricing, which argues for moving tenant login off Access before public beta.
1. Unit prices (as of 2026-07-18)
Anthropic, for the Studio default model claude-sonnet-5: $3 per million input tokens, $15 per
million output, with introductory pricing of $2/$10 through 2026-08-31. Prompt-cache reads bill
at roughly 0.1× input ($0.30/M) and cache writes at 1.25×. claude-haiku-4-5 ($1/$5) is the
candidate for cheap phases if LLM cost needs a second lever.
Cloudflare, the components the design uses:
| Component | Price | Included (paid plan) |
|---|---|---|
| Workers Paid base | $5/mo | 10M requests, 30M CPU-ms |
| Containers — CPU | $0.000020 per vCPU-second | 375 vCPU-min/mo |
| Containers — memory | $0.0000025 per GiB-second | 25 GiB-h/mo |
| Containers — disk | $0.00000007 per GB-second | 200 GB-h/mo |
| Containers — egress (NA/EU) | $0.025/GB | 1 TB/mo |
| Durable Objects | $0.15/M requests; $12.50/M GB-s duration | 1M req, 400k GB-s |
| D1 | $0.001/M rows read; $1.00/M rows written; $0.75/GB-mo | 25B reads, 50M writes, 5 GB |
| KV | $0.50/M reads; $5.00/M writes; $0.50/GB-mo | 10M reads, 1M writes, 1 GB |
| R2 | $0.015/GB-mo; Class A $4.50/M; Class B $0.36/M; egress free | 10 GB, 1M A, 10M B |
| Workers for Platforms | $25/mo | 20M requests, 60M CPU-ms, 1000 scripts (+$0.02/script) |
| AI Gateway | $0 (logging/attribution included) | — |
| Cloudflare Access (Zero Trust) | free ≤ 50 users; ~$7/user/mo pay-as-you-go beyond | verify current seat price at implementation — the plans page is not machine-readable |
The workspace container is assumed to run as standard-3 (2 vCPU, 8 GiB, 16 GB disk), the
smallest instance we expect to hold ROS 2 + headless Gazebo comfortably. Its active-hour cost
is $0.144 (CPU) + $0.072 (memory) + $0.004 (disk) ≈ $0.22 per active hour, and a
hibernated workspace costs only its R2 snapshot storage. If standard-2 (1 vCPU, 6 GiB)
proves sufficient, the hour drops to ≈ $0.13.
On-prem GPU is modeled as amortization plus power, not cloud rates: a GPU node at $12k
amortized over 36 months ($333/mo) plus 800 W at $0.20/kWh ($115/mo) is ~$450/mo per node,
or an effective $1.25 per GPU-hour at 50% utilization ($0.63 at full).
2. Per-session and per-user assumptions
The LLM estimate assumes a session bounded by the design's runtime policies (≤ 50 tool calls, ≤ 10 phases): ~40 model calls, each averaging ~5k fresh input tokens, ~25k cache-read tokens, and ~2k output tokens. Per call that is $0.015 + $0.0075 + $0.030 ≈ $0.053, so ≈ $2.10 per session at standard pricing (≈ $1.40 at intro pricing). Sessions that iterate hard or run with poor cache hit rates land closer to $4; light Q&A sessions closer to $1. LLM cost is identical on every substrate — a BYO user's laptop saves compute, not tokens.
Three personas carry the model. The free-tier session counts are what the design's quotas enforce, not observed behavior.
| Persona | Sessions/mo | Hosted CPU active h | GPU h | Storage GB | LLM | Compute | Storage | Variable total |
|---|---|---|---|---|---|---|---|---|
| Casual (hosted CPU, free) | 4 | 3 | 0 | 2 | $8.40 | $0.66 + ~$0.08 egress | $0.03 | ≈ $9 |
| Builder (BYO, free) | 10 | 0 | 0 | 5 | $21.00 | $0 | $0.08 | ≈ $21 |
| Pro (hosted GPU, invited) | 20 | 5 | 10 | 20 | $42.00 | $1.10 + $12.50 GPU | $0.30 | ≈ $56 |
D1, KV, Durable Object, and Workers-request charges stay inside the paid-plan allotments until well past a thousand users at these activity levels; they are treated as $0 and become a rounding error (~$0.01–0.05/user) beyond that. Container egress is the Foxglove websocket stream (~1 GB per active sim hour); the 1 TB included allotment covers roughly the first 1,000 hosted sim hours each month.
3. The formula and the curve
Monthly cost for N users with persona shares s_casual, s_byo, s_pro:
cost(N) = 30 # Workers Paid + Workers for Platforms base
+ N × (s_c×9 + s_b×21 + s_p×56) # variable, from the persona table
+ max(0, N − 50) × 7 # Access seats (until tenant auth moves off Access)
+ nodes(N × s_p) × 450 # GPU fleet, ~1 node per ~35 Pro users at 10 h/moWith the design's expected early mix (70% casual, 20% BYO, 10% Pro) the blended variable cost is ≈ $16 per user-month, and the curve looks like:
| Users | Variable | Access seats | GPU fleet | Fixed | Total/mo | Per user |
|---|---|---|---|---|---|---|
| 50 | $800 | $0 | $450 (1 node) | $30 | ≈ $1,280 | $26 |
| 100 | $1,600 | $350 | $450 (1) | $30 | ≈ $2,430 | $24 |
| 500 | $8,000 | $3,150 | $900 (2) | $30 | ≈ $12,080 | $24 |
| 1,000 | $16,000 | $6,650 | $1,350 (3) | $30 | ≈ $24,030 | $24 |
| 5,000 | $80,000 | $34,650 | $6,750 (15) | $30 | ≈ $121,430 | $24 |
A 100% BYO scenario (the cheapest infrastructure case) still costs ≈ $21/user in LLM spend — the curve barely moves, which is the clearest way to see that this is an LLM-economics business, not a compute-economics one.
4. What the model says
The LLM line is ~90% of variable cost in every scenario, so the levers that matter are token levers: prompt-cache hit rate (the $2.10 session assumes ~83% of input tokens are cache reads; losing caching roughly doubles session cost), per-session token budgets already in the AgentOps policies, effort/model routing (Haiku for mechanical phases would cut the non-reasoning share by ~3×), and the intro pricing window (through 2026-08-31, sessions run ~33% cheaper — the beta period is effectively discounted). Free-tier quotas are not a nice-to-have; at 4 sessions per month a free user costs ~$9, and an enthusiastic one without quota enforcement costs whatever they feel like.
Access seat pricing is the structural surprise: at 1,000 users it is the second-largest line (~$6.7k/mo), larger than the entire GPU fleet, and it buys login. The design (§10) chose Access for tenant identity, which is right for Phase 1's email allowlist and free through 50 users — but before public beta (Phase 2) tenant login should move to app-level auth (the platform already has D1-backed tenants; vibesdk itself uses its own auth), keeping Access for what it is good at: gating admin surfaces, the Tunnel service tokens, and the GPU endpoints. This is a design amendment worth its own line in AURA-733's audit and a small update to the design doc when Phase 2 is planned.
Everything else is comfortably cheap. Hosted CPU workspaces at ~$0.22 per active hour with scale-to-zero mean the hosted free tier costs ~$0.70/user/mo in compute — hosting the zero-friction default is not the expensive part. BYO removes even that but saves only ~$0.75 of the ~$9 casual-user cost. The GPU tier at ~$1.25/GPU-hour effective is an order of magnitude cheaper than cloud GPU rates, which is the margin that makes a paid GPU tier viable; per-tenant caps (design §8) are what keep a node serving ~35 Pro users instead of 3. The fixed platform floor is ~$30/mo plus the GPU fleet — there is no meaningful cost to keeping the platform up while it is small.
5. What this does not model
Revenue and pricing are out of scope; this is the cost side only. The persona activity levels are quota design, not measured behavior — the first month of metering (design §11) should replace them. Not modeled: Anthropic rate-limit tier costs, Logpush destination storage, support and abuse-handling labor, the tenant-app domain registration (~$10–20/yr), R2 Class A bursts from very chatty snapshotting (bounded by hibernation frequency; worth watching in metering), and any Workers-for-Platforms overage past 1,000 deployed companion apps (+$0.02/script — 10,000 tenant apps would add $180/mo). GPU amortization assumes hardware is bought; if existing lab nodes are used, that line is sunk cost rather than new spend.