compare-table
ComparisonLedgerProse
Multi-row comparison table with consistent columns.
Use when you have 3+ options or 4+ rows of criteria. Wider data than compare-prose can hold legibly.
tradeoffrankingassessment
When to use
- Wider than compare-prose. Three or more options, or four or more rows of criteria. compare-prose maxes out at two columns and short bodies; compare-table scales further.
- Cells are short phrases. Each cell is a value, a phrase, or a state marker — not a paragraph. If the cells need sentences, use
verdict-gridorcards-stack. - Stable column meaning. Every row reads the same way across columns. Mixing column meanings row-to-row breaks the table's scannability.
When not to use
- Cells full of prose. Long sentences in a table cell wrap awkwardly and force the column wider. Move to
verdict-gridfor criteria with body text, orcards-stackfor full prose rows. - More than 6 rows. Past 6 rows the table density crowds the slide. Split into two slides or summarize the rows that don't differentiate.
- State-marker rows. When most cells are pass/fail/partial badges, the right layout is
obligation-matrixorverdict-grid. compare-table is for textual values.
Common mistakes
- Writing a vague or duplicate first column, assuming it's just another data column. When the deck opts into
autosplit: onand the table overflows a portrait/narrow box, the Fit Ladder reshapes it into row-cards (column headers become in-card labels) instead of clipping — the FIRST column becomes each card's title in that reshape, so it needs to be a genuinely identifying label per row. Withoutautosplit: on, an overflowing table is not automatically protected this way.
Authoring
<!-- _class: compare-table -->
## Heading framing the comparison.
| Criterion | Option A | Option B | Option C |
| --- | --- | --- | --- |
| First criterion | Value | Value | Value |
| Second criterion | Value | Value | Value |
| Third criterion | Value | Value | Value |Slots
| Slot | Selector | Required | Description |
|---|---|---|---|
title | h2 | yes | Slide heading framing the comparison. |
table | table | yes | Markdown table with header row and 2+ data rows. |
Anatomy
┌─────────────────────────────────────────┐
│ header │
│ LABEL │
│ Here are the numbers side by side. │
│ │
│ ┌───────────┬───────────┬───────────┐ │
│ │ │ Option A │ Option B │ │
│ ├───────────┼───────────┼───────────┤ │
│ │ Row 1 │ ✓ │ ✕ │ │
│ │ Row 2 │ ✕ │ ✓ │ │
│ │ Row 3 │ ✓ │ ✓ │ │
│ │ Row 4 │ ⚠ │ ✓ │ │
│ └───────────┴───────────┴───────────┘ │
│ Footnote text for scope caveats. │
│ footer 11/19 │
└─────────────────────────────────────────┘Related
- compare-proseexactly two options with prose bodies
- verdict-gridoptions scored against criteria with pass/partial/fail badges
- obligation-matrixmany regimes compared against shared obligations
- cards-stackeach row needs full-prose breathing room rather than a tabular cell