Skip to content

Methodology

This site publishes the recorded legislative record and grades one measure — attendance — against fixed thresholds the site's owner approved (see Grades, below). Every figure traces to an official source, and every grade applies the same published cutoffs to every member of both chambers; nothing is written, summarized, or characterized by an automated process. Each metric below states its exact formula, what it includes and excludes, and its source — the same text that documents the code that computes it.

Grades

The site grades one measure so far — attendance — with more to come. A grade is a fixed judgment against lines the site's owner approved, applied identically to every member of both chambers; a member's grade never changes because of what other members do. The overall grade that would combine categories is not published yet — it awaits its formula.

Attendance

A — Strong attendance
139
99% or above
B — Good attendance
233
97% to under 99%
C — Fair attendance
127
95% to under 97%
D — Weak attendance
89
90% to under 95%
F — Poor attendance
40
below 90%

Members with fewer than 50 eligible roll calls are not graded off a thin record. Non-voting delegates are not graded on attendance either: they cannot vote on final passage, so their eligible set (about a third of roll calls) is not comparable to a full member's. Ratified 2026-08-13.

Set aside (11)

Metrics

Missed-vote context

For each roll the member missed (Not Voting), the member's own participation on the same calendar day: how many recorded position rolls occurred in their chamber that day (`same_day_total`) and how many of those the member cast (`same_day_cast`). This reports the VOTE RECORD ONLY — it does not infer whether the member was physically present or absent; a member may miss a roll while in the building, and the site never claims otherwise. Source: data/votes.

Attendance

Share of eligible roll calls on which the member recorded any position.

Formula: cast / eligible, as a percentage. `eligible` = every roll call the member was present-and-covered for (their chamber and Congress), excluding Speaker-election / candidate-surname rolls, which carry no yea/nay position. `cast` = votes of Yea, Nay, or Present. `missed` = Not Voting. A member has exactly one recorded position per eligible roll (coverage is verified), so the denominator is unambiguous. pct is null when the member has no eligible rolls (a member newly seated before their first vote) — never a fabricated 0%. Source: the roll-call record (data/votes).

Cosponsored bills enacted

Of the bills the member cosponsored in the covered Congresses, the share that became law under their own bill number (official latest action "Became Public Law").

This is a WEAK signal about the member: a cosponsor is one of many names on a bill and does not control whether it advances, so this rate reflects the fate of the bills a member lent their name to far more than the member's own influence — and, like the sponsored enacted rate, it understates influence because text folded into another vehicle is not attributed here. pct is null when the member cosponsored nothing. Source: data/legislation.

Cosponsor-to-vote gap

A factual list — never a score — of two adjacencies between a member's cosponsorships and their floor record, each linking to the underlying record:

* cosponsored_and_voted_nay — the member was a cosponsor of a bill and voted Nay on its passage. (The data establishes cosponsorship and a Nay passage vote; it does not establish which came first, so no sequence is claimed.) * cosponsored_no_floor_action — the member cosponsored a bill in a Congress that HAS ENDED, and that bill never received any recorded floor vote. Bills from the ongoing Congress are never listed (a bill cosponsored in the first session routinely gets its vote in the second, so listing mid-Congress would be a false "went nowhere").

Read this list with its base rate: MOST introduced bills never receive a floor vote in any Congress, and floor scheduling is controlled by chamber leadership, not by a bill's cosponsors. This list is therefore expected to contain most of any member's cosponsorships; it is provided for inspection, not as an indicator about the member, and must always be shown against its denominator (of N bills cosponsored), never as a bare count or a headline; no conclusion is drawn from the adjacency. Source: data/legislation (cosponsorships) + data/votes (rolls).

Bills cosponsored

Count of bills and resolutions the member cosponsored (added their name to, and had not withdrawn) in the covered Congresses. Floor amendments are not counted. Source: the member's cosponsored-legislation record (data/legislation).

Cross-aisle support

Of the final-passage bills sponsored by the OTHER major party that the member voted on, the share they voted Yea.

"Final passage" is the passage and veto-override rolls (a Yea on a veto override enacts the bill over the President's veto — the same direction as a passage Yea); amendments, nominations, and procedural motions are excluded, as are rolls with no bill. "The other party" is the major party opposite the member's own party on the roll's date; the bill's party is its sponsor's party on that same date (data/bills carries no introduced date, so the roll date is the one consistent reference). `opposing_considered` counts the opposing-party final-passage bills the member cast Yea or Nay on (Present/Not Voting are not a position on the bill); `opposing_yea` counts the Yeas among them; pct = 100 * opposing_yea / opposing_considered, null when opposing_considered == 0 — never a fabricated 0. A member with no major-party affiliation (independent) has no single opposing party, so nothing is counted and pct is null.

This measures support for the other side's bills WHEN THEY REACH THE FLOOR — it is NOT a complete bipartisanship score and must never be labelled one. The majority party controls which bills get a final-passage vote, so the pool of "opposing-party bills" differs by party (and tends, for the minority, to be the less-contested measures leadership allows up); read it as a floor-vote fact, with the denominator always shown, not a character verdict. Source: data/votes (positions) + data/bills (each bill's sponsor) + the roster (each sponsor's party). A voted-on bill absent from data/bills raises rather than silently shrinking the denominator (mirrors the orphan-vote guard in _load).

Enacted rate

Of the bills the member sponsored in the covered Congresses, the share that became law UNDER THEIR OWN BILL NUMBER (official latest action "Became Public Law"). This understates a member's legislative influence: much enacted text moves by being folded into another vehicle (an omnibus, an appropriations act, the NDAA), which this figure cannot and does not attribute. pct is null when the member sponsored nothing. Source: data/legislation.

Named-measure mismatch

A factual list — never a score, adjacency language only — of cases where a member made a SPECIFIC public statement about a named measure and their own recorded passage vote on that measure took the opposite side.

A statement qualifies only when the owner has curated it to specificity level 2 or 3, assigned a stance (support or oppose), AND named a measure that resolves to a bill id (the D9 pairing rule; see paired_bill_ids). support means the member's expected passage vote is Yea, oppose means Nay. For every passage-class roll the member cast Yea or Nay on that bill, an entry is emitted when the recorded position is the OPPOSITE of the stated one.

Deliberately excluded (never guessed at): statements with no owner-assigned stance (stated_position is null), measures that do not resolve to a bill id, and every non-passage vote class (a Nay on a procedural motion is not a vote against the bill). Each entry carries the statement, the roll call, and both dates so a reader can check the record directly; NO sequence or motive is claimed — the statement and the vote are simply placed adjacent, with no conclusion drawn. A statement whose archived source no longer resolves is unpublishable and is excluded here too, so this list never cites a statement the site itself withholds. This is empty until qualifying statements are curated (content = H8). Source: data/statements (stance + pairing) + data/votes (passage positions).

Yea / Nay share

Of the positions the member actually cast (Yea, Nay, or Present — Not Voting is absence, and the attendance metric owns it), the share that were Yea and the share that were Nay.

This is NOT an approval measure and must never be labelled as one: it depends entirely on what the chamber was asked to vote on — a chamber that spends a session on measures a member's side favours produces a high Yea share for reasons that have nothing to do with the member. yea_pct = yea / cast, nay_pct = nay / cast, where cast = Yea + Nay + Present across every eligible roll. Both pct fields are null when the member cast nothing. Source: the recorded positions (data/votes).

Bills sponsored

Count of bills and resolutions the member sponsored (was the primary sponsor of) in the covered Congresses. Floor amendments are not counted (they are not bills). Source: the member's sponsored-legislation record (data/legislation).

Bills and floor votes

The dashboard headline — 97% of the bills members introduced never got a floor vote — counts every distinct bill sponsored by a covered member across the 118–119th Congresses: 39,154 bills in all. A bill is counted as having reached a floor vote only if it appears in our roll-call data as the subject of a recorded vote; 1,040 did, so 38,114 did not. Most of those never left committee. The count spans every measure a member can sponsor — House and Senate bills and joint, concurrent, and simple resolutions; limiting it to the bills that can actually become law (House and Senate bills and joint resolutions) leaves the share essentially unchanged.

“Floor vote” here means a recorded roll-call vote, and that precision matters: a bill can still pass the floor by voice vote or unanimous consent, which leave no roll call. That is not a rare edge case — of the 410 of these bills that became law, 261 did so without ever appearing in our roll-call data. So the figure describes recorded floor votes, not whether a bill received any consideration at all.

This is a plain count of the public record — no threshold, no grade, and no member is singled out. It is derived from the committed dataset, and a continuous-integration check re-derives it from that data on every change; a number that could not be reproduced from the published data would not appear here.

What a vote decided

A roll call's question is the chamber's own wording, and that wording is procedural. “On Motion to Table” is one of the most common: a Yea on a motion to table sets the matter aside without the chamber ever voting on its merits. Read without the procedure, such a row looks like a vote in favour of the thing that was set aside.

So each vote row carries one plain-English line saying what a Yea and a Nay on that motion did. Those lines come from the fixed table below, matched against the question text, first match wins. They are written once, by hand, and they are the same line for every member and every bill. No line is generated at build time, and none is produced by an automated summary of the vote. A question the table does not cover gets no line at all rather than a guess.

The lines describe the procedure, never a member's reason for voting as they did, and they state no threshold the record does not carry: the Senate's cloture requirement differs between legislation and nominations, so no number is printed there, while suspension of the rules carries the same two-thirds requirement every time it is used, so that one is stated.

Each motion type and the line published on its vote rows
Motion The line published on the row
table_reconsider Tabling a motion to reconsider closes off a second vote on a decision the chamber has already taken. A Yea makes the earlier vote final; a Nay leaves it open to being reconsidered.
Motion to table Tabling disposes of the matter without a vote on its merits — in practice, it kills it. A Yea kills it; a Nay keeps it alive.
Motion to waive a rule Sets aside one of the chamber's own rules that would otherwise stop the measure being considered. A Yea sets the rule aside; a Nay leaves it in force.
Passage over the President's veto A vote to enact the bill over the President's veto, which takes two thirds of those voting. A Yea enacts it; a Nay leaves the veto standing.
Cloture Cloture limits further debate so the chamber can reach a vote on the matter itself. A Yea limits debate; a Nay leaves it open.
Ordering the previous question Ordering the previous question ends debate and amendments and brings the pending matter to an immediate vote. A Yea ends debate; a Nay keeps it open.
Motion to recommit A motion to recommit sends the bill back to committee instead of holding the final vote now. A Yea returns it to committee; a Nay keeps it on course for the final vote.
Motion to discharge a committee A discharge motion takes a measure away from a committee that has not acted on it and brings it to the floor. A Yea brings it to the floor; a Nay leaves it in committee.
Conference negotiation A vote about the negotiation that turns the House and Senate versions into one bill. It does not change the bill's text.
Motion to commit or refer Hands the measure to a committee rather than voting on it now. A Yea sends it to committee; a Nay keeps it on the floor.
Motion to reconsider Asks the chamber to vote again on something it has already decided. A Yea reopens that decision; a Nay leaves it standing.
Suspension of the rules Suspension of the rules is a fast route for a measure: no amendments, limited debate, and two thirds of those voting must agree. This is the vote on the measure itself. A Yea passes it; a Nay blocks it.
Motion to concur in the other chamber's version Accepts the other chamber's changes to the bill. A Yea agrees to their text; a Nay does not.
Motion to proceed Decides whether the chamber takes the measure up at all. A Yea begins consideration; a Nay leaves it off the floor.
Confirmation of a nomination A vote to confirm someone the President nominated. A Yea confirms them; a Nay does not.
Amendment A vote to change the text of the measure, not a vote on the measure itself. A Yea makes the change; a Nay leaves the text as it stands.
Motion to adjourn Ends the day's session. It is not a vote on legislation.
Conference report The vote on the single version of the bill that House and Senate negotiators agreed on. No amendments are possible at this point. A Yea adopts that version; a Nay does not.
Passage The final vote on the measure itself. A Yea passes it out of this chamber; a Nay does not.
Agreeing to a resolution Two lines, chosen from the measure's own official title: a House resolution whose title opens “Providing for consideration of” sets the terms for debating another bill, and any other resolution is the vote on the resolution itself.
Point of order A ruling on whether the chamber's own rules allow what is pending. It is not a vote on the measure.
The chamber's own proceedings A vote on the chamber's own proceedings, not on legislation.

The table is matched in the order shown, so the outer motion always wins: a vote on a motion to table a motion to discharge a committee is a tabling vote, and a vote on cloture on a motion to proceed is a cloture vote.

Where the data comes from

Every figure on this site is derived from an official U.S. government record. There is no third-party rating, no editorial dataset, and no number typed in by hand. Each individual page links to the record behind it: a vote row links to the chamber's own roll-call page, a bill links to its page on congress.gov.

  • Bills, actions, members and nominations — the Library of Congress API at api.congress.gov, the machine interface to congress.gov.
  • House roll-call votes — the Clerk of the House, at clerk.house.gov.
  • Senate roll-call votes — the Senate's own published vote records at senate.gov.
  • Stated reasons for an absence — the Congressional Record, published by the Government Publishing Office. A member's words are quoted verbatim or the row says “No explanation on record.”
  • Photographs, committee seats and biographical identifiers — the public-domain unitedstates/congress-legislators project, whose photographs are Government Publishing Office portraits.

The full contract for each source — its licence, its exact URL pattern, and what this site does and does not collect from it — is in docs/data-contract.md in the repository.

Whose majority a member sided with

Each member page places every one of their recorded votes into one of four groups: with the Democratic majority only, with the Republican majority only, with both, or against both. The rule is mechanical and uses nothing but the roll call's own per-party tallies and the member's own position.

  • A party's majority side on a roll call is whichever of yea or nay that party cast more of. If a party splits exactly evenly, it has no majority on that roll call and nothing to side with.
  • The member sided with a party when their own position is that party's majority side.
  • A position of “present”, or an absence, takes no side, so those votes are placed in no group. Neither are roll calls with no yea/nay tallies at all — an election for Speaker, for instance, where members vote by name.
  • Only the Democratic and Republican tallies are read, because those are the two caucusing majorities. An independent member is placed by exactly the same rule as everyone else.

That is the whole calculation. No outside rating is used, nothing is modelled, and the four counts are the entire result — the site derives no single left-to-right score from them, because the record does not contain one.

Rankings & percentiles

Members are ranked within their own chamber — the House and the Senate are ranked separately, because their vote counts and calendars differ. For each metric a member's rank is their position when members are ordered by that metric's value, highest first, using standard competition ranking: members with the same value share a rank, and the next rank skips accordingly. A member's percentile is the percentage of the ranked members in their chamber whose value is lower than theirs, so the count behind every percentile is visible. The chamber mean and median, and the mean for each party (grouped by the member's current party), are published alongside. A rank is a position in an ordering, not a judgment; this layer attaches no label to it. Members with no value for a metric (for example, no enacted rate when they sponsored no bills) are not ranked on that metric. Non-voting House delegates are ranked only on bills sponsored, bills cosponsored, and enacted rate; they are left out of the attendance and party-unity rankings because they cannot vote on final passage, so those figures are measured over a different, smaller set of votes and are not comparable to a voting member's.

Attendance

House: 512 ranked · chamber average 96.54%, median 97.73% · party averages D 96.33%, I 99.21%, R 96.74% · 8 non-voting delegates not ranked here (cannot vote on final passage)

Senate: 118 ranked · chamber average 95.59%, median 96.95% · party averages D 96.1%, I 91.34%, R 95.4%

Bills cosponsored

House: 520 ranked · chamber average 599.45, median 520 · party averages D 770.8, I 300, R 433.8

Senate: 119 ranked · chamber average 659.97, median 651 · party averages D 801.22, I 625.5, R 532.78

Cross-aisle support

House: 512 ranked · chamber average 62.11%, median 55.78% · party averages D 48.97%, I 100%, R 74.75%

Senate: 114 ranked · chamber average 40.22%, median 42.48% · party averages D 31.86%, R 48.01%

Enacted rate

House: 518 ranked · chamber average 1.25%, median 0% · party averages D 0.66%, I 2.33%, R 1.82%

Senate: 118 ranked · chamber average 1.16%, median 0.66% · party averages D 0.87%, I 0.68%, R 1.46%

Bills sponsored

House: 520 ranked · chamber average 48.43, median 42 · party averages D 46.29, I 43, R 50.55

Senate: 119 ranked · chamber average 117.5, median 105 · party averages D 132.24, I 73.5, R 106.92

Sources

Vote categories

Every roll call is placed in one procedural category by a published rules table. The category describes the parliamentary action, never its merits.

Passage
A vote on final passage of a measure.
Amendment
A vote on a proposed change to a measure's text.
Procedural
A vote on how the chamber handles a measure (e.g. cloture, motion to proceed, previous question), not on the measure itself.
Nomination
A vote to confirm a nomination.
Veto override
A vote to override a presidential veto.
Other
A recorded vote that does not fall under the categories above; the official question text is shown verbatim.

Mississippi Legislature — sources & limits

The Mississippi state layer covers the 2026 Regular Session (1,725 roll calls, 174 legislators). It follows the same "publish the record, draw no conclusion" rules as the federal data, with these specific sources and limits:

Coverage: 118–119th Congresses · 3519 roll calls (federal). Mississippi: 2026 Regular Session · 1,725 roll calls.