Skip to content

member_votes

Member vote positions

One row per member's position on one roll call. position keeps the publisher's own word (the Clerk spells both Aye/No and Yea/Nay) and position_normalized carries the fold, so a count and a quotation are both answerable. All columns are stored as VARCHAR.

Coverage. Sampled, and accumulating. One row per member per roll call in roll_call_votes, so it inherits that table's both-chambers scope, per-run cap and skip-what-is-already-held behavior exactly. (measured 2026-09-28)

Data quality. House rows with state XX are the non-voting delegates and the Resident Commissioner, as the Clerk marks them. The Clerk marks them only on amendment votes and motions in committee, so leave them out when ranking voting Representatives. A member who died before a term began can appear as Not Voting on its opening quorum call, as the Clerk's file lists them. One bioguide_id can carry more than one spelling of member_name; group by bioguide_id. The Clerk's files of 1990-2002 (the 101st-107th Congresses) name no member by bioguide id: their rows key name: plus the Clerk's label (name:Jones (NC)) with bioguide_id NULL, and that key identifies the row within its roll call, not a person, since at least 21 labels of those years name two different members. member_vote_terms leaves such a row unresolved_member; no name is matched to a member. Senate rows carry the bioguide id resolved from their LIS id through members at the votes merge; a Senate row still NULL has a LIS id that members does not hold, or holds twice (unresolved_member). The Clerk lists the Speaker only on the roll calls the Speaker votes on; on the others the Speaker has no row at all, not a Not Voting row (Johnson, J000299, has no row on 54 of the 314 House roll calls of 2026, measured 2026-10-03), so an absence rate over roll calls does not apply to the Speaker. party is the label the publisher printed on that roll call, and a change of label starts on the roll call that first prints it: the Clerk prints Kiley (K000401) R through roll 95 (2026-03-18) and I from roll 96 (2026-03-19), while member_party_affiliations dates the change 2026-03-09. Use party for a split as the chamber recorded it, and member_party_affiliations for a party as of a date.

  • Parquet file: member_votes.parquet
  • MCP query_sql support: Configured; requires an available artifact.
  • Publication status: Not established by this schema page or its measurement date.
  • Row count: Not stated here; the MCP describe_table reply gives the live count under publication.
Column Type Description
vote_id VARCHAR The roll call this position belongs to, as roll_call_votes keys it.
congress VARCHAR The numbered Congress the roll call belongs to.
chamber VARCHAR house or senate.
session VARCHAR The session number within that Congress.
roll_number VARCHAR The roll-call number within that session.
member_key VARCHAR The file-stated id: lis: plus the LIS id on a Senate record, the bare bioguide id on a House one, and name: plus the publisher's name where the file states neither (every Clerk file of 1990-2002). A Senate bioguide comes from the crosswalk and does not always resolve, so keying on it would split one member's votes across two rows; an identity column also cannot be null, which the design's bioguide key would have been. A name: key identifies the row within its roll call, not a person: across 1990-2002 at least 21 of the Clerk's labels name two different members (Jones (NC), Allen, Schiff, Wilson, McHugh, Smith (WA)...), so a person is the host's crosswalk, never this key. Congress, member_name, party and state do not identify one either: one Congress can seat a successor of the same surname, party and state (where the Clerk states bioguide ids, 5 such keys name two: 109th Matsui D-CA, 110th Carson D-IN, 112th Payne D-NJ, 117th Letlow R-LA, 119th Grijalva D-AZ; in 1990-2002 the 105th's Capps and Bono (CA) and the 107th's Shuster (PA) show it as a gap inside the Congress), so the crosswalk adds vote_date, checked against each member's service dates.
bioguide_id VARCHAR The voting member's bioguide id: stated by the publisher on a House row (the Clerk's name-id, from 2003), and filled by the host's crosswalk at merge time on a Senate row, whose file states only lis_id (members.lis_id resolves it); NULL where neither supplies one.
lis_id VARCHAR The voting member's Senate LIS id, which only the Senate file carries.
member_name VARCHAR The member's name exactly as the roll-call source spells it.
party VARCHAR The member's party as the roll-call source states it.
state VARCHAR The member's state as the roll-call source states it. On a House row XX is the Clerk's marking for the non-voting delegates and the Resident Commissioner, on the roll calls they voted in: 2,169 of the Clerk's 22,512 of 1990-2026 (1993-1994, 2007-2010, 2019-2020 and from 2022; none in 2021), every one an amendment vote or a motion in committee (to rise, to strike or limit debate, a call in committee, a ruling of the chair), filed under (clerk_body_element on roll_call_votes) from 2007 and under in 1993-1994. Kept as stated, not mapped to a territory.
position VARCHAR The member's position exactly as the publisher spelled it (Yea, Aye, Not Voting...).
position_normalized VARCHAR That position folded onto yea, nay, present or not_voting; NULL for a named candidate choice.
vote_date VARCHAR The chamber's literal date; sorts as text, not by time (see roll_call_votes vote_day).