roll_call_votes
House and Senate roll-call votes
One row per roll call: the publisher's own tally, and the bill it refers to. The four tally columns are the publisher's own counts, NULL on a candidate election (a Speaker vote), whose choices tallies_json keeps under their own labels. A Senate count element the file leaves empty or omits (<present/>, <absent/>) is read as 0, which is what the Senate means by it (119-senate-1-15: 50 yea, 50 nay, 0 present, 0 absent). All columns are stored as VARCHAR.
Coverage. Sampled, and accumulating: both chambers' roll calls from each chamber's own session listing (the Senate LIS menu, and the House Clerk's roll files, read forward from the session's last held roll until the Clerk stops serving the next ones; a session the Clerk serves no roll of yet, as before its first vote, lists none; both keyless), newest first under a per-run cap. The Clerk's EVS index pages answer 404 since 2026-10-02 and are not read. Each chamber is listed on its own: a run whose listing of one chamber refuses reads none of that chamber's roll calls, keeps its published rows as they were, publishes the other chamber and then fails, so one chamber's newest roll calls can lag the other's. The scheduled scope is the sitting Congress; an earlier Congress is backfilled by dispatching its number under the same cap and, once held, is never re-read. A roll call already published with a tally is not fetched again, except the newest few of a sitting Congress, re-read in case the publisher corrected them. The Clerk and LIS files reach the 101st Congress (the Clerk's archive begins in 1990, the 101st's second session); the bill family's references reach the 108th. The House files of 1990-2002, the 101st-107th Congresses, are a House-only dispatch (congresses 101-107, chambers house) run until a run fetches nothing; replayed over the retained Clerk archive through this rollup they refuse none and change no published row (see the output ledger's roll-call row). A set of roll calls reached from bills alone is not an index of a session's roll calls. A House roll call that a bill's own action names can be published a cron before the Clerk's roll files list it, with the same tally and member positions. vote_date keeps the Clerk's own spelling (9-Sep-2025, and 3-JAN-1991 on eight files of 1991-2001), which does not sort as a date, so no range over it is quoted here. (measured 2026-09-29)
Data quality. Two statements link a roll call to a bill, and match_rule names the one that did. bill_action_recorded_vote: a recordedVotes entry on the bill's own action, read from bill_vote_references. vote_file_legislation: the vote file's own statement of its measure, the Clerk's legis_num or the Senate's document, with the file's own URL as match_url; on a Senate amendment vote that document is S.Amdt., not a bill, so such a roll call links to a bill only where the rollup resolved one through the bill's own recorded-vote action (count(bill_id) over amendment votes is the measure). The bill's action wins; where two bills' actions record one roll call, the one the file names wins (the Senate passing a House bill after its Senate twin); with no recorded reference the file links alone. A procedural question, a nomination, a treaty or two different bills link nothing. Measured on the 108th and 119th (receipt votes-backfill-2026-09-26/file-links/), the files add 881 links and agree with the recorded reference on 1,803 of the 1,809 roll calls both link; the six others are those Senate passages. conflict_count is per roll call, not per run: it counts the later references, the file's included, that named a different bill for this roll call, and they are kept rather than dropped. Before 2003 only the file's legis_num links: it links 6,614 of the 7,327 files of 1990-2002 to 2,842 bills, 26 of which have no congress_bills row yet. A held row is relinked from its own columns without a fetch; a House row published before legis_num or clerk_body_element existed is read again once to gain both, with vote_desc. A Senate row published before vote_question_text, vote_title, majority_requirement and modify_date existed is read again once in the same way and gains them and any tie-breaker: until then its NULL tie-breaker columns say nothing about whether the vote was tied. The scheduled run reads the sitting Congress's such rows; an earlier Congress's are read when its number is dispatched. Replayed over the retained files of the 108th-118th, that read fills the element on all 14,503 published House rows (3,742 committee) and vote_desc on 9,191, and changes no other column and no member row; it also publishes the five votes the House vacated before recording a position, which have zero tallies, member_vote_count 0 and no member_votes rows. The Clerk's 2003 Speaker election (108-1-2), whose candidate totals contradict its members' choices, still refuses. The contract's house_vote_legislation rule (Congress.gov's house-vote listing) is no longer produced and no published row carries it: it was retired with the api.data.gov key it needed (2026-09-26). Each run fills a NULL vote_day on every held (completely captured) roll call from its own vote_date before merging, so a row published before the column existed gains it without a re-fetch. An incomplete capture is not held: it is re-fetched first each run and takes its day from the file. A linkage-only row keeps NULL.
- Parquet file:
roll_call_votes.parquet - MCP
query_sqlsupport: 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_tablereply gives the live count underpublication.
| Column | Type | Description |
|---|---|---|
vote_id |
VARCHAR |
Natural key: congress, chamber, session and roll number joined with hyphens. |
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. |
vote_date |
VARCHAR |
The chamber's literal date; sorts as text, not by time (see vote_day). |
source_url |
VARCHAR |
The publisher's own URL for this roll call. |
question |
VARCHAR |
The question put to the chamber, as the publisher states it. |
result |
VARCHAR |
The stated result of the roll call. |
yea |
VARCHAR |
Yea votes, from the Clerk's yea-total or the Senate's yeas; a blank Senate count reads 0 (see present). |
nay |
VARCHAR |
Nay votes, from the Clerk's nay-total or the Senate's nays; a blank Senate count reads 0 (see present). |
present |
VARCHAR |
Present votes, as each publisher counts them. A Senate count element the file leaves empty or omits (<present/>) reads 0, which is what the Senate means by it: 119-senate-1-15 states 50 yeas, 50 nays and empty present and absent, 100 positions. |
not_voting |
VARCHAR |
Members not voting: the Clerk's not-voting-total, or the Senate's absent, folded to one column. A blank Senate <absent/> reads 0, as for present. |
tallies_json |
VARCHAR |
The overall totals the publisher stated, under the publisher's own names, as a JSON object; the Clerk's totals by party are party_totals_json. Candidate elections keep literal choice labels here and leave the four ordinary tally columns NULL. |
member_vote_count |
VARCHAR |
How many member positions the file carried; the member_votes row count for this roll call. |
bill_id |
VARCHAR |
The bill this roll call refers to: from a bill action's recorded-vote reference, a vote-list reference, or the vote file's own statement of its measure. |
match_rule |
VARCHAR |
Which vote-matching rule named that bill: bill_action_recorded_vote (the bill's own action records this roll call), house_vote_legislation (Congress.gov's House vote list), vote_file_legislation (the vote file names the bill: the Clerk's legis-num, or the Senate's document or amended document), or unmatched. |
match_action_index |
VARCHAR |
Position of the action whose recordedVote named this roll call, where one did. |
match_url |
VARCHAR |
The reference URL the match was read from. |
conflict_count |
VARCHAR |
How many later references disagreed with the one that won; kept, never dropped. |
tally_kind |
VARCHAR |
positions for ordinary totals, candidates for native named-choice totals; NULL on legacy or linkage-only rows. |
documents_json |
VARCHAR |
Ordered Senate document objects with native congress, type, number, name, title and short_title; [] for captured votes without documents, NULL for legacy or linkage-only rows. Numbers retain publisher spelling, including nomination suffixes; this does not assert a matched bill or nomination. |
amendments_json |
VARCHAR |
Ordered Senate amendment objects with native number, to_amendment_number, to_amendment_to_amendment_number, to_document_number, to_document_short_title and purpose; [] for captured votes without amendments, NULL for legacy or linkage-only rows. Repeated empty-ID blocks remain separate observations; no document pairing is inferred. |
vote_day |
VARCHAR |
The chamber's own printed vote date as an ISO day (YYYY-MM-DD) in Eastern local time, which sorts where vote_date does not and is never the UTC day of a Congress.gov recordedVotes date; NULL where the file prints no date, on linkage-only rows, and on rows published before this column until a host backfills them. |
legis_num |
VARCHAR |
The Clerk's own legis-num as the House vote file states it (H R 3354, H RES 682, QUORUM); empty when a captured Clerk file states none; NULL on Senate rows, linkage-only rows and House rows captured before this column. |
clerk_body_element |
VARCHAR |
Which element of the Clerk's file names the voting body, committee or chamber; both read 'U.S. House of Representatives', so the element is the fact. The Clerk files 3,830 of its 22,512 roll calls of 1990-2026 under |
vote_desc |
VARCHAR |
The Clerk's own vote-desc as the House vote file states it, most often the measure's title ("PRECIP Act"); 13,780 of the Clerk's 22,512 files of 1990-2026 state one. On the five roll calls the House vacated by unanimous consent before recording a position (112-1-484, 112-2-327, 113-2-275, 114-1-300, 114-2-44) it is the file's statement of what happened ("This vote was vacated by unanimous consent on 4-Jun-2015."), and the row has zero tallies, member_vote_count 0 and no member_votes rows. A vote vacated after its positions were recorded publishes as any other: 110-2-640 (2008) lists 433 members and says "Proceedings on Roll Call 640 were vacated by unanimous consent." Empty when a captured Clerk file states none; NULL on Senate rows, linkage-only rows and House rows captured before this column. |
vote_question_text |
VARCHAR |
The Senate's full question text as the file states it, the amendment and the measure named in words (On the Amendment S.Amdt. 2360 to H.R. 1), so it names the amendment voted on even when the amendment block is empty (119-2-180 and 119-2-182 name SA 5823 only here and in vote_title). Empty when a captured Senate file states none; NULL on House rows, linkage-only rows and Senate rows captured before this column. |
vote_title |
VARCHAR |
The Senate's vote title as the file states it (Amdt. No. 2360, as Amended). Empty when a captured Senate file states none; NULL on House rows, linkage-only rows and Senate rows captured before this column. |
majority_requirement |
VARCHAR |
The majority the Senate file states the question needed: 1/2, 3/5 or 2/3. Empty when a captured Senate file states none; NULL on House rows, linkage-only rows and Senate rows captured before this column. |
modify_date |
VARCHAR |
The Senate file's own modify_date literal (July 1, 2025, 12:57 PM), when the publisher last changed it; sorts as text. Empty when a captured Senate file states none; NULL on House rows, linkage-only rows and Senate rows captured before this column. |
tie_breaker_by_whom |
VARCHAR |
Who cast the tie-breaking vote, as the Senate's tie_breaker block names them (Vice President of the United States): the reason a 50-50 roll call reads Agreed to. NULL when the vote was not tied (the block is present and empty), on House rows, linkage-only rows and Senate rows captured before this column. |
tie_breaker_vote |
VARCHAR |
The tie-breaking vote as cast (Yea); NULL wherever tie_breaker_by_whom is. |
party_totals_json |
VARCHAR |
The Clerk's totals by party, as a JSON array in the file's order: each object the party as the Clerk names it (Republican, Democratic, Independent; member_votes.party spells the same parties R, D and I) and its yea-total, nay-total, present-total and not-voting-total. [] when a captured Clerk file states none (a Speaker election). NULL on Senate rows, whose files state none; on linkage-only rows; and on House rows captured before this column until they are read again. |