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.

Votes reproduced
95.8%
by the 1-D model
Informative votes
1433
near-unanimous dropped
Bills on the axis
94/482
rest not relevant
Panel-scored bills
112
with topic breakdowns

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.

Factions
9
party × chamber
Silhouette
0.54
separation quality
Members clustered
526
of 537
PCA variance
93%
display map only

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

DimensionWeightShareTermsCovers
Racial equity & civil rights1.0013%23Anti-discrimination enforcement, voting rights, affirmative action, reparations, disparate-impact remedies.
LGBTQ+ rights & gender identity1.2016%16Sexual-orientation and gender-identity protections, gender-affirming care, trans participation in sport, recognition of same-sex marriage.
Immigration & border1.0013%22Pathways to status, asylum and refugee protection, enforcement, detention, deportation, border security.
Gender & reproductive rights1.1015%18Abortion access, contraception, IVF, pay equity, pregnancy discrimination, gender-based violence.
Speech, expression & education1.1015%17DEI programmes, curriculum content, critical race theory, book access, campus speech, academic freedom.
Criminal justice & policing0.9012%18Sentencing reform, police accountability, incarceration, the death penalty, re-entry and record clearing.
Climate & environmental justice0.709%13Emissions policy, environmental-justice targeting, fossil-fuel regulation, green transition.
Economic redistribution & labor0.507%12Adjacent 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

Sources

All public, no API key. Dataset generated 2026-08-20 · 1,535 roll calls. Full detail in docs/METHODOLOGY.md.