Markdown vs plain text for LLM context — why structure wins
When you put a document into an LLM's context, you're making a quiet decision about how much structure to keep. Dump plain text and you've thrown away the headings, lists, and tables that told a reader how the content was organized. Keep that structure as Markdown and the model gets the same map you do — for a handful of extra tokens.
Models read structure, not just words
Language models are trained on enormous amounts of Markdown — READMEs, docs, forum posts, issues. Markdown's conventions (# headings, - lists, | tables) are deeply familiar to them. So lightweight markup isn't noise; it's signal the model already knows how to use:
- A heading tells the model "a new topic starts here."
- A list says "these items are peers."
- A table preserves the row/column relationships that plain text destroys.
Strip all that into a flat blob and the model has to infer the structure from prose alone — sometimes correctly, often not.
The token cost is tiny
The usual objection is tokens. In practice, Markdown's overhead is small: a few characters per heading and list marker, pipes and dashes for tables. Compared to the cost of the model misreading a flattened table or merging two sections, that overhead is a bargain. You're spending a rounding error of tokens to avoid a category of reasoning errors.
Where it shows up
The difference is sharpest in the cases people care about most:
- Tables. "What was Q2 revenue?" is trivial when the table is intact and nearly hopeless when it's a run of loose numbers.
- Long documents. Headings let the model — and your chunker — navigate. Flat text forces linear scanning.
- Extraction. Pulling fields out of a document is far more reliable when the document's sections are explicit.
Plain text still has its place
For a single short paragraph, plain text is fine — there's no structure to lose. The argument for Markdown grows with the document: the longer and more structured the source, the more you gain by preserving its shape.
The takeaway
Don't flatten documents before handing them to a model if you can avoid it. Convert them to clean Markdown instead — you keep the structure the model can actually use, at almost no cost.
That's the whole idea behind markitdown.ai: turn any document into clean, AI-ready Markdown. Try it in the browser or via the API.