One of the quieter surprises when you first look at raw FEC bulk data is how tilted modern campaign fundraising is toward individual donors. Our copy of the FEC individual contributions file (fec_individual_contribution) now stores 193 million rows across the 2020, 2022, 2024, and partial 2026 cycles. That is not a typo. It is roughly one contribution for every two American adults.
PACs — political action committees — get most of the press, but in dollar terms they are the smaller pipe. Here is how the split looks on the summary side (from fec_candidate.individual_contributions vs fec_candidate.pac_contributions):
- House races: roughly 70–75% of candidate receipts come from individuals, the rest from PACs and transfers.
- Senate races: closer to 80% individual, because Senate candidates run bigger small-dollar programs.
- Presidential campaigns: over 90% individual, because presidential PAC limits are tiny relative to the spend.
The corollary is that when you see a news story about a single mega-PAC "spending $50 million" on a race, the candidate they are helping has often already raised several times that from small donors. The PAC is an amplifier, not the engine.
What the 193 million rows actually look like
Each row in the individual file is a single reported contribution, with:
- Name, city, state, zip, employer, occupation — all self-reported at the time of the donation.
- Amount (in dollars, no cents for itemized reports above the $200 threshold).
- Transaction date and type code (15 = itemized, 15E = earmarked, 22Y = refund, etc.).
- Recipient committee ID — the PAC, party committee, or candidate committee that received the money.
On LobbyVault we aggregate this into three views you can click through:
/donors/— individual donors by total contributed./industries/— grouped by the donor's reported industry of employment./zip-codes/— grouped by ZIP, useful for seeing which neighborhoods fund which side.
The ceiling problem
Individual contributions to federal candidates are capped at $3,300 per election for 2026–26 (primary and general counted separately, so $6,600 per cycle). That cap is why:
- Bundlers exist: lobbyists and donor-network hosts who collect many $3,300 checks at once.
- Joint fundraising committees exist: a way to legally split one big check between a candidate, the national party, and several state parties.
- Super PACs exist: to receive the uncapped money individuals also want to give but cannot give directly to candidates.
If you want to understand why a wealthy donor appears on LobbyVault giving "only" $6,600 to a candidate while simultaneously giving $10 million to a super PAC, this is why. The two buckets obey different rules.
How to read the donor pages on LobbyVault
When a donor's page shows a long list of small-dollar contributions, that donor is usually appearing in the data because they crossed the $200 itemization threshold with a single committee. Everything below $200 stays unitemized and never shows up in the bulk file — which is why the published totals always undercount real donor activity.
As a practical tip: the richest signal for "who is actually funding this candidate" is not the top-10 list of named donors, but the combination of:
- The candidate's individual vs PAC ratio on the candidate page.
- The top industries and top employers on the candidate page.
- The top ZIPs — a candidate whose top ZIPs are in Manhattan, Palo Alto, and Beverly Hills is running a very different donor program than one whose top ZIPs are in Dallas, Nashville, and Naples, FL.
We surface all three on every candidate detail page.
What's next
We are working on a "network" view that joins individual donors to the committees they've funded and the candidates those committees support. With 193 million rows on one side and ~60 thousand active committees on the other, that graph has some interesting density.