Skip to content

Token Cheat Sheet

A one-page token and cost reference that fills itself in from your own ratios, rates and context limits.

Every number below is yours. The pre-filled values are round examples chosen to be obviously round — not anyone’s prices, not a measured ratio, and not a recommendation. Replace them with your own and the whole card recalculates; the URL carries them, so the card you print is the card you linked.

1,000 words, in your units
≈ 1,333 tokens

≈ 5,333 characters · $0.0040 as input, $0.02 as output. Estimated, not tokenized. A real count needs the model's vocabulary; the authoritative number is usage.prompt_tokens on the response.

The four identities everything else is built from

  • tokens ≈ characters ÷ 4
  • tokens ≈ words ÷ 0.75
  • cost = tokens ÷ 1,000,000 × rate
  • input room = context − max_tokens = 128,0004,096 = 123,904

Your rates, laddered

  • 1,000 tokens$0.0030 in · $0.02 out
  • 10,000 tokens$0.03 in · $0.15 out
  • 100,000 tokens$0.30 in · $1.50 out
  • 1,000,000 tokens$3.00 in · $15.00 out
  • 10,000,000 tokens$30.00 in · $150.00 out
Cumulative input over 20 turns, history resent
64,500 tokens · $0.19
If history were not resent
17,000 tokens · $0.05
The multiple resending costs you
3.8×

What people forget to count

  • The system prompt — billed on every request, not once per session.
  • Tool and function schemas — serialised into the prompt on every call that offers them, whether or not one is used.
  • The chat template — role markers and turn delimiters the API adds around your messages.
  • The whole history — a stateless API rebills every previous turn on every new one. That is the quadratic row above.
  • Reasoning tokens — generated and billed as output on models that think, even when they are not shown to you.
  • Retries — a timeout that already generated 800 tokens is normally billed for them.
  • Images and audio — priced as tokens by a formula per modality, not by file size.
What this assumes: nothing on this page is a price, a measurement or a model property. Characters-per-token and words-per-token are rules of thumb you set and they vary by more than most people expect: code, JSON and non-Latin scripts all tokenize far worse than English prose, and two tokenizers disagree with each other on the same text. Rates are per 1,000,000 tokens throughout — the 1K/1M confusion is a factor of a thousand and is the most expensive arithmetic error in this whole subject. The conversation model assumes the full history is resent every turn with no caching and no trimming, which makes cumulative input grow as n(n+1)/2 rather than linearly; caching or a sliding window changes that term and nothing else. Print this page for the card. Estimated, not tokenized. A real count needs the model's vocabulary; the authoritative number is usage.prompt_tokens on the response.

Why a cheat sheet with no numbers on it is the useful kind

Most token cheat sheets are a table of someone else’s prices and a ratio someone measured once. Both go stale — prices move, and the ratio was measured on a corpus that is not yours. What does not go stale is the arithmetic: four identities, a ladder, and the list of things that get left out of the count. Fill in your own numbers and print it.

The two rows worth internalising are the unit and the quadratic. The unit is per million tokens, and the reason to write it out every time is that a per-thousand figure looks identical at a glance and is off by a factor of a thousand — an estimate a thousand times too low is the one that gets approved. The quadratic is the conversation: resending the history means turn twenty pays for turns one to nineteen again, so a chat that adds a fixed amount per turn costs proportionally to n², not n. Twenty turns at 250 tokens each is not 5,000 input tokens, and the row above shows what it is instead.

Everything derived here from characters or words is an estimate, because this page has no tokenizer in it and could not honestly have one — the vocabulary would be megabytes and nothing here fetches anything at runtime. Use it to size a budget, then check the real figure the moment you have one: the usage object on any API response carries the exact prompt and completion counts the bill was computed from, and one real response settles what a hundred estimates cannot.

Token Cheat Sheet · Multigrid