Methodology
“Wokeness” is not a measurable physical quantity. What follows is a definition applied consistently, with the workings shown — not a discovery of anyone’s wokeness.
What is measured
A social-progressivism axis (identity, equity, inclusion, social justice): 0 traditionalist · 50 neutral · 100 progressive. Close to GAL–TAN, not general left–right. Descriptive, not evaluative.
1. Scoring bills
Title and CRS summary match a published lexicon of 139 terms across 8 dimensions.
Valence
Matched concepts get a clause-based cue verb (promote vs restrict), with negation honoured. In “to prohibit federal funding of X”, nearest-word rules would score funding, not prohibition — so the scorer uses first-in-clause.
Promoting: protect, expand, establish, require, authorize, fund, funding, guarantee, ensure, strengthen… | Restricting: prohibit, ban, repeal, restrict, prevent, eliminate, defund, terminate, rescind, block…
Framing & topics
Framing terms (“illegal alien”, “systemic racism”) fix sign by presence. CRS subjects raise confidence without direction. Procedural vehicles and omnibus bills are excluded.
Votes & panel
Substantive roll calls add a vote-derived estimate from yea/nay coalitions, blended with the text score. Optionally, eight simulated voters score per-issue medians (--panel-scores); those feed legislator topic positions and factions.
2. Scoring legislators
Per topic only — no single headline score. Votes on panel-scored bills aggregate into topic positions. Only substantive roll calls count (passage, cloture on the measure, concurrence, nominations — not amendments or motions to proceed).
The admission whitelist was written for House phrasing; Senate forms like “On the Joint Resolution” were missing until recently and discarded most CRA votes.
3. Why no composite score
An earlier rubric + latent blend was circular (latent ≈ fitted rubric, ~1.8 pt mean difference) and validated mostly by party (r ≈ 0.98 either way). What survives is within-party agreement: r = 0.85 among Democrats, 0.48 among Republicans.
4. Factions
k-means on per-topic issue scores within each party×chamber segment — never the headline score. Evidence shrinks thin estimates toward the segment centre; columns are not z-scored. k chosen by silhouette; minimum group size 8.
Names come from editorial archetypes matched in rank order. Caucus membership is a post-hoc check only, not a clustering input.
5. Quiz
20 real bills, round-robin across topics. Answers use the same per-topic formula as legislators. Nearest members and faction matches require evidence on ≥3 shared topics; thin evidence is shrunk toward neutral.
Dimensions & weights
| Dimension | Weight | Share | Terms | Covers |
|---|---|---|---|---|
| Racial equity & civil rights | 1.00 | 13% | 23 | Anti-discrimination enforcement, voting rights, affirmative action, reparations, disparate-impact remedies. |
| LGBTQ+ rights & gender identity | 1.20 | 16% | 16 | Sexual-orientation and gender-identity protections, gender-affirming care, trans participation in sport, recognition of same-sex marriage. |
| Immigration & border | 1.00 | 13% | 22 | Pathways to status, asylum and refugee protection, enforcement, detention, deportation, border security. |
| Gender & reproductive rights | 1.10 | 15% | 18 | Abortion access, contraception, IVF, pay equity, pregnancy discrimination, gender-based violence. |
| Speech, expression & education | 1.10 | 15% | 17 | DEI programmes, curriculum content, critical race theory, book access, campus speech, academic freedom. |
| Criminal justice & policing | 0.90 | 12% | 18 | Sentencing reform, police accountability, incarceration, the death penalty, re-entry and record clearing. |
| Climate & environmental justice | 0.70 | 9% | 13 | Emissions policy, environmental-justice targeting, fossil-fuel regulation, green transition. |
| Economic redistribution & labor | 0.50 | 7% | 12 | Adjacent to the axis rather than core to it, and weighted low for that reason: it correlates with social progressivism without being the same construct. |
Weights live in packages/core/src/rubric.ts. Change them, re-run, every number updates.
Limitations
- Rubric = opinions. Different terms/weights → different numbers.
- Recorded votes only. Sponsorship, committee work, and blocked bills are invisible.
- Votes ≠ beliefs. Procedural and strategic motives abound.
- Summaries, not full text. Short titles can mislead.
- Intervals understate uncertainty. They cover vote sampling, not rubric error.
- Precision ≠ accuracy. Treat adjacent orderings as noise.
- Quiz = 20 bills. A rough placement, not a career verdict.
- Factions = 8-topic lens. Real patterns in that space, not full ideology.
Sources
- unitedstates/congress-legislators
- clerk.house.gov Electronic Voting System
- senate.gov Legislative Information System
- govinfo.gov BILLSTATUS bulk data
- govinfo.gov BILLSTATUS bulk ZIP archives (cosponsorship)
- unitedstates/congress-legislators committee-membership-current
- legislator issue scores from panel-scored bill votes
- party-relative topic vectors, thin evidence shrunk toward the segment centre
- k-means++ seeded from faction archetypes in the same coordinate space
- k chosen by silhouette, rejecting splits that leave a faction under 8 members
- names matched to Progressive Left, Blue Dog, Blood and Soil, etc.
All public, no API key. Dataset generated 2026-08-20 · 1,535 roll calls. Full detail in docs/METHODOLOGY.md.