How we build this
District partisanship
How we measure which way a district leans, before any candidate is in the picture.
The Majority Rising Partisan Index (MRPI) measures how each of North Carolina's 170 legislative districts leans, independent of who is running. For every precinct we take the two-party Democratic share across the nine 2024 Council of State races (Lt. Governor, Attorney General, Auditor, Secretary of State, Treasurer, and the Commissioners of Agriculture, Insurance, and Labor, plus Superintendent of Public Instruction). Governor is left out because the 2024 race was a known outlier.
We add those precinct results up to each district and subtract the statewide baseline of 49.16% Democratic two-party share. What is left, in points, is the district's lean: positive is Democratic-leaning, negative is Republican-leaning. A district at MRPI D+3 voted about three points more Democratic than the state as a whole across those nine races.
Share points and margin points
MRPI is a share gap: how much more Democratic a district is than the state. A margin is the gap between the two candidates, and it runs at twice the share gap. A district three share points more Republican than the state loses by about six points in a tied year.
The seat numbers on the board and on each district page are margins, so they line up with real election results. Ratings use the same scale: within 2 points is a Toss-Up, 2 to 10 is Lean, past 10 is Likely.
Four cycles, four different ballots
Each district page shows a trend across 2018, 2020, 2022 and 2024, so you can see whether a seat is drifting. North Carolina does not put the same statewide races on the ballot every cycle, so each year's baseline uses whichever statewide partisan races were actually on that ballot.
| Cycle | Races | What is in the composite |
|---|---|---|
| 2018 | 4 | 1 Supreme Court seat and 3 Court of Appeals seats.* No U.S. Senate, President or Council of State race was held that year. |
| 2020 | 9 | The same Council of State races used in 2024, Governor excluded, so the two presidential years are measured on the same offices. |
| 2022 | 7 | U.S. Senate, 2 Supreme Court seats and 4 Court of Appeals seats. |
| 2024 | 9 | The Council of State races listed above. |
* Two of the 2018 races had two Republicans running against one Democrat. We add both Republicans together; counting them separately would split the Republican vote and overstate the Democrat.
We checked whether the choice of races matters. Swapping executive races for judicial races in the same year moves a district's score by about 0.2 points, which does not do much. Moving between election years moves it by about 1.7 points. Which offices are in the composite barely matters. Which year you are looking at does.
We built MRPI in-house so the method is ours and fully documented, then checked it against established analyses across all 170 districts.
Polling
District lean tells you the structure. The polling average tells you the year.
We keep a database of North Carolina generic-ballot polls: every public poll we can find that asks NC voters which party they want in the legislature. Each poll is weighted by five things.
- Recency. A 30-day half-life, so older polls fade.
- Sample size. Bigger samples count for more.
- Pollster quality. Based on the firm's track record.
- Who was sampled. Likely voters count more than registered voters.
- Sponsorship. Partisan-sponsored polls take a penalty.
The weighted average is the headline on the Polling page, and it updates as new polls come out. The ledger there shows every poll we track, what it is worth in the average, and the few we leave out, each with the reason.
Follow the money
Where the campaign finance figures come from, and what each one counts.
Every number on the money pages comes from the disclosure reports each committee files with the NC State Board of Elections (cf.ncsbe.gov). We pull the filings for every major-party candidate committee in all 170 legislative districts. We refresh as new reports post, so the pages track the official record.
What the figures mean
Raised and spent add up each report's own totals for this cycle, meaning reports covering 2025 onward. Cash on hand is the ending balance on the committee's latest report, which is what the campaign actually has to spend.
Where the money comes from
Contributions from individuals, parties and committees are shown as filed. One call is ours, and we label it: the state puts interest-group PACs and other candidates' committees in a single bucket, and we split them by committee name, because money from a legislative leader means something different from money from a trade association. Every contributing committee is named in the Donors tab, so you can check that call yourself.
Spending
Top payees are listed with each committee's own description of what the money was for, in their words, not our categories. Where a committee amended a report, the latest version wins.
When a figure is empty
A committee that filed and holds nothing shows $0.
A committee we have no readable report for reads no figures available. That covers two different situations: it may have filed nothing yet, or it may have filed on paper. The state scans paper reports but does not type the figures into its database, so a committee can file on time and still be invisible to us. We cannot tell those two cases apart, so we say so and link to the committee's own filings page instead of guessing.
A district where a party has no November nominee reads no Democrat or no Republican on the ballot. There is no committee to report, and showing $0 there would invent a candidate who failed to raise money.
The precinct maps
Four elections drawn on today's district lines, so they can be compared directly.
Every district page shows its precincts four times, for 2018, 2020, 2022 and 2024, shaded by the certified result of that seat's own legislative race. All four use today's district lines, so you can watch support move precinct by precinct.
Where a year could not be measured
Hatched precincts mark a year with no two-party legislative race to measure, because nobody filed against the incumbent or the race was one-party. Those precincts show their own partisan lean instead, taken from the statewide races on that year's ballot, and they are labeled as modeled. An estimate is never dressed up as a result.
The Partisan index toggle shows that lean for every precinct. It has no gaps in any year, because statewide races are on every ballot. The races behind it differ by year, and the table further up lists exactly which ones.
The scale
Every number is a margin: the Democratic share of the two-party vote minus the Republican share. It is the same scale as every other seat number on this site.
Data as of October 29, 2026 · campaign finance last refreshed August 20, 2026
Report an error