Pennsylvania General Assembly

How the Pennsylvania scores work

Every number on the Pennsylvania pages comes from the General Assembly's own roll-call records and follows the rules on this page.

The vote records

  • Every roll call comes from the General Assembly's own roll-call records, which the House and the Senate publish on palegis.us: each floor roll call with every member's vote by name. We use every House and Senate floor roll call of the 2025–2026 Regular Session so far, 1,956 roll calls (1,407 in the House, 549 in the Senate), Jan. 7, 2025 to Oct. 7, 2026. The session runs to November 30, 2026, and these pages are updated as the chambers vote.
  • The House's roll-call pages don't say which amendment a vote was on; the House's list of each day's roll calls does (“HB 362 PN 0375, A00170”), so that's where the vote pages' motion comes from.
  • We leave out roll calls that aren't a vote on a question: the House's attendance roll call at the start of each session day, the Senate's quorum call, and the House's election of its Speaker on January 7, 2025, a choice between two members.
  • A roll call is used only if its members' votes add up to the counts the record prints and it lists every member serving that day exactly once. All of them did. A member sworn in during a session day (Senator James Malone, on May 5, 2025) is on that day's roll calls only from the oath on.
  • As a check from a second source, each build compares every vote on final passage, concurrence or adoption with the yeas and nays the bill's history prints. Where they differ, we follow the roll call, the record the House and Senate Journals reprint: for HB 1935 on February 3, 2026, the history prints 154–45, and the Journal 152–45, as the roll call does.
  • Committee votes aren't included. Neither are voice votes, which don't record how each member voted.
  • Pennsylvania's constitution passes a bill only if a majority of all members, 102 in the House and 26 in the Senate, vote for it on final passage, not a majority of those voting. The records don't print whether a vote passed, so the vote pages show the yeas and nays only.
  • Contested votes are roll calls where the losing side got at least 10% of the yeas and nays: 606 in the House and 151 in the Senate. Every roll call has its own page. Floor votes lists the contested and party-line ones, and every roll call on request.

Who cast each vote

  • Each roll call links every member to their page on palegis.us by the General Assembly's member number, and Open States' data on Pennsylvania legislators records the same number, so each vote goes to exactly one legislator; we also check that the legislator held that seat on the day. Every vote on every roll call matched.
  • Names and terms come from Open States. Where its dates differ from the General Assembly's own records, we follow those: the days members resigned, from the House's Legislative Journal and its daily session reports, and the day Representative Matt Gergely died, January 19, 2025 (he was recorded on leave on the session's first day and never voted).
  • Each build checks our current members against the House's and the Senate's own member lists, names and parties.
  • Photos are the official portraits from palegis.us. A member without one shows initials.

Votes with the Speaker or Senate President pro Tempore

  • Pennsylvania's presiding officers vote like any member: the Speaker of the House, Joanna McClinton (District 191), and the Senate's President pro Tempore, its elected leader, Kim Ward (District 39). Each held the office for every roll call here. The Lieutenant Governor presides over the Senate but isn't a senator.
  • The score is the share of roll calls on which the member voted the same way, yea or nay, as their chamber's leader. A roll call counts only when both of them voted yea or nay. The Speaker voted on 1,407 of 1,407 House roll calls (nay on 192); the President pro Tempore on 544 of 549 Senate roll calls (nay on 12).
  • The two chambers have different majorities: Democrats hold the House and Republicans the Senate, so the House's leader is a Democrat and the Senate's a Republican.
  • The headline number uses contested votes. On unanimous votes nearly everyone agrees with the leader, so the share on all votes, shown alongside, is high for almost everyone.
  • A score needs at least 20 votes. The leaders aren't scored against themselves.
  • This works like “votes with the President” on the Congress pages, with one difference: the President's position on a bill comes from the White House's public statements, while the leader's position here is the leader's own recorded vote.

Votes with own party

  • Counts party-line votes: roll calls where most Democrats voted one way and most Republicans the other (503 in the House, 109 in the Senate). The score is the share of those votes where the member voted with most of their own party. The Congress pages use the same definition.
  • Partisan rank orders each chamber's current members by this score, whichever their party: 1 votes with their party most often, and the last votes with it least. Members shown with the same whole percent share a rank, and each legislator's page says how many share it and how many vote with their party more often.
  • A score needs at least 20 party-line votes.
  • The table of contested votes on each legislator's page marks every contested vote where they voted against most of their party, whether or not it was a party-line vote, so it can list more votes than the score counts.

Didn't vote at roll call

  • The share of roll calls, while the member was in office, on which the record shows no vote for them.
  • The House's records mark a member who didn't vote either “Leave”, a leave of absence the House granted, which these pages call excused, or “No Vote”. The Senate's records print only “No Vote”, whether or not the senator had leave, so a senator's count doesn't show how many were excused.
  • Because a bill needs a majority of all members on final passage, not voting on it has the same effect on the outcome as voting nay.
  • “In office” means the roll call lists the member: each one lists every seated member, whether or not they voted.

The seat chart

  • Each chamber's current members are seats, ordered from most liberal (left) to most conservative (right). There's no DW-NOMINATE score for state legislators, so the order comes from the General Assembly's own contested votes: for every pair of members, the share of contested roll calls on which they voted the same way, scaled to one left-right dimension (Poole's agreement-score method, the usual first step of roll-call scaling). Republicans are on the right. A member with fewer than 20 contested votes sits at their party's middle.
  • Color uses the same rule as the Congress pages: how often a member crosses party lines toward the middle on party-line votes, siding with the other party alongside their own party's more moderate members. Solid blue or red means almost never; purple means at least 1 in 5 of those votes.
  • Pennsylvania legislators break from their party on party-line votes more often than members of Congress (one in ten breaks on at least 11.9% of them, against 7.4% in Congress), about as often as Georgia's, so the Pennsylvania pages use the same color steps as Georgia and Florida, twice Congress's: purple at 20% rather than 10%, then 15, 10, 6 and 3%. That keeps purple for the truly moderate.
  • Gray seats: no party-line score.

Bills passed

  • Every bill introduced this session, from the General Assembly's Bill History data: 2,684 House bills and 1,390 Senate bills, appropriation bills included. Joint resolutions (proposed amendments to the constitution, which go to the voters, not the Governor) and House and Senate resolutions aren't counted.
  • A bill counts for its prime sponsor, the first name on it. Co-sponsors aren't counted. A bill all of whose sponsors withdrew counts for no one.
  • Passed both chambers: the bill was presented to the Governor (88 House bills, 53 Senate bills). It became law when the Governor approved it, or it became law without his signature, and the bill history gives its Act number; it didn't if he vetoed it and the veto stood. Governor Shapiro has vetoed no bill this session. Each build checks the Acts against the General Assembly's own list of legislation enacted, Act for Act, appropriation Acts included, and its list of bills vetoed.
  • Pennsylvania doesn't mark local bills apart (its constitution bars a local or special law where a general one can apply), so every bill counts the same way. The ranked number is bills that passed both chambers.
  • Ranks are among current members of the chamber, and among current members of the chamber in the same party: 1 has the most, and members with the same number share a rank. Members who took office during the session had less time to pass bills, and the chairs of the Appropriations Committees sponsor the budget bills.

Budget projects

  • Pennsylvania's General Appropriation Act doesn't name the legislator who asked for an item, so there's no budget figure for Pennsylvania legislators.

The November 3 ballot

  • All 203 House seats and the 25 even-numbered Senate seats are on the ballot; the odd-numbered Senate seats were elected in 2024 for terms to 2028.
  • The Pennsylvania Department of State keeps its list of candidates in an online database that turns away automated readers, and it publishes no candidate list as a file, so these pages don't list Pennsylvania's candidates yet. The election page lists every seat on the ballot and who holds it now, and links to the Department's database.

Bill explanations

Pennsylvania vote pages don't carry an explanation of the bill yet. Each page's title is the bill's official short title, shortened (the date and citation of the law it amends are left out), and the page links to the bill on palegis.us, where its full text and fiscal notes are.

Data sources and downloads

WhatSourceLast downloaded
Floor roll calls, with each member's votePensilvania House and Senate roll-call votes (palegis.us)Oct. 17, 2026
Bills, their sponsors, short titles and actions, the Governor's approvalsPensilvania General Assembly, Bill History data (palegis.us/data)Oct. 17, 2026
Acts enacted and bills vetoed, to check the bill recordsPensilvania General Assembly, legislation enacted (palegis.us)Oct. 17, 2026
Legislators, terms, contact details and committeesOpen States (public domain)Oct. 17, 2026
Current members and vacant seats, checked each buildPensilvania House and Senate member listsOct. 17, 2026
Official portraitspalegis.usOct. 17, 2026
District boundaries, for the map and the address lookupU.S. Census Bureau (2026 state legislative districts)Oct. 17, 2026

Everything these pages show can be downloaded, free to reuse. Percent columns ending in “_shown” are the whole numbers the pages show; the counts behind each one are beside it. Terms of reuse

  • members.csv: Every Pennsylvania legislator this term with each score, the counts behind it and the whole percent the pages show.
  • votes.csv: Every Pennsylvania floor roll call with its totals, whether it was contested or party-line, how the leader and each party's majority voted, and the official record.
  • member-votes-house-1.csv: How every Pennsylvania House member voted on each floor roll call, Jan. 7, 2025 to July 1, 2026 (part 1 of 2).
  • member-votes-house-2.csv: How every Pennsylvania House member voted on each floor roll call, July 12, 2026 to Oct. 7, 2026 (part 2 of 2).
  • member-votes-senate.csv: How every Pennsylvania Senate member voted on each floor roll call.
  • bills.csv: Every Pennsylvania bill this term with its sponsors, its kind (statewide, local or claim) and how far it got.

Checks

  • PASS: Pennsylvania House: current members match the chamber's own list — 203 members and 0 vacant seats agree
  • PASS: Pennsylvania Senate: current members match the chamber's own list — 50 members and 0 vacant seats agree
  • PASS: Pennsylvania: every bill's sponsors are legislators on these pages, and their counts add up — 4,074 sponsor credits on 4,074 bills
  • PASS: Pennsylvania: every bill's prime sponsor matched to one legislator, every passed bill's outcome known — all of them
  • PASS: Pennsylvania: the vote-by-vote download's files match the state's settings — member-votes-house-1.csv, member-votes-house-2.csv, member-votes-senate.csv
  • PASS: Pennsylvania: the address lookup's file lists every seat's holder — 253 seats
  • PASS: Pennsylvania: every vote on the records credited to the right legislator — all matched
  • PASS: Pennsylvania: bill explanations are approved and match their official source — 0 vote pages show one
  • PASS: Pennsylvania: every vote page's bill has its title — 1956 votes
  • PASS: Pennsylvania: every current legislator has an official portrait — 260 portraits
  • PASS: Pennsylvania: the district map has every seat, and only those — 203 House districts, 50 Senate districts
  • PASS: Pennsylvania: every incumbent on the ballot links to their voting record — all linked
  • PASS: Pennsylvania: every roll call's votes add up to its printed counts and it names every member serving once — all of them
  • PASS: Pennsylvania: final passage, concurrence and adoption tallies agree with the bills' histories — 1,203 of 1,205 agree; the roll call is followed for 2025-house-0824-hb1935, 2025-house-1073-hb1045
  • WARN: Pennsylvania: Nov. 3 legislative candidates cover every seat on the ballot — the state's candidate list isn't in place yet: the election page lists the 228 seats on the ballot and links to the state's candidate database