Help

MethodologyMeasuresConcept

Political lean scoring

How a bill's economic and social lean is scored, and how a legislator's is worked out from their votes and sponsorships.

Every lean in CapitolMath uses one 1–5 scale: 1 = conservative, 3 = neutral, 5 = liberal. It's measured separately on an economic axis and a social axis, so a bill or a legislator can be economically conservative and socially neutral.

Bill scores#

Each bill carries an economic_score and a social_score on the 1–5 scale. They place the bill's content on the conservative↔liberal spectrum for each axis.

A placeholder bill has no scores. Its text only states an intent to legislate ("It is the intent of the Legislature to enact legislation relating to …") and changes no law, so there's no content to place. It's scored once its text is filled in, from the filled-in bill rather than the placeholder.

Legislator scores#

A legislator's economic_score and social_score come from what they actually did — their recorded floor votes and the bills they sponsored — not from their party. It's a revealed-preference measure, worked out for each axis like this:

  1. Clearly-leaning bills only. A bill counts on an axis only if its score is ≤ 2.5 (clearly conservative) or ≥ 3.5 (clearly liberal). Near-neutral bills carry little signal, and counting them pulls every score toward the middle.
  2. Direction. On each counted item, the member sided liberal (+1) if they voted yes on a liberal bill or no on a conservative one, and sided conservative (−1) otherwise. Sponsoring a bill counts as a yes.
  3. Weighting. Clearer signals count more. A floor vote weighs 5 when the bill scores above 3.5 or below 1.5, 2 for a moderate score (1.5–2 or 3–3.5), and 0.5 for a centrist one (2–3). Each sponsored bill weighs 10.
  4. Lopsided votes are dropped. A roll call decided by 90% or more of one side doesn't separate a conservative from a liberal, so it's left out.
  5. Final score. The weighted average of the ±1 directions is mapped back onto the 1–5 scale.
score = 3 + 2 × ( Σ direction × weight ) / ( Σ weight )

direction = +1 (sided liberal) or −1 (sided conservative)
result:  −1 → 1.0 (most conservative) · 0 → 3.0 (neutral) · +1 → 5.0 (most liberal)

The two axes are computed independently. A member with too few qualifying votes has no score.