The German token tax.
The same request costs far more tokens in German than in English — and since LLMs bill per token, that gap is a real, hidden bill. I measured exactly how big it is across nine tokenizer families.
- +68%
- More tokens for German, overall
- 2.02×
- Worst case — Claude (Opus 4.x)
- 1.35×
- Best case — Gemini / Gemma
- 24
- EN/DE prompt pairs × 9 tokenizers
German is structurally token-expensive. Long compound nouns (Geschwindigkeitsbegrenzung) and richer inflection mean the same meaning gets chopped into more pieces — so a German-language product can quietly cost far more to run than its English twin, for identical content.
I built a harness that runs 24 semantically-equivalent English/German prompt pairs through 9 tokenizer families, using the real tokenizer where it's public, the official API for Anthropic, and a proxy for Google. Here's what fell out.
English vs German, per tokenizer
The same prompt, tokenized in each language. Every model needs more for German — Claude's tokenizer literally doubles it.
The overhead, ranked
Newer tokenizers (o200k, Llama 4, Gemini) handle German far more gracefully than the older generation — a ~35% tax versus ~80%+.
Where German inflates most
Domain matters as much as model. Everyday German is near parity on modern tokenizers — but legal and technical compounds push the ratio toward 2×.
The takeaways
- German isn't a little more expensive — it's ~68% more on average, and up to 2× on the wrong tokenizer. For a German-first product, that's a line item.
- The tokenizer matters more than the model. Switching from cl100k to o200k roughly halves the German penalty for the same text.
- The pain is concentrated in compounds: legal, technical and long-form German inflate hardest, while everyday chat is nearly free.
- If you serve German at scale, budget for it, prefer a modern tokenizer, and measure your own domain — the spread is too wide to guess.
Full method & code on GitHub.
The prompt set, per-tokenizer harness and chart scripts are all open source — reproduce it or run it on your own domain.
View the repository