Price book
How a cost on the chart is calculated.
The cost next to every score on While. is the dollars it would take to answer 1,000 tasks of that eval, at the list prices on this page. As of Sep 28, 2026.
The coding agent posts facts, not dollars: which model and how many input and output tokens it used, or which GPU for how many hours, and how many replies that produced. This page prices the facts. One book for everyone, so any two points on any chart can be compared.
The formula
For an API model: add up the input tokens at the input price and the output tokens at the output price, divide by the number of replies, and multiply by 1,000. No prompt caching, no batch discount.
cost = (input_tokens / 1,000,000 Ă— input_per_M + output_tokens / 1,000,000 Ă— output_per_M) / replies Ă— 1,000For a served open model: the GPU hours at the hourly rate, divided by the replies served in that time, times 1,000.
cost = gpu_hours Ă— usd_per_hour / replies Ă— 1,000Worked out on a live experiment: Claude Sonnet 5 answering 1,833 text-to-SQL tasks used 2,148,276 input tokens and 120,552 output tokens, so (2.148 Ă— $2 + 0.121 Ă— $10) / 1,833 Ă— 1,000 = $3.00 per 1,000 tasks. A 9B model on one L40S for 1.98 hours answered 1,836 tasks, so 1.98 Ă— $1.95 / 1,836 Ă— 1,000 = $2.10 per 1,000 tasks.
API models
USD per million tokens at the provider’s list price. A model id posted with a provider prefix or a date suffix (global.anthropic.claude-sonnet-5, claude-haiku-4-5-20251001) matches the row without it.
| Anthropic | input $/M | output $/M | source | checked |
|---|---|---|---|---|
| claude-fable-5-1 | $10 | $50 | platform.claude.com | Sep 28, 2026 |
| claude-fable-5 | $10 | $50 | platform.claude.com | Sep 28, 2026 |
| claude-opus-5 | $5 | $25 | platform.claude.com | Sep 28, 2026 |
| claude-opus-4-8 | $5 | $25 | platform.claude.com | Sep 28, 2026 |
| claude-opus-4-7 | $5 | $25 | platform.claude.com | Sep 28, 2026 |
| claude-opus-4-6 | $5 | $25 | platform.claude.com | Sep 28, 2026 |
| claude-opus-4-5 | $5 | $25 | platform.claude.com | Sep 28, 2026 |
| claude-sonnet-5 | $2 | $10 | platform.claude.com | Sep 28, 2026 |
| claude-sonnet-4-6 | $3 | $15 | platform.claude.com | Sep 28, 2026 |
| claude-sonnet-4-5 | $3 | $15 | platform.claude.com | Sep 28, 2026 |
| claude-haiku-4-5 | $1 | $5 | platform.claude.com | Sep 28, 2026 |
| OpenAI | input $/M | output $/M | source | checked |
|---|---|---|---|---|
| gpt-6-astra | $10 | $50 | developers.openai.com | Sep 28, 2026 |
| gpt-5.6-sol | $4 | $20 | developers.openai.com | Sep 28, 2026 |
| gpt-5.6-terra | $2 | $12 | developers.openai.com | Sep 28, 2026 |
| gpt-5.6-luna | $0.20 | $1.20 | developers.openai.com | Sep 28, 2026 |
| gpt-5.5Prompts under 272K tokens. | $5 | $30 | developers.openai.com | Sep 28, 2026 |
| gpt-5.4Prompts under 272K tokens. | $2.50 | $15 | developers.openai.com | Sep 28, 2026 |
| gpt-5.4-mini | $0.75 | $4.50 | developers.openai.com | Sep 28, 2026 |
| gpt-5.4-nano | $0.20 | $1.25 | developers.openai.com | Sep 28, 2026 |
| gpt-5.2 | $1.75 | $14 | developers.openai.com | Sep 28, 2026 |
| gpt-5.1 | $1.25 | $10 | developers.openai.com | Sep 28, 2026 |
| gpt-5 | $1.25 | $10 | developers.openai.com | Sep 28, 2026 |
| gpt-5-mini | $0.25 | $2 | developers.openai.com | Sep 28, 2026 |
| gpt-5-nano | $0.05 | $0.40 | developers.openai.com | Sep 28, 2026 |
| gpt-4.1 | $2 | $8 | developers.openai.com | Sep 28, 2026 |
| gpt-4.1-mini | $0.40 | $1.60 | developers.openai.com | Sep 28, 2026 |
| gpt-4o | $2.50 | $10 | developers.openai.com | Sep 28, 2026 |
| gpt-4o-mini | $0.15 | $0.60 | developers.openai.com | Sep 28, 2026 |
| o3 | $2 | $8 | developers.openai.com | Sep 28, 2026 |
| o4-mini | $1.10 | $4.40 | developers.openai.com | Sep 28, 2026 |
| input $/M | output $/M | source | checked | |
|---|---|---|---|---|
| gemini-3.8-flashLaunch price through 2026-12-31; $1.50 and $7.50 from 2027-01-01. | $0.75 | $3.75 | ai.google.dev | Sep 28, 2026 |
| gemini-3.7-flashLaunch price through 2026-12-31; $1.50 and $7.50 from 2027-01-01. | $0.75 | $3.75 | ai.google.dev | Sep 28, 2026 |
| gemini-3.5-flash | $1.50 | $9 | ai.google.dev | Sep 28, 2026 |
| gemini-3.5-flash-lite | $0.30 | $2.50 | ai.google.dev | Sep 28, 2026 |
| gemini-3.1-pro-previewPrompts of 200K tokens or less; $4 and $18 above that. | $2 | $12 | ai.google.dev | Sep 28, 2026 |
| gemini-2.5-proPrompts of 200K tokens or less; $2.50 and $15 above that. | $1.25 | $10 | ai.google.dev | Sep 28, 2026 |
| gemini-2.5-flashText input; audio input is $1. | $0.30 | $2.50 | ai.google.dev | Sep 28, 2026 |
| gemini-2.5-flash-liteText input; audio input is $0.30. | $0.10 | $0.40 | ai.google.dev | Sep 28, 2026 |
GPUs
USD per GPU hour at Modal’s on-demand list price, which is quoted per second; the hourly rate is that times 3,600, to the cent. The platform’s own trainer and serving run on Modal, so this is the rate a served open model is priced at whoever runs it.
| GPU | $/second | $/hour | source | checked |
|---|---|---|---|---|
| B200Nvidia B200 | $0.001736 | $6.25 | modal.com | Sep 28, 2026 |
| H200Nvidia H200 SXM | $0.001261 | $4.54 | modal.com | Sep 28, 2026 |
| H100Nvidia H100 SXM5 | $0.001097 | $3.95 | modal.com | Sep 28, 2026 |
| A100-80GBNvidia A100, 80 GB | $0.000694 | $2.50 | modal.com | Sep 28, 2026 |
| A100-40GBNvidia A100, 40 GB | $0.000583 | $2.10 | modal.com | Sep 28, 2026 |
| L40SNvidia L40S | $0.000542 | $1.95 | modal.com | Sep 28, 2026 |
| A10GNvidia A10 | $0.000306 | $1.10 | modal.com | Sep 28, 2026 |
| L4Nvidia L4 | $0.000222 | $0.80 | modal.com | Sep 28, 2026 |
| T4Nvidia T4 | $0.000164 | $0.59 | modal.com | Sep 28, 2026 |
What is not in the number
- Prompt caching. Tokens are priced as if every one was read fresh, so a cached and an uncached run cost the same on the chart.
- Batch discounts and negotiated rates. List price only. A rate of your own is a later override, and the chart will say when it is used.
- Batch size and GPU utilisation. A served model's cost is the hours the GPU was up divided by the replies it gave; a fuller batch is a cheaper reply, and that is the point.
- The training bill. What it cost to train a version (cost_usd on run finish) is a separate number on the run page.
- Judge calls. Grading the answers is not part of answering them.
How a coding agent posts the facts
On the eval block of the run record. For an API model, the model id and the token counts the provider returned, summed over the replies. For a served model, the GPU and the hours it was up.
from whileai.platform import track
run = track("text-to-sql-shop").open("run_5cc11826d439")
run.finish(
record={
"eval": {
"model": "claude-sonnet-5",
"input_tokens": 2_148_276,
"output_tokens": 120_552,
"replies": 1833,
}
}
)run = track("text-to-sql-shop").open("run_223dc48d4933")
run.finish(record={"eval": {"gpu": "L40S", "gpu_hours": 1.98, "replies": 1836}})A run that posts only cost_per_1k still draws, marked “reported by the agent, not priced by the book”. A model or GPU this page does not list falls back the same way. The SDK reference is at docs.while.ai.
The book itself
The prices on this page are read from one JSON file in the site’s repository, so the chart and this page cannot disagree. Every entry carries its source URL and the day it was checked; a check in the build fails if one is missing. Open a pull request to add a model or correct a price.
lib/price-book.json on GitHub · 38 models, 9 GPUs, Sept 2026 book