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 21, 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 21, 2026 |
| claude-fable-5 | $10 | $50 | platform.claude.com | Sep 21, 2026 |
| claude-opus-5 | $5 | $25 | platform.claude.com | Sep 21, 2026 |
| claude-opus-4-8 | $5 | $25 | platform.claude.com | Sep 21, 2026 |
| claude-opus-4-7 | $5 | $25 | platform.claude.com | Sep 21, 2026 |
| claude-opus-4-6 | $5 | $25 | platform.claude.com | Sep 21, 2026 |
| claude-opus-4-5 | $5 | $25 | platform.claude.com | Sep 21, 2026 |
| claude-sonnet-5 | $2 | $10 | platform.claude.com | Sep 21, 2026 |
| claude-sonnet-4-6 | $3 | $15 | platform.claude.com | Sep 21, 2026 |
| claude-sonnet-4-5 | $3 | $15 | platform.claude.com | Sep 21, 2026 |
| claude-haiku-4-5 | $1 | $5 | platform.claude.com | Sep 21, 2026 |
| OpenAI | input $/M | output $/M | source | checked |
|---|---|---|---|---|
| gpt-6-astra | $10 | $50 | developers.openai.com | Sep 21, 2026 |
| gpt-5.6-sol | $4 | $20 | developers.openai.com | Sep 21, 2026 |
| gpt-5.6-terra | $2 | $12 | developers.openai.com | Sep 21, 2026 |
| gpt-5.6-luna | $0.20 | $1.20 | developers.openai.com | Sep 21, 2026 |
| gpt-5.5Prompts under 272K tokens. | $5 | $30 | developers.openai.com | Sep 21, 2026 |
| gpt-5.4Prompts under 272K tokens. | $2.50 | $15 | developers.openai.com | Sep 21, 2026 |
| gpt-5.4-mini | $0.75 | $4.50 | developers.openai.com | Sep 21, 2026 |
| gpt-5.4-nano | $0.20 | $1.25 | developers.openai.com | Sep 21, 2026 |
| gpt-5.2 | $1.75 | $14 | developers.openai.com | Sep 21, 2026 |
| gpt-5.1 | $1.25 | $10 | developers.openai.com | Sep 21, 2026 |
| gpt-5 | $1.25 | $10 | developers.openai.com | Sep 21, 2026 |
| gpt-5-mini | $0.25 | $2 | developers.openai.com | Sep 21, 2026 |
| gpt-5-nano | $0.05 | $0.40 | developers.openai.com | Sep 21, 2026 |
| gpt-4.1 | $2 | $8 | developers.openai.com | Sep 21, 2026 |
| gpt-4.1-mini | $0.40 | $1.60 | developers.openai.com | Sep 21, 2026 |
| gpt-4o | $2.50 | $10 | developers.openai.com | Sep 21, 2026 |
| gpt-4o-mini | $0.15 | $0.60 | developers.openai.com | Sep 21, 2026 |
| o3 | $2 | $8 | developers.openai.com | Sep 21, 2026 |
| o4-mini | $1.10 | $4.40 | developers.openai.com | Sep 21, 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 21, 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 21, 2026 |
| gemini-3.5-flash | $1.50 | $9 | ai.google.dev | Sep 21, 2026 |
| gemini-3.5-flash-lite | $0.30 | $2.50 | ai.google.dev | Sep 21, 2026 |
| gemini-3.1-pro-previewPrompts of 200K tokens or less; $4 and $18 above that. | $2 | $12 | ai.google.dev | Sep 21, 2026 |
| gemini-2.5-proPrompts of 200K tokens or less; $2.50 and $15 above that. | $1.25 | $10 | ai.google.dev | Sep 21, 2026 |
| gemini-2.5-flashText input; audio input is $1. | $0.30 | $2.50 | ai.google.dev | Sep 21, 2026 |
| gemini-2.5-flash-liteText input; audio input is $0.30. | $0.10 | $0.40 | ai.google.dev | Sep 21, 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 21, 2026 |
| H200Nvidia H200 SXM | $0.001261 | $4.54 | modal.com | Sep 21, 2026 |
| H100Nvidia H100 SXM5 | $0.001097 | $3.95 | modal.com | Sep 21, 2026 |
| A100-80GBNvidia A100, 80 GB | $0.000694 | $2.50 | modal.com | Sep 21, 2026 |
| A100-40GBNvidia A100, 40 GB | $0.000583 | $2.10 | modal.com | Sep 21, 2026 |
| L40SNvidia L40S | $0.000542 | $1.95 | modal.com | Sep 21, 2026 |
| A10GNvidia A10 | $0.000306 | $1.10 | modal.com | Sep 21, 2026 |
| L4Nvidia L4 | $0.000222 | $0.80 | modal.com | Sep 21, 2026 |
| T4Nvidia T4 | $0.000164 | $0.59 | modal.com | Sep 21, 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