Ranks the next six sins by working backwards from the references we already vouch for: six of fifteen canon entries were uncited, and each idle one points at a sin worth writing. Also records the candidates our build-time Vega-Lite pipeline can't prove honestly yet, so we stop rediscovering them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ULE5RRxdQE1ebwefEd2eCM
5.6 KiB
Content backlog — what to write next
Working document. The rule that generated this list: every sin must be
condemned by something already in the canon (src/lib/references.ts). We
don't invent authority, so the backlog is mined from the sources rather than
brainstormed and back-filled with citations.
Canon coverage
Which references are already doing work, after the first three sins:
| Reference | Cited by |
|---|---|
callingbullshit |
truncated-y-axis |
clevelandmcgill |
truncated-y-axis, pie-chart-overload |
tufte |
truncated-y-axis |
howchartslie |
truncated-y-axis, dual-axis-deception |
datatoviz |
dual-axis-deception, pie-chart-overload |
spurious |
dual-axis-deception |
swd |
dual-axis-deception |
fewpies |
pie-chart-overload |
junkcharts |
pie-chart-overload |
munzner |
— |
wilke |
— |
healy |
— |
huff |
— |
schwabish |
— |
ftvisvocab |
— |
Six idle references. Each is an authority we've already endorsed on the canon page, so a sin that leans on one is cheap to justify and strengthens the page it sits on. The backlog is ordered to bring them all in.
Ranked backlog
1. The Cherry-Picked Window — Deceptive Framing, severity 5
Poke: "You started the clock exactly where the story got good."
The trend runs one way over five years and the other way over five months, so the chart shows the five months. Nothing about the chart is technically false — the axis starts at zero, the labels are honest — which is what makes it the nastiest sin on this list and a good counterweight to the three scale/type sins we already have.
Charts: one series, two views. Bad = the flattering slice. Fixed = the full record with the slice shaded in place. Literally the same dataset filtered, so the "same numbers, both charts" rule holds by construction — the strongest proof we can build.
Citations: huff (the original con), callingbullshit, howchartslie,
junkcharts.
2. Bars That Hide the Distribution — Hiding the Data, severity 4
Poke: "Four bars, four averages, and no idea whether the difference is real."
The bar-of-means: every group collapsed to one number, so wildly different distributions draw identical bars. Wilke devotes a section to exactly this and Healy makes the perceptual case; it's the natural home for three of our six idle references at once.
Charts: bad = grouped bar of means. Fixed = strip/box plot over the same observations, means still marked.
Citations: wilke, healy, schwabish, datatoviz.
3. The Inflated Bubble — Perceptual Traps, severity 4
Poke: "You doubled the number and quadrupled the ink."
Scaling a circle's radius by the value instead of its area squares the apparent difference. This is Tufte's Lie Factor with an actual number attached, and it's the cleanest possible excuse to bring Munzner's channel ranking onto a page — the same ranking that already underwrites the pie and truncated-axis sins.
Charts: bad = radius ∝ value (a calculate transform squaring the size
encoding). Fixed = area ∝ value, or better, the same values as a dot plot where
position does the work.
Citations: munzner, clevelandmcgill, tufte, howchartslie.
4. Alphabetical Is Not a Ranking — Sloppy Craft, severity 2
Poke: "Your categories are sorted by name. Nobody wants to know which region starts with A."
Venial, universal, and the single most useful page to fire at a colleague — which is the whole product thesis. Low severity is a feature: the gallery needs a range, and this one brings in the FT Visual Vocabulary.
Charts: bad = categorical bars in alphabetical order. Fixed = same bars sorted by value.
Citations: schwabish, ftvisvocab, swd, fewpies.
5. The Reversed Axis — Misleading Scales, severity 5
Poke: "Down means up. You flipped the axis and the trend flipped with it."
The famous one. High drama, trivial to author (scale: {reverse: true}), and it
slots into an existing category. Ranked below the others only because the canon
support overlaps almost entirely with sins we've already published.
Citations: callingbullshit, howchartslie, junkcharts.
6. Squashed and Stretched — Misleading Scales, severity 3
Poke: "Same data, twice as tall. Aspect ratio is not a styling choice."
Cleveland's banking-to-45° argument: the identical series reads as a crisis or a
plateau depending on the box you draw it in. Cheap to author — one dataset, two
width/height pairs — and a rare sin where the bad chart contains no false
statement at all.
Citations: clevelandmcgill, howchartslie, wilke.
Not yet buildable
Real sins, but our pipeline can't prove them honestly today. Recorded so we stop rediscovering them:
- 3D bars / gratuitous perspective and chartjunk (Tufte, Few) — Vega-Lite won't render the sin, and a screenshot violates the same-pipeline rule that makes the before/after credible.
- Counts on a choropleth instead of rates (Cairo's set-piece) — needs TopoJSON geometry and a build-time data dependency we don't have yet. Strong candidate the moment we take that on.
- Rainbow color scales for continuous data (Wilke, Munzner) — buildable, but
the fixed chart needs a sequential ramp validated on
--chart-canvasin both themes. Do the palette work first (datavizskill + its validator), then write it.
Conventions reminder
Anything picked up from this list still follows CLAUDE.md: the poke names the
general sin and never our sample's numbers, both charts share one dataset, and
the fixed chart obeys every rule the site preaches.