North Carolina General Assembly
How the North Carolina scores work
Every number on the North Carolina pages comes from the General Assembly's own roll-call vote records and follows the rules on this page.
The vote records
- Every roll call comes from the General Assembly's own vote records on ncleg.gov: each chamber's roll-call vote history, which lists every floor roll call of the session with its bill, motion, time, result and counts, and each member's vote history, which lists that member's vote on every roll call taken while they served. We use every House and Senate floor roll call of the 2025–2026 Session and of the 2026 First Extra Session, which met on October 7, 2026: 1,512 roll calls (808 in the House, 704 in the Senate), Jan. 8, 2025 to Oct. 7, 2026.
- The 2025–2026 Session hasn't adjourned: the General Assembly's adjournment resolution (Resolution 2026-6) brings it back on October 26–28, November 16–19 and November 30 to December 18, 2026, and these pages are updated after it votes.
- A roll call is used only if the members' vote histories add up to the counts the roll-call history prints, Aye, No, Not Voting, Excused Absence and Excused Vote, and they name every member serving that day exactly once. All of them did. Each chamber numbers its roll calls through each session; the 2025–2026 Session's House history skips numbers 22, 90 and 95 and the Senate's number 139, which were never used for a vote.
- As a check from a second source, each build compares every roll call with the counts its bill's page on ncleg.gov prints for it: 1,501 of 1,501 agree.
- The General Assembly says the information on its website isn't meant to replace the official sources and that some of it is provisional; the official record of each day's floor votes is the House or Senate Journal. The vote pages link each roll call's transcript on ncleg.gov.
- We leave out the one roll call that wasn't a vote on a question: the House's quorum call at the start of the 2026 First Extra Session, which records who was present.
- Committee votes aren't included. Neither are voice votes, which don't record how each member voted: a bill's third reading often passes by voice vote right after a recorded vote on its second reading.
- The records mark each roll call PASS or FAIL, and the vote pages show it.
- Contested votes are roll calls where the losing side got at least 10% of the ayes and noes: 285 in the House and 280 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 member's vote history is numbered by the General Assembly's member number, and Open States' data on North Carolina legislators records the same number in its links to each member's page, so each vote goes to exactly one legislator; we also check that the legislator was serving in that chamber that day. Every vote on every roll call matched. Open States gives Senator Sophia Chitlik a second member number that is Senator Dana Jones's; we don't use it.
- Names and terms come from Open States. The General Assembly's member tables note each seat that changed hands during the session, with the day a member resigned, died or was appointed, and we follow those dates where Open States' differ (8 of them).
- Each build checks our current members against the House's and the Senate's own member tables, names and parties. The tables list Representatives Carla Cunningham and Nasif Majeed, elected as Democrats in 2024, as unaffiliated, and so do these pages.
- Photos are the official portraits from ncleg.gov, which the General Assembly says are in the public domain once it publishes them. A member without one shows initials.
Votes with the Speaker or Senate President Pro Tempore
- North Carolina's House is led by its Speaker, Destin Hall (District 87), elected on January 8, 2025, and the Senate by its President Pro Tempore, Phil Berger (District 26), its leader since 2011, re-elected for this session. Each held the office for every roll call here, and both vote: the House's rules let the Speaker vote. The Lieutenant Governor presides over the Senate but isn't a senator and votes only when the Senate is tied (the Constitution, Article III, Section 6).
- Senator Berger lost the Republican primary for his seat on March 3, 2026, so he isn't on the November ballot; he leads the Senate until his term ends.
- The score is the share of roll calls on which the member voted the same way, aye or no, as their chamber's leader. A roll call counts only when both of them voted aye or no. The Speaker voted on 611 of 808 House roll calls (no on 43); the President Pro Tempore on 687 of 704 Senate roll calls (no on 25).
- Republicans hold the majority in both chambers, so both leaders are Republicans.
- 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 (257 in the House, 261 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.
- A member of no party is scored against the party they vote with more often on those votes, as the Florida pages score members with no party affiliation.
- A legislator who changed parties during the term is scored on each vote against the party they belonged to that day. Representatives Carla Cunningham and Nasif Majeed, elected as Democrats, left the party in April 2026 (the House's roll calls list them as Democrats through April 22, 2026), and these pages list them as unaffiliated. Each of their party-line votes is compared with the party they belonged to that day: with most Democrats through April 23 (Cunningham) or April 26 (Majeed), and since then with the party each has sided with more often (Republicans for Cunningham, Democrats for Majeed). The vote pages count them with their party that day too, and the seat chart places each with the party they have sided with since leaving.
- 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: “Not Voting” or “Excused Absence”, an absence the chamber excused, which these pages call excused.
- “Excused Vote” is different: the chamber excused a member who was there from voting on that question (House Rule 24.1A lets a member be excused in advance from a bill's deliberations and votes; Senate Rule 29 lets the Senate excuse a senator from any vote; the reason is printed in the Journal). It isn't counted as missed, and the vote pages list it as “excused from voting”.
- “In office” means the member's vote history lists the roll call: it lists every roll call taken while they served, 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.
- Most North Carolina legislators break from their party on party-line votes less often than members of Congress (half do on 1.2% of them or fewer, against 1.7% in Congress), but those who break do so somewhat more often (one in ten breaks on at least 9.4% of them, against 7.4%), as in New Jersey, so the North Carolina pages use the same color steps as New Jersey, Pennsylvania, 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 in the 2025–2026 Session and the 2026 First Extra Session, from each bill's page on ncleg.gov: 1,224 House bills and 1,062 Senate bills. Joint resolutions and House and Senate resolutions aren't counted.
- A bill counts for each of its primary sponsors, the names its page marks “Primary”: up to four on a House bill and three on a Senate bill. Co-sponsors aren't counted. 6 bills list no primary sponsor and count for no one.
- Passed both chambers: the bill was ratified, which happens once both chambers have passed it in the same form (106 House bills, 85 Senate bills). It became law when its history gives it a Session Law number: the Governor signed it, it became law without his signature, the General Assembly overrode his veto (which takes three-fifths of the members present and voting in each chamber), or it became law when ratified, as bills the Governor can't veto do (most local bills, and bills that only make appointments or draw districts). It didn't if he vetoed it and no override passed. Each build checks that each year's Session Laws run from 1 without gaps and match the General Assembly's own lists of chaptered bills.
- A bill also passed when its identical bill in the other chamber, which the General Assembly marks on both bills' pages (“House Bill 111 (=S163)”), passed instead: its primary sponsors are credited through that bill, and it's marked as passed through it, as on the Florida and New Jersey pages.
- The General Assembly marks each bill Public or Local. Local bills, which apply to one or a few counties or cities, are counted and shown apart and aren't ranked. The ranked number is public 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
- North Carolina's budget acts, and the conference reports that list their items, don't say which legislator asked for an item, so there's no budget figure for North Carolina legislators.
The November 3 ballot
- All 120 House seats and all 50 Senate seats are on the ballot: members of both chambers serve two-year terms.
- The candidates are the State Board of Elections' list for the general election, as of October 13, 2026, checked contest by contest against the Board's candidate file; the Board notes that its lists aren't always final. We keep only each candidate's name on the ballot, party and district.
Bill explanations
North Carolina vote pages don't carry an explanation of the bill yet. Each page's title is the bill's short title as the General Assembly prints it, and the page links to the bill on ncleg.gov, where its full text, summaries and fiscal notes are.
Data sources and downloads
| What | Source | Last downloaded |
|---|---|---|
| Floor roll calls, with each member's vote | North Carolina General Assembly, roll-call vote histories and members' vote histories (ncleg.gov) The General Assembly's Disclaimer says its website's information isn't meant to replace any official source and that some of it is provisional. | Oct. 17, 2026 |
| Bills, their primary sponsors, short titles, attributes and actions, the Governor's actions | North Carolina General Assembly, bill pages and lists of bills (ncleg.gov) The General Assembly's Disclaimer says its website's information isn't meant to replace any official source and that some of it is provisional. | Oct. 17, 2026 |
| Legislators, terms, contact details and committees | Open States (public domain) | Oct. 17, 2026 |
| Members, seats that changed hands, and vacant seats, checked each build | North Carolina House and Senate member tables The General Assembly's Disclaimer says its website's information isn't meant to replace any official source and that some of it is provisional. | Oct. 17, 2026 |
| Candidates on the November 3 ballot | North Carolina State Board of Elections, candidate lists The Board's site links the State's terms of use (nc.gov), which allow copying its documents and information for non-commercial use, unaltered and citing the source; the Board notes its lists aren't always final. | Oct. 17, 2026 |
| Official portraits | ncleg.gov The General Assembly's Disclaimer says members' photos are in the public domain once it posts them. | Oct. 17, 2026 |
| District boundaries, for the map and the address lookup | U.S. Census Bureau (2026 state legislative districts) | Oct. 19, 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 North Carolina legislator this term with each score, the counts behind it and the whole percent the pages show.
- votes.csv: Every North Carolina 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.csv: How every North Carolina legislator voted on every floor roll call.
- bills.csv: Every North Carolina bill this term with its sponsors, its kind (statewide, local or claim) and how far it got.
Checks
- PASS: North Carolina House: current members match the chamber's own list — 120 members and 0 vacant seats agree
- PASS: North Carolina Senate: current members match the chamber's own list — 50 members and 0 vacant seats agree
- PASS: North Carolina: every bill's sponsors are legislators on these pages, and their counts add up — 5,701 sponsor credits on 2,280 bills
- PASS: North Carolina: every bill's primary sponsors matched to legislators, every passed bill's outcome known — all of them
- PASS: North Carolina: the vote-by-vote download's files match the state's settings — member-votes.csv
- PASS: North Carolina: the address lookup's file lists every seat's holder — 170 seats
- PASS: North Carolina: every vote on the records credited to the right legislator — all matched
- PASS: North Carolina: bill explanations are approved and match their official source — 0 vote pages show one
- PASS: North Carolina: every vote page's bill has its title — 1512 votes
- PASS: North Carolina: every current legislator has an official portrait — 179 portraits
- PASS: North Carolina: the district map has every seat, and only those — 120 House districts, 50 Senate districts
- PASS: North Carolina: every incumbent on the ballot links to their voting record — all linked
- PASS: North Carolina: every roll call's votes add up to its printed counts and it names every member serving once — all of them
- PASS: North Carolina: each roll call's counts agree with its bill's page — 1,501 of 1,501 agree
- PASS: North Carolina: Nov. 3 legislative candidates cover every seat on the ballot — 170 races