The table response
When the right shape for the answer is rows and columns.
Tabular data is where most AI product formatting falls apart. The model either bullets everything into prose the user has to reconstruct into a mental table, or dumps a bare table with no context. The correct answer is almost always a lede sentence followed by a real table — two layers, each doing work the other can't.
"Pure prose hides comparisons. A bare table hides the point. Lede + table is the default."
Sentence first, table second, sort always.
A one-sentence lede states the headline insight. The table follows, sortable by every column, with quiet affordances — monospace numbers, right-aligned counts, subtle row hover. Short notes column for human judgment ("Healthy," "Growing," "Sticky") lives in the rightmost slot.
The key discipline is restraint: a table answer doesn't need a paragraph after it unless the user explicitly asked for commentary.
Starter and Team together hold 75% of paying seats and run at 2–3% monthly churn.
| Free | $0 | 14,200 | — | |
| Starter | $9 | 1,850 | 3.2% | Healthy |
| Team | $29 | 640 | 1.8% | Healthy |
| Business | $99 | 184 | 0.9% | Growing |
| Enterprise | custom | 22 | 0% | Sticky |
Lede + table is usually right. Prose hides comparisons; table without prose hides the point.
Structure beats sentences at comparisons.
Readers comparing five plans across four attributes need twenty data points. Prose forces them to reconstruct the grid in their head, one sentence at a time. A table does that reconstruction for them. The lede above it holds the one thing the grid can't say — the conclusion.
Table hygiene that matters.
- Monospace numerics. Numbers right-align into clean columns only in monospace. Prose fonts will drift.
- Sortable as default. Every numeric column gets a sort toggle. The user has the question, let them ask it.
- Judgment column. A short text column for annotation — "Healthy," "At risk" — is the fastest way to turn data into a recommendation.
Markdown tables in chat.
Some products render tables as raw markdown, letting the browser guess column widths. The result is a table that looks almost right until one cell has a long value and the whole grid collapses. The user loses trust in the precision of the numbers even when the underlying data is fine.
What this pattern gets wrong when it gets wrong.
- Silent truncate
- The response ran out of room or tokens and the product didn't tell the user where it stopped.
- Confidence theater
- Language or typography that performs certainty beyond what the model actually has.
Three shipping variants worth copying.
- Column headers that offer sort on click
- A 'copy as markdown' affordance in the table's footer
- Empty cells explicitly marked '—' not left blank