Venture Building Research guide

What does '$3 per million tokens' mean? How to read an AI bill

The input price covers what you send. The answer runs on a separate, usually dearer meter, which can also include reasoning you never see.

A fuel station forecourt at night: a small scooter being filled at one pump while a large truck fills at the next, under a white canopy with magenta light
Same price per unit. Very different tanks.

Direct answer

If $3 per million tokens is the input rate, you pay $3 for every million tokens you send to the model. A token is a small chunk of text: a short word, part of a longer word, or punctuation. OpenAI's English rule of thumb is about 75 words per 100 tokens. Output is billed separately, usually at a higher rate. Cache reads can be cheaper, and OpenAI bills hidden reasoning tokens as output. So compare the total token cost per finished task, including repeat requests.

The input price on a model’s price card does not tell you what a finished task costs. At “$3 per million input tokens”, you pay $3 for every million tokens you send. The answer runs on a separate output meter, usually at a higher rate. Cached input and hidden reasoning can move the bill again.

On OpenAI’s and Anthropic’s price lists, checked on 24 September 2026, the flagship rows put output at five times the input price. That is a snapshot from one date, not a rule for every model or pricing tier. So ask which meter a quoted price covers, then measure what one finished task costs.

What is a token?

A token is the unit an AI language model reads and writes. OpenAI’s help page says a token “can represent a character, part of a word, a whole word, or punctuation.” A word may be one token or several; the model’s tokenizer decides the split.

For English, OpenAI gives three rules of thumb:

  • 1 token is about 4 characters.
  • 1 token is about three-quarters of a word.
  • 100 tokens are about 75 words.

So a million tokens of English is roughly 750,000 words. Use that to estimate scale; use the token counts your provider reports to calculate cost.

Other languages can need more tokens for the same content. Across 78 published English and Dutch article pairs on this site, counted with tiktoken 0.14.0 and the o200k_base encoding, Dutch needed 1.20 times as many tokens as English: about 20% more. That is a measurement of this corpus with that tokenizer, not a universal Dutch surcharge.

Why does output cost more than input?

The cited price lists do not explain the difference. NVIDIA’s engineering account describes two phases. During prefill, the model processes the input tokens in parallel, making effective use of the GPU. During decode, it generates output tokens “one at a time”, each depending on the output before it. In that account, moving data from memory limits decoding speed and leaves compute capacity underused.

That describes how the work differs, not how prices are set. No vendor cited here gives it as the reason for its price ratio.

For the bill, the point is simpler. On a row priced at five times input, a 300-token answer costs as much as 1,500 input tokens. Asking for a shorter answer can reduce visible output, but it does not by itself cap hidden reasoning.

What are cached input and reasoning tokens?

Two more kinds of token change the bill.

Cached input. A block of instructions or document text that repeats across requests may qualify for caching: the provider stores it and rereads it at a lower price. In the 24 September snapshot, a cache read cost 0.1 times normal input on OpenAI’s GPT-6 flagship rows and most Claude rows, and a five-minute cache write cost 1.25 times. Anthropic listed lower read multipliers for Claude Fable 5.1, Mythos 5.1 and Opus 5.5, and charged twice normal input for a one-hour cache write. Check your model’s current rates and cache conditions. The saving depends on how much stored text is actually reused after the write charge.

Reasoning tokens. Reasoning models can use internal tokens that are not shown as answer text. OpenAI’s help page says these tokens “count toward output usage and are billed as output tokens”, and adds: “A short visible answer can therefore use more tokens than its displayed text suggests.”

What does a monthly bill look like?

This is a hypothetical token bill with round numbers, not a measured customer case.

Imagine a support assistant handling 20,000 conversations a month. Assume one request completes each conversation and sends 2,000 input tokens: 1,500 tokens of fixed instructions and 500 of question and history. Each visible answer is 300 tokens. Use $3 per million input tokens, $15 per million output tokens and $0.30 per million cache-read tokens. The $3 and $15 matched Anthropic’s listed Claude Sonnet 4.6 rates on 24 September 2026; here they serve only as round numbers.

Same assistant, four bills (hypothetical)Input lineOutput lineMonthly total
Baseline40M × $3 = $1206M × $15 = $90$210
Instructions read from cache10M × $3 + 30M × $0.30 = $396M × $15 = $90$129, plus cache-write charges
Reasoning mode on, 1,500 hidden tokens per answer40M × $3 = $12036M × $15 = $540$660
Baseline, but in Dutch (assumed 1.20× tokens)48M × $3 = $1447.2M × $15 = $108$252

M means million tokens. Each row changes one assumption from the baseline. The cache row assumes every fixed instruction token is a cache read and leaves out write charges. The reasoning row adds 1,500 hidden tokens to each 300-token answer. The Dutch row applies our measured 1.20 multiplier to both input and output; another tokenizer or workload could differ.

Under these assumptions, caching cuts the bill by almost 40% before write charges. Hidden reasoning more than triples it while the visible answer stays the same length. The assumed Dutch token increase adds a fifth. These are arithmetic comparisons, not promises about savings or answer quality.

How do I compare prices between models?

Compare the cost of a finished task, not the price of a token. OpenAI’s help page warns: “A lower price per million tokens does not necessarily produce a lower total cost: models can tokenize the same text differently and generate different amounts of output or reasoning.”

Anthropic’s pricing page makes the point concrete: Claude 4.7 and later models use a newer tokenizer that “produces approximately 30% more tokens for the same text.” At an unchanged price per token, the same text then costs more. A token is not a fixed quantity of text across models.

I built Undominated.ai to put model prices side by side. It ranks models on independently measured capability first and on price second. No cut of inference, no affiliate, no paid placement. The launch article explains the method. Use current prices to shortlist models, then compare the shortlist on your own finished tasks.

A different class of model may handle the task at lower cost. Frontier, workhorse, or local explains that choice.

How do I keep the bill under control?

Watch the cost per type of task, every week. That is the Track step of ROUTE.

ROUTE is the framework from my book The Model Portfolio, which is available now. It turns model choice into portfolio management: each task goes to a named model for a named reason, and cost is measured per route. The five steps:

  1. R · Register. List every model you use with its mandate (what it is for), cost class, privacy class and retirement status, so nothing runs unowned.
  2. O · Objective typing. Before you choose a model, write down what the task needs: how much reasoning, what format, how fast, how good, how private.
  3. U · Utilize policy. Write the routing rules, including cascades and fallbacks, that decide which model handles which request.
  4. T · Track. Measure cost, speed and quality per route, so a waste pattern shows up before the invoice.
  5. E · Evolve. Promote, demote and retire models on a fixed cadence, so a retirement is a scheduled release, not a scramble.

For the support assistant, tag each request with its task, such as “support-reply”. OpenAI’s Responses API and Anthropic’s API both report input_tokens and output_tokens; record cache reads and writes as well. Where reasoning is billed as output, as on OpenAI, count it once, inside that output figure. Each week, add up the charges for that task type, repeat requests included, and divide by the number of completed conversations.

In the baseline above, that comes to about one US cent per conversation; the reasoning row comes to 3.3 cents. If your weekly figure jumps like that, the logged categories show which meter moved, but not why. Find the cause before you change models. The book puts it in one line: “Meter the route, not the invoice.” What is model routing? covers the written policy behind each route.

Try this today: a 15-minute cost-per-task check

  1. Define the task. Pick one AI feature and state what counts as finished, such as a completed support conversation. (2 minutes)
  2. Collect last week’s usage. Use the provider’s usage page and your task log. Note uncached input, cache reads, cache writes, billed output and completed tasks, with repeat requests included. If you cannot isolate the feature or count completions, write that down: it is your first finding. (5 minutes)
  3. Price each category once. Divide each token count by one million, multiply by its rate, then add the charges. Do not count cached tokens again as ordinary input, and do not add reasoning tokens to an output figure that already includes them. (3 minutes)
  4. Divide by completed tasks. Requests are a valid denominator only when each request completes one task. If completions are unknown, label the result cost per request. (2 minutes)
  5. Record a baseline. Save the feature, week, model, rates, cost per task and any missing data where the team can find them. (3 minutes)

Repeat next week with the same task definition. The second number is the one that tells you something. If it moves, check usage and rates before you change models.

Cite this:What does '$3 per million tokens' mean? How to read an AI bill.Len P. van der Hof. https://lenvanderhof.com/en/blog/ai-token-pricing-explained/ ·

Terminology

Sources

  1. Understanding and counting tokens · OpenAI Help Center
  2. Pricing | OpenAI API · OpenAI
  3. Pricing · Anthropic
  4. Mastering LLM Techniques: Inference Optimization · NVIDIA Technical Blog
  5. Undominated.ai · Undominated.ai
  6. Undominated.ai (hub)
  7. Introducing Undominated.ai
  8. ROUTE framework
  9. The Model Portfolio

Further reading

Markdown for LLMs