Your JSON Is a Token Tax

The same payload cost 3,018 tokens as JSON and 2,057 as TOON — a third fewer, 8/8 accuracy on both. Repeated keys and braces were buying me nothing.

Share

A Signal — one idea, checked against my own work.


I had a payload I was passing into an agent on every run — a flat array of uniform objects, same fields on every row, the boring shape that shows up everywhere. In JSON it cost about 3,018 tokens. I re-encoded the same data in TOON — a token-oriented notation that keeps JSON’s structure but declares the field list once and then streams the rows underneath, CSV-style — and the same payload came out around 2,057 tokens — about a third fewer (roughly 32% on the tokenizer I measured).

The part that made me actually switch was that there was no accuracy cost. I ran it as a straight A/B — same task, same model, JSON versus TOON — and got 8 out of 8 correct on both. So the tokens I’d been spending on repeated keys and braces weren’t buying me anything… They were a tax.

The catch is that it’s shape-dependent. TOON’s win comes from uniformity: arrays of flat objects with the same fields collapse into a table that names the columns once and lists values after. Deeply nested or ragged data doesn’t tabularize cleanly, and there plain JSON can be the leaner choice. So this isn’t “replace JSON.” It’s narrower and more useful than that: look at what you’re feeding the model on every single call, and if a chunk of it is a uniform flat-object array, you’re probably paying rent on structure the model doesn’t need respelled on every row.

Same data, same answers, a third fewer tokens. Free money is rare. This is close.


Sources: TOON — Token-Oriented Object Notation (GitHub) · First-party A/B measurement (Thomas Adair, Aug 2026): ~3,018 → ~2,057 tokens, 8/8 accuracy on both encodings.