Every provider charges less for input than for output, and the size of that gap varies far more than most teams expect. Understanding why it exists, and how wide it is, changes which model you should pick for a given workload.
Input tokens are processed in parallel. The whole prompt can be pushed through the model at once, which is efficient on modern accelerators. Output tokens are generated one at a time, each requiring a full forward pass, with the result appended and fed back in. Generating a thousand tokens takes a thousand sequential steps; reading a thousand tokens does not.
That asymmetry is the reason output pricing is higher, and it is also why output price is the number to optimise when your product generates long responses.
| Model | Input | Output | Multiple |
|---|---|---|---|
| Grok 4.3 | $1.25 | $2.50 | 2.0x |
| Grok 4.6 | $2.00 | $6.00 | 3.0x |
| DeepSeek V4 Pro | $1.32 | $3.96 | 3.0x |
| GPT-4.1 | $2.00 | $8.00 | 4.0x |
| DeepSeek V4.1 Flash | $0.30 | $1.20 | 4.0x |
| GPT-6 Astra | $10.00 | $50.00 | 5.0x |
| GPT-6.1 Sol | $2.00 | $10.00 | 5.0x |
| GPT-6 Sol | $2.00 | $10.00 | 5.0x |
| GPT-6 Luna | $0.10 | $0.50 | 5.0x |
| GPT-5.6 Sol | $4.00 | $20.00 | 5.0x |
| Claude Fable 5.1 | $10.00 | $50.00 | 5.0x |
| Claude Opus 5 | $5.00 | $25.00 | 5.0x |
| Claude Sonnet 5 | $2.00 | $10.00 | 5.0x |
| Claude Sonnet 4.6 | $3.00 | $15.00 | 5.0x |
| Claude Haiku 4.5 | $1.00 | $5.00 | 5.0x |
| Gemini 3.8 Flash | $0.75 | $3.75 | 5.0x |
| Gemini 3.7 Flash | $0.75 | $3.75 | 5.0x |
| GPT-5.6 Luna | $0.20 | $1.20 | 6.0x |
| GPT-5.6 Terra | $2.00 | $12.00 | 6.0x |
| GPT-5.5 | $5.00 | $30.00 | 6.0x |
| GPT-5.4 | $2.50 | $15.00 | 6.0x |
| GPT-5.4 mini | $0.75 | $4.50 | 6.0x |
| Gemini 3.5 Flash | $1.50 | $9.00 | 6.0x |
| Gemini 3.1 Pro (Preview) | $2.00 | $12.00 | 6.0x |
| GPT-5.4 nano | $0.20 | $1.25 | 6.3x |
| GPT-5.2 | $1.75 | $14.00 | 8.0x |
| Gemini 2.5 Pro | $1.25 | $10.00 | 8.0x |
| Gemini 3.5 Flash-Lite | $0.30 | $2.50 | 8.3x |
The lowest multiple in this dataset is Grok 4.3 at 2.0x. The highest is Gemini 3.5 Flash-Lite at 8.3x. For a generation-heavy workload that difference matters more than the headline input rate.
Compute your own input-to-output ratio from production logs, then price candidates as (in_ratio × in_price + out_ratio × out_price) / (in_ratio + out_ratio).
| Workload shape | Typical ratio | What matters |
|---|---|---|
| Classification, extraction | 20:1 input-heavy | Input price and cache rate |
| RAG question answering | 10:1 input-heavy | Input price, cache rate, context window |
| Chat | 3:1 balanced | Blended price |
| Code generation | 1:5 output-heavy | Output price and output multiple |
| Long-form writing | 1:10 output-heavy | Output price, max output cap |
Set a max output token cap per endpoint. Unbounded generation is the single most common cause of an unexpected output bill, because a model that decides to elaborate will elaborate.
Instruct format explicitly. "Return only the JSON object, no explanation" removes the preamble that otherwise lands on the output line. Use structured output modes where offered, since constrained decoding can also reduce wasted tokens.
Watch reasoning overhead. On reasoning models, internal tokens are billed at the output rate even though you never see them. Lowering reasoning effort on straightforward tasks cuts the output line directly.
Caching only applies to input. There is no mechanism to cache output, so a cache can never reduce the output portion of a bill. If output dominates your spend, caching will disappoint you, and the right move is model selection plus output caps instead.
Price your actual ratio in the calculator before choosing — a model that looks expensive per token can be the cheapest for your shape of traffic.