method
How these numbers are produced.
Every price on this site was read from a provider pricing page on a dated day. Nothing is estimated, scored, or carried over from memory. Where a number could not be verified, the row was left out and named below.
The arithmetic
fresh_input = input_tokens x (1 - cache_hit)
cached_input = input_tokens x cache_hit
per_request = (fresh_input / 1,000,000) x price_in
+ (cached_input / 1,000,000) x price_cache_read
+ (output_tokens / 1,000,000) x price_out
monthly = per_request x requests
batch = monthly x published_discountCache reads are applied only where the vendor publishes a cache-read rate. Batch is applied per model using that vendor's published discount, which is not always 50%: some models carry 20%, 24%, or 60% off.
What is not in the number
- Retries, timeouts, and failed calls, which in practice add 5% to 20%.
- Tool calls and grounding fees, such as search grounding billed per thousand requests.
- Embedding, image, audio, and video tokens.
- Fine-tuning and training runs.
- Negotiated, committed, or volume discounts.
- Usage caps inside subscription plans, which vendors rarely publish in comparable units.
Treat the output as a floor for list-price spend, not an invoice. The ranking is the useful part: it holds even when all rows shift together.
Coverage
21 models and 11 plans across 6 sources, covering 7 priced workloads.
| Source | What it covers | Read on | URL |
|---|---|---|---|
| Anthropic pricing | API rates, caching, seats | Sep 24, 2026 | claude.com/pricing |
| Gemini API pricing | API rates, caching, seats | Sep 24, 2026 | ai.google.dev/gemini-api/docs/pricing |
| OpenRouter model list | Cross-vendor list rates | Sep 24, 2026 | openrouter.ai/models |
| Cursor pricing | Seats and plan contents | Sep 24, 2026 | cursor.com/pricing |
| GitHub Copilot plans | Seats and plan contents | Sep 24, 2026 | github.com/features/copilot/plans |
| Runpod GPU pricing | Rented GPU hours | Sep 13, 2026 | www.runpod.io/pricing |
Deliberately missing
- Individual ChatGPT plan prices. The pricing page renders its numbers client-side and they could not be read directly, so those plans are absent rather than guessed.
- Vendors whose rates could not be read from a pricing page on the same pass. They are added when they can be, not approximated.
- Benchmark-style quality scores. Cost is measurable here; quality is not, and a made-up score would poison the table.
Update policy
Prices carry the date they were read. When a vendor changes a rate, the row is corrected and the date moves with it. Vendors that publish introductory pricing with an end date, such as Gemini 3.8 Flash, say so in the model note.
Every figure here is dated Sep 24, 2026. If you are reading this much later, assume some rows have moved and check the source link on the row before you make a decision.
Ordering and money
Tables are sorted by arithmetic, cheapest first. There are no sponsored rows, no paid placements, and no vendor can change a ranking. Some outbound links may earn a commission; that has no effect on which row sits at the top. Details are on the disclosure page.
Corrections
Spotted a rate that has moved? The row carries its source link, so the fastest fix is to send the vendor URL and the new figure. Corrections get applied with the next read, and the date on the row updates with it.
Prices read from 6 provider pricing pages on Sep 24, 2026. Some outbound links may be affiliate links. How that works.