Methodology
PolityLens
How the numbers are built

Scoring Methodology

Last updated: July 2026 · pipeline updated nightly

Every number on PolityLens is reproducible from public, primary-source data. No black boxes. No editorial judgment baked into the math.

i

All metrics are pre-computed nightly from official government sources and stored in our database. Nothing is pre-labeled “good” or “bad.” Scores are raw percentages, not adjusted, curved, or weighted for political significance. Federal metrics are built from congressional roll calls and official records; state metrics come from state legislatures through direct primary-source pipelines.

Live database coverage
35,302
Roll Call Votes
House + Senate · Congress 101–present
291,533
State Roll Calls
CA · TX · NY, official records
13,801
Members Tracked
12,768 federal + 1,033 state
252,541
Federal Bills
Congress 101–present
1,017,928
LDA Filings
Lobbying disclosures 2013–present
6,574
SAPs Indexed
Presidential positions, Congress 99–present
10,921
Disclosures
Personal financial filings
119th
Current Congress
2025–2026 · updated nightly
01

Attendance

The percentage of recorded roll call votes in a Congress where the member cast a substantive position. A member “attends” a vote by casting a Yea, Yes, Aye, Nay, or No. Everything else (Not Voting, Present, or Absent) is counted as missed. “Present” is intentional non-participation and is treated as missed, not attended.

Attendance %=votes casttotal roll calls×100\text{Attendance \%} = \dfrac{\text{votes cast}}{\text{total roll calls}} \times 100
Counts as attended
Yea · Yes · Aye · Nay · No
Counts as missed
Not Voting · Present · Absent
i

The “recent” figure. The headline attendance number on a member’s profile is a rolling recent-participation rate covering roughly the last 90 days of the current Congress, so it reflects how they are voting now rather than their full-term average. The full-term rate and the month-by-month trend are shown separately.

02

Alignment

Three related measures of how often a member votes in line with a reference point: their own party, the President’s stated position, or their Governor’s action. Each counts only substantive votes.

Party-Line Alignment

The percentage of substantive votes where the member voted with the majority of their own party, broken into three mutually exclusive categories that always sum to 100%.

With Party

Matched their party’s majority direction.

Cross-Party

Broke from own party and matched the opposing majority.

Rebelling

Broke from own party and against the opposing party.

Party alignment %=votes with partyvotes analyzed×100\text{Party alignment \%} = \dfrac{\text{votes with party}}{\text{votes analyzed}} \times 100
Rebelling % = 100 − With Party − Cross-Party
i

This measures agreement with your own party’s majority, not the academic “party unity” score. The Congress pages report a separate figure: the share of roll calls where the two parties’ majorities opposed each other.

i

Procedural votes are excluded. Cloture motions, motions to proceed, previous-question votes, and similar procedural roll calls are almost always whipped along party lines regardless of a member’s policy views, so counting them would inflate every score. Only substantive floor votes, amendments, nominations, and resolutions are counted (an exact-match list of procedural question types; House rules resolutions are also excluded). Procedural votes still appear on each bill’s detail page.

Key Votes filter. On the voting-record page, “Key Votes” filters to final-passage roll calls by matching question text: “on passage,” “on final passage,” “on the bill,” “bill passed,” “on motion to concur,” or “on conference report.”

Presidential Alignment

The percentage of votes on bills where the White House issued a Statement of Administration Policy (SAP), where the member voted in agreement with the President’s stated position. Only bills where the President took an explicit position are counted. This does not measure overall agreement with the President’s agenda.

How SAP positions are classified. Each SAP is read by our AI analysis pipeline (section 7) and assigned one position on a support-to-oppose scale. A member’s Yea counts as agreement on a support-side SAP; a Nay counts as agreement on an oppose-side SAP.

Strongly supportsSupportsOpposesStrongly opposesVeto threatVetoNo clear position (excluded)
Presidential alignment %=aligned votestotal SAP votes×100\text{Presidential alignment \%} = \dfrac{\text{aligned votes}}{\text{total SAP votes}} \times 100

Coverage: Congress 99–present. Congress 99–100 SAPs are loaded but the bills for those congresses are not yet in the database, so alignment is null for members who served only then. 6,574 SAPs indexed.

Governor Alignment

The state equivalent of presidential alignment. A governor issues no SAPs, so we use their signing or veto instead: for bills that reached the governor’s desk, a member’s floor vote is compared to the governor’s action. A Yea on a bill the governor signed counts as agreement, and a No on a bill the governor vetoed counts as agreement.

Governor alignment %=votes matching the governor’s actiondesk bills voted on×100\text{Governor alignment \%} = \dfrac{\text{votes matching the governor\textquoteright s action}}{\text{desk bills voted on}} \times 100

Coverage: states with a completed pipeline (currently California, Texas, and New York). New states are added in order of population, so the largest share of Americans is covered first. 291,533 state roll calls indexed.

i

A note on the limits. Because a governor’s signing or veto comes after the vote rather than as a position stated in advance (as a SAP is), this reflects whether a member landed on the same side as the governor, not whether they followed a stance they knew going in. Read it as a close analog to presidential alignment, not an identical measure.

i

State legislators are covered by direct primary-source pipelines built from official legislature records; their attendance and party-line alignment use the same formulas as the federal metrics.

03

Monthly Engagement Trend

A month-by-month attendance chart for a Congress term, with a 3-month rolling average trend line. Recess months with no roll calls appear as gaps, not zeros, so recess does not artificially deflate a member’s score.

Monthly score=votes in monthroll calls in month×100\text{Monthly score} = \dfrac{\text{votes in month}}{\text{roll calls in month}} \times 100
Rolling average = mean of the current month plus the prior two months
i

New members seated mid-Congress (via special election or appointment) have their first partial month scored against all roll calls held that month, not just those after they were sworn in, so their first month reads lower.

04

Lobbying

Lobbying Alignment

For each organization that filed disclosures under the Lobbying Disclosure Act, this measures how often a member’s votes on bills that organization lobbied aligned with the organization’s lobbying activity.

Eligibility An organization is shown only if the member voted on at least 5 bills that the organization also lobbied in the same Congress. This filters out coincidental single-vote matches.
Alignment score %=aligned voteseligible bills×100\text{Alignment score \%} = \dfrac{\text{aligned votes}}{\text{eligible bills}} \times 100
Ranking Score = alignment score × total lobbying spend
i

LDA filings disclose that an organization lobbied a bill, not which side it took. This score uses a common proxy: lobbying a bill signals wanting it to pass, so a Yea is counted as aligned. That assumption can invert for an organization lobbying to defeat a bill. Read it as vote co-occurrence, not proof of influence. Every alignment links to the underlying filings.

Source: Senate LD-2 filings. Coverage: Congress 113–present (2013–present). 1,017,928 filings processed.

The Lobbying Effect

A Congress-level view of the same data: across an entire term, this compares how often bills that were lobbied became law with how often bills that were not lobbied became law. The multiplier shown on the Inside Congress page (e.g. 5.3×) is simply the ratio of those two enactment rates.

Lobbying effect=lobbied bills enacted %unlobbied bills enacted %\text{Lobbying effect} = \dfrac{\text{lobbied bills enacted \%}}{\text{unlobbied bills enacted \%}}
Enacted % = bills that became law ÷ bills in that group
i

Both rates are low to begin with, since most bills never become law. And this is a correlation, not proof of causation: lobbyists concentrate on bills already likely to move, so the gap partly reflects which bills attract lobbying, not lobbying making them pass.

05

Campaign Finance

Campaign contribution data comes directly from Federal Election Commission (FEC) filings. PolityLens displays what was reported, with no added inference or categorization. Shown per election cycle:

  • PAC contributions to the candidate’s principal campaign committee
  • Top donor employers (individual contributions grouped by the donor’s reported employer)
  • Small-dollar vs large-dollar split and the individual-vs-PAC breakdown
  • Money raised and spent per cycle, and cash on hand
  • Outside spending: independent expenditures and electioneering communications reported to the FEC
!

Note on outside money. Outside spending is shown where it is disclosed to the FEC. Contributions routed through 501(c)(4) organizations not required to be disclosed (“dark money”) do not appear in any filing and cannot be captured here.

06

Financial Disclosures

New

Members of Congress file annual personal financial disclosures listing assets, liabilities, earned income, gifts, and travel. PolityLens surfaces these as filed.

Disclosed Assets Over Time

Asset values are reported as ranges on the form, so we sum the lower bound of each disclosed asset to show a conservative floor on disclosed assets, tracked year over year.

!

This is disclosed assets, not net worth. Liabilities are deliberately not subtracted: the form omits a member’s primary residence from assets but lists its mortgage as a liability, so subtracting would understate holdings. The figure includes household holdings (spouse and dependent) as reported.

Source: official House and Senate financial disclosure filings under the Ethics in Government Act. 10,921 filings indexed.

07

AI-Generated Summaries

PolityLens uses AI to translate legislation and executive orders into plain English. The goal is comprehension, not evaluation. The model is instructed to describe what a document does, never whether it is good or bad policy, constitutional, or likely to succeed.

Every summary includes a plain-English overview (what changes from the status quo, who is affected and how, what remains uncertain) and a list of concrete key actions. Executive-order summaries additionally include the cited legal authority and an estimated factual scope; bill summaries include a topic category and, where stated in the text, estimated cost and geographic scope. The specific fields vary by document type.

i

Prohibited. The model is instructed not to label outcomes positive, negative, or mixed, and not to judge whether a law is good, bad, or constitutional. It describes what the document directs. The reader draws their own conclusions.

How large bills are handled

Bills over 50,000 characters are split by TITLE markers, each title analyzed independently, then an aggregate summary is produced. Analysis is derived solely from official source text (Congress.gov for bills, the Federal Register for executive orders). No news articles, op-eds, or third-party analysis are provided to the model.

Disclosure on every summary

Every summary displays the model and the date it was produced. The same pipeline also produces plain-English summaries for Statements of Administration Policy and state bills.

Model: gemini-2.5-flash · 22,470 bills + 1,532 executive orders analyzed

Known Limitations

  • Voice votes are excluded: votes not recorded by individual member name cannot be attributed and are not counted toward any metric.
  • Congress 99–100 presidential alignment is null: SAPs are loaded but the bills for those congresses are not yet in the database, so no vote-to-SAP matches can be made.
  • Lobbying alignment is a co-occurrence proxy: LD-2 filings disclose that an organization lobbied a bill, not which side it took. A Yea is counted as aligned, which can invert for an organization lobbying to defeat a bill.
  • Financial disclosures show a floor on disclosed assets, not net worth: liabilities are deliberately not subtracted, and the figure sums the lower bound of each reported range including household holdings.
  • New members seated mid-Congress: their first partial month attendance is scored against all roll calls that month, not just those held after they were sworn in.
  • Dark money: outside spending is shown where disclosed to the FEC, but 501(c)(4) money not required to be disclosed does not appear in any filing and cannot be captured.
  • AI summaries reflect the document text at the time of analysis. Bills amended after analysis are not automatically re-analyzed; the analysis date is shown on every summary.

Data Sources

  • U.S. House Clerk XML: Official roll call vote records, Congress 101–present (22,387 roll calls)
  • U.S. Senate XML: Official roll call vote records, Congress 101–present (12,915 roll calls)
  • Congress.gov API: Member profiles, party affiliation, sponsored legislation, committee assignments, and bill text
  • White House OMB / American Presidency Project: Statements of Administration Policy, Congress 99–present (6,574 SAPs)
  • Federal Register API: Executive orders and presidential documents, Reagan–present. Full text used for AI analysis.
  • House & Senate financial disclosures: Personal financial filings under the Ethics in Government Act (10,921 filings)
  • Senate LDA Database: Lobbying Disclosure Act LD-2 filings, 2013–present (1,017,928 filings)
  • FEC.gov bulk data + API: Campaign finance: PACs, employers, individual splits, cash on hand, and outside spending
  • State legislatures (official records): California, Texas, and New York, via direct primary-source pipelines built from official legislature data
  • U.S. Census Geocoder: Congressional and state district identification from a street address
All formulas are deterministic: given the same input data, PolityLens always produces the same output.
Methodology last updated: July 2026 · Data pipeline updated nightly