Skip to content

Add labour-burden widget: historical tax/rent/corvée burden comparison#53

Open
jbeshir wants to merge 1 commit into
mainfrom
widget/labour-burden
Open

Add labour-burden widget: historical tax/rent/corvée burden comparison#53
jbeshir wants to merge 1 commit into
mainfrom
widget/labour-burden

Conversation

@jbeshir

@jbeshir jbeshir commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Stacked-bar comparison of direct tax, rent, and forced/unpaid labour burden as a share of output across 9 historical era/region buckets (Late Roman colonus through Industrial-Revolution Britain), with a toggleable modern-UK reference bar (OECD Taxing Wages + ONS/English Housing Survey).
  • Every one of 27 data segments carries a named economic-history citation (Jones, Kanzaka, Blum, Goubert, Wang Yeh-chien, Thomas C. Smith, İnalcık, O'Brien, etc.) and a low/central/high uncertainty range rather than a false-precise point estimate; three thin brackets are explicitly flagged as low-confidence rather than invented.
  • Sourcing is reachable in 1-2 clicks from the chart itself: per-segment keyboard-focusable detail cards, a per-bucket "Why contested?" caveat link, and a collapsible methodology + full 27-source bibliography panel — built deliberately serious/restrained in tone for a skeptical audience, per the brief.
  • Stack: Preact core + a hand-authored SVG chart (d3-scale) — a disclosed, justified deviation from the repo's Observable Plot default, needed for the per-segment keyboard controls and custom uncertainty-whisker overlay. Data mode: static (committed, cited dataset — no live API exists for this data).
  • Hostname: labour-burden.widgets.beshir.org. Bundle ~27KB gzip JS + ~2.2KB gzip CSS.

Pipeline / gates

  • Built via a demesne-orchestrated pipeline: research (sourced dataset) → implement → validate gate (build + validate-widgets.mjs, OK) → first-paint gate (OK) → journey gate (24 cells: 4 states × 3 viewports × 2 schemes — one real defect found and fixed) → five-lens parallel UX review (4 blocking findings: whisker legibility, two dark-mode APCA Lc75 contrast failures, colour-blind-unsafe segment hues — all fixed) → a regression from the first fix round (enlarged mobile tap targets intercepting Playwright's actionability check) found via re-running the journey gate and fixed directly → clean re-validate/re-render/re-journey (24/24 cells, 0 console/page errors, 0 overflow) → final review verdict PASS.
  • One repo-wide gap noted but out of scope here: scripts/journey.cjs's accessibility-tree capture (page.accessibility.snapshot()) returns null on every state, likely across all widgets — worth a separate fix.

Test plan

  • npm run build + node scripts/validate-widgets.mjs pass
  • First-paint gate (#widget-ready) passes
  • Journey gate: 24/24 cells captured, 0 console/page errors, 0 horizontal overflow
  • Five-lens UX review blocking findings fixed and re-verified
  • Final review PASS
  • check-widgets.yml CI on this PR
  • Manual look at the render gallery before merge

🤖 Generated with Claude Code

Stacked-bar comparison of direct tax, rent, and forced/unpaid labour as a
share of an ordinary person's output across nine historical societies (Late
Roman colonus through Industrial-Revolution Britain), with a toggleable
modern-UK reference column. Every segment carries a low/central/high range
and a named economic-history citation, reachable via a click-through detail
card and a full methodology & sources panel, since the audience for this
kind of comparison is exactly the readers most likely to ask where a number
came from.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant