We modeled contested House and Senate races from 1980 to 2024 — 17,284 candidates across 8,642 races — and asked what a campaign could actually change. The strongest lever points in opposite directions depending on who you are. Every figure below comes from one model, tested on elections it had never seen.
Take each real candidate and double the number of separate organizations that gave them money, while keeping the total dollars exactly the same. Same race, same opponent, same everything else. The two figures below are the vote share the model then expects of them, against what it expected before.
Of the 56 things the model knows, 27 are choices. The rest — the seat’s history, the opponent, the calendar, whether you already hold the seat — are fixed before anyone opens an office. Bars show the change in expected vote share; whiskers are the 90% range.
Turning a campaign’s own war chest up and down, holding the race and the opponent exactly where they were. More money always helps inside the range real campaigns occupy. What a doubling is worth depends on who you are and on how much you already had.
One model, all 56 features, trained on 1980–2014 and scored on the 2016 and 2018 elections it had never seen. Every figure on this page is that same model. Lower is better; the number is how far a candidate’s vote share lands from the truth, on average.
Points of vote share off, on elections held out of training. For scale: knowing only the seat and who holds it, with no money at all, misses by 5.69 points. Actual vote shares in the test set run from 29% to 71% between the 10th and 90th percentile.
Two public sources. Nothing proprietary, nothing purchased.
| Source | What it gave us | Coverage |
|---|---|---|
| MIT Election LabU.S. House returns | Votes per candidate per district | 1976–2018435 seats a cycle, complete |
| MIT Election LabU.S. Senate returns | Votes per candidate per state | 1976–2024complete |
| Wikipedia election boxes | House returns where MIT stops | 2022, 2024248 and 315 districts of 435 |
| FEC bulkCandidate master | Who ran, party, seat, incumbency, main committee | 1980–202464,133 candidacies |
| FEC bulkCandidate summary | Total raised, party money, self-funding, small-donor money | 1980–202466,007 candidate-cycles |
| FEC bulkCommittee contributions | PAC checks, outside support and attacks, with dates | 1980–20248.0 million transactions |
| FEC bulkIndividual contributions | Donations by size, count and timing | 1980–2024291 million transactions |
House results for 2020 do not exist in any source we hold, and 2022 and 2024 are roughly half covered. Those cycles are excluded from testing for that reason.
Change in expected vote share, in points, with the 90% range beneath. A figure is white where that whole range sits on one side of zero, and grey where the range still includes it.
| Lever | Challengers | Incumbents | Open seats |
|---|
| Feature | What it is | Can a campaign change it? |
|---|---|---|
| The seat and who holds it — 4 features | ||
| prior_share | This party’s share of the seat at the last election | Fixed |
| incumbent | This candidate currently holds the seat | Fixed |
| open_seat | Nobody is defending the seat | Fixed |
| prior_contested | Whether last time’s race had both parties on the ballot | Fixed |
| The candidate, the seat’s drift, the calendar — 14 features | ||
| prior_runs | Times this person has been on a general election ballot before | Fixed |
| prior_wins | Times they have won one | Fixed |
| prior_best_share prior_mean_share | Their best and their average result in past races | Fixed |
| prior_share_2 | How the seat voted two elections ago | Fixed |
| seat_trend | The change between those two results: which way the seat is drifting | Fixed |
| seat_volatility seat_mean_share | How much the seat swings, and its long-run average | Fixed |
| rematch prior_pair_share | Whether these same two people have met before, and the result when they did | Fixed |
| is_midterm with_president midterm_exposed | Whether it is a midterm, whether the candidate shares the sitting president’s party, and both at once — the midterm penalty | Fixed |
| senate | A Senate seat rather than a House one | Fixed |
| How much money — 4 features | ||
| log_ttl_receipts | Everything the campaign raised | Can change |
| receipts_share | Their slice of all the money in the race | Can change |
| log_money_in_race log_opp_given_to | The size of the race, and what the opponent took in | Fixed |
| What kind of money — 14 features | ||
| log_given_to given_to_share | Checks written straight to the campaign by committees | Can change |
| log_outside_for log_outside_against log_opponent_attacked helped_me_share hurt_me_share | Money spent independently to support them, to attack them, and to attack their opponent. A campaign is forbidden to coordinate with any of it. | Fixed |
| log_party_money | What party committees gave | Can change |
| log_coordinated | Party spending arranged with the campaign | Can change |
| log_self_funded self_share | The candidate’s own money, gifts and loans together | Can change |
| log_unitemized unitemized_share | Donations under $200, which never appear as individual records and are recovered by subtraction | Can change |
| small_share_of_indiv | How much of their individual money came in small gifts | Can change |
| Individual donors — 5 features | ||
| log_indiv_total | All money from people, itemized | Can change |
| log_indiv_small log_indiv_large | Gifts under $500, and gifts of $2,000 or more | Can change |
| log_indiv_gifts log_avg_gift | How many donations arrived, and the average size of one | Can change |
| When the money arrived — 8 features | ||
| given_early_share given_late_share given_final_share | Share of committee money arriving over a year out, in the last six months, and in the final three weeks | Can change |
| given_mean_days_out | The dollar-weighted average number of days before election day | Can change |
| for_final_share against_final_share for_mean_days_out against_mean_days_out | The same timing for outside spending, in both directions | Fixed |
| Who sent it — 7 features | ||
| log_n_givers | How many separate organizations gave. The breadth measure, and the second most important feature in the model. | Can change |
| top_giver_share top5_share | What share came from the single largest backer, and from the largest five | Can change |
| from_small_share from_huge_share | Share from organizations that gave under $50k across all candidates that cycle, and from those that gave over $5m | Can change |
| log_pac_total log_mean_gift_from_org | Total committee money, and the average size of one organization’s support | Can change |
27 of the 56 are decisions. 29 are not. Everything marked fixed is settled before a campaign opens its office, or is money a campaign is legally barred from directing.
This predicts. It does not explain. A campaign with a thousand separate donors is a campaign people wanted to give to. The model was trained on candidates who already had broad support for reasons it cannot see, so none of these figures is what happens to a candidate who is told to go get more donors.
Raising money earlier comes out negative in every group where it registers. Read that as late money marking a race that caught fire, never as advice to delay fundraising. Nothing in this design can separate the two.
Money is counted across the whole two-year cycle, which runs past election day. Measured directly, the portion arriving after the result was known is 1.6% to 2.7% of the total — too small to manufacture these effects, but it means this is not a clean forecast.
This analysis runs on one join: forty-five years of federal campaign finance sitting next to certified election returns. That layer is what Civly’s donor lists, prospecting and compliance checks are built on — including finding the givers already backing candidates like you.
Civly Politics Research · prepared August 16, 2026. Sources: the MIT Election Data and Science Lab’s U.S. House and Senate returns, Wikipedia election boxes for the two House cycles MIT does not yet cover, and the Federal Election Commission’s bulk candidate master, candidate summary, committee-contribution and individual-contribution files. Nothing proprietary, nothing purchased.
The panel covers contested U.S. House and Senate general elections from 1980 to 2024: 17,284 candidates in 8,642 races. The model is trained on 1980–2014 and every accuracy figure is scored on 2016 and 2018, held out entirely. Ranges are the 5th to 95th percentile across 40 refits that resample whole races. Each lever is measured by changing that one input for every real candidate and re-predicting, holding the rest of the race — including the opponent — exactly where it was.
Findings describe association in observed data. Nothing here establishes that any fundraising decision caused any outcome, and a campaign that already attracts many separate backers differs from one that does not in ways this model cannot observe. Not legal, compliance, or investment advice.