2026-03-19T18:17:18Z by Showboat 0.6.1
This document explores the FEC 'weball26' dataset — a bulk download of all federal candidate financial summaries for the 2026 election cycle. The data was loaded into fed-data.db using sqlite-utils. Let's start by understanding the shape of the data.
uvx sqlite-utils tables fed-data.db --counts --columns[{"table": "candidates", "count": 3579, "columns": ["CAND_ID", "CAND_NAME", "CAND_ICI", "PTY_CD", "CAND_PTY_AFFILIATION", "TTL_RECEIPTS", "TRANS_FROM_AUTH", "TTL_DISB", "TRANS_TO_AUTH", "COH_BOP", "COH_COP", "CAND_CONTRIB", "CAND_LOANS", "OTHER_LOANS", "CAND_LOAN_REPAY", "OTHER_LOAN_REPAY", "DEBTS_OWED_BY", "TTL_INDIV_CONTRIB", "CAND_OFFICE_ST", "CAND_OFFICE_DISTRICT", "SPEC_ELECTION", "PRIM_ELECTION", "RUN_ELECTION", "GEN_ELECTION", "GEN_ELECTION_PERCENT", "OTHER_POL_CMTE_CONTRIB", "POL_PTY_CONTRIB", "CVG_END_DT", "INDIV_REFUNDS", "CMTE_REFUNDS"]}]
3,579 candidates with 30 columns covering financials, party, state/district, and election type. Key columns:
- CAND_ICI: Incumbent (I), Challenger (C), or Open seat (O)
- TTL_RECEIPTS / TTL_DISB: Total money raised and spent
- COH_COP: Cash on hand at close of period
- CAND_OFFICE_ST / CAND_OFFICE_DISTRICT: State and district (00 = Senate/statewide)
Let's look at the breakdown by candidate status and party.
uvx sqlite-utils query fed-data.db "SELECT CAND_ICI, CASE CAND_ICI WHEN 'I' THEN 'Incumbent' WHEN 'C' THEN 'Challenger' WHEN 'O' THEN 'Open Seat' ELSE 'Unknown' END as status, count(*) as count, printf('$%,.0f', sum(TTL_RECEIPTS)) as total_raised, printf('$%,.0f', avg(TTL_RECEIPTS)) as avg_raised FROM candidates GROUP BY CAND_ICI ORDER BY count DESC" --tableCAND_ICI status count total_raised avg_raised
---------- ---------- ------- -------------- ------------
C Challenger 2010 $448,872,304 $223,320
O Open Seat 856 $316,996,415 $370,323
I Incumbent 672 $1,026,035,397 $1,526,838
Unknown 41 $1,528,688 $37,285
Incumbents are only 19% of candidates but raised 57% of all money — averaging $1.5M vs $223K for challengers. The fundraising advantage is roughly 7:1. Open seat candidates fall in between at $370K average.
Now let's look at party breakdown.
uvx sqlite-utils query fed-data.db "SELECT CAND_PTY_AFFILIATION as party, count(*) as candidates, printf('$%,.0f', sum(TTL_RECEIPTS)) as total_raised, printf('$%,.0f', avg(TTL_RECEIPTS)) as avg_raised, printf('$%,.0f', max(TTL_RECEIPTS)) as max_raised FROM candidates GROUP BY CAND_PTY_AFFILIATION ORDER BY count(*) DESC LIMIT 15" --tableparty candidates total_raised avg_raised max_raised
------- ------------ -------------- ------------ ------------
DEM 1716 $987,000,624 $575,175 $43,231,398
REP 1629 $758,680,126 $465,734 $14,500,290
IND 97 $28,817,099 $297,083 $21,334,881
LIB 28 $221,809 $7,922 $109,991
DFL 18 $11,398,858 $633,270 $3,287,670
OTH 14 $2,154,094 $153,864 $2,087,842
NPA 13 $51,053 $3,927 $20,455
UN 11 $202,050 $18,368 $124,336
NNE 10 $26,894 $2,689 $11,100
GRE 10 $68,320 $6,832 $52,303
W 6 $2,313,846 $385,641 $2,312,308
UNK 5 $2,431,121 $486,224 $2,431,016
NON 4 $35,830 $8,958 $14,600
IDP 3 $8,460 $2,820 $8,454
CON 3 $676 $225 $676
Democrats (1,716) and Republicans (1,629) dominate, together making up 93% of candidates. Democrats have raised $987M vs $758M for Republicans — a $228M edge in total, though this partly reflects having more candidates. DFL (Democratic-Farmer-Labor) is Minnesota's Democratic affiliate.
Notice that single max-raised Democrat hit $43M — let's find out who that is, and see the top fundraisers overall.
uvx sqlite-utils query fed-data.db "SELECT CAND_NAME, CAND_PTY_AFFILIATION as party, CAND_ICI as status, CAND_OFFICE_ST as state, CAND_OFFICE_DISTRICT as dist, printf('$%,.0f', TTL_RECEIPTS) as raised, printf('$%,.0f', TTL_DISB) as spent, printf('$%,.0f', COH_COP) as cash_on_hand FROM candidates ORDER BY TTL_RECEIPTS DESC LIMIT 15" --tableCAND_NAME party status state dist raised spent cash_on_hand
------------------------- ------- -------- ------- ------ ----------- ----------- --------------
OSSOFF, T. JONATHAN DEM I GA 0 $43,231,398 $22,671,225 $25,550,739
KRISHNAMOORTHI, S DEM O IL $30,481,291 $23,905,475 $6,575,816
OCASIO-CORTEZ, ALEXANDRIA DEM I NY 14 $23,658,045 $13,983,781 $13,408,910
KELLY, MARK DEM I AZ 0 $22,203,173 $11,721,386 $14,884,220
SANDERS, BERNARD IND I VT 0 $21,334,881 $10,149,517 $21,926,125
COOPER, ROY DEM O NC 0 $21,070,824 $6,842,849 $14,227,974
TALARICO, JAMES DEM C TX 0 $20,694,809 $15,906,718 $4,788,090
WEIL, JOSHUA JOSEPH DEM C FL 6 $15,933,478 $15,933,478 $0
WEIL, JOSHUA JOSEPH DEM C FL 0 $15,933,478 $15,933,478 $0
BOOKER, CORY A. DEM I NJ 0 $15,471,158 $4,758,900 $21,904,744
JOHNSON, JAMES MICHAEL REP I LA 4 $14,500,290 $6,600,178 $9,152,489
BROWN, SHERROD DEM C OH 0 $14,356,451 $4,456,809 $9,899,642
WARNER, MARK ROBERT DEM I VA 0 $12,141,616 $4,329,263 $13,365,586
MURPHY, CHRISTOPHER S DEM I CT 0 $11,631,864 $6,329,938 $10,828,701
JEFFRIES, HAKEEM DEM I NY 8 $10,327,241 $9,417,063 $5,864,742
Jon Ossoff (D-GA) leads all fundraisers at $43.2M — he's the incumbent Georgia Senator gearing up for 2026. AOC and Krishnamoorthi are notable for running for higher office (both seeking Senate seats). Bernie Sanders raised $21.3M but has $21.9M cash on hand — more than he raised this cycle, thanks to carryover.
Joshua Weil (FL) appears twice — once for district 6 and once for district 00 (Senate) — likely running for both or a data artifact.
The top 15 is overwhelmingly Democratic (13 of 15). Speaker Mike Johnson is the lone Republican at $14.5M. Let's check the top Republican fundraisers specifically.
uvx sqlite-utils query fed-data.db "SELECT CAND_NAME, CAND_ICI as status, CAND_OFFICE_ST as state, CAND_OFFICE_DISTRICT as dist, printf('$%,.0f', TTL_RECEIPTS) as raised, printf('$%,.0f', COH_COP) as cash_on_hand FROM candidates WHERE CAND_PTY_AFFILIATION = 'REP' ORDER BY TTL_RECEIPTS DESC LIMIT 10" --tableCAND_NAME status state dist raised cash_on_hand
------------------------ -------- ------- ------ ----------- --------------
JOHNSON, JAMES MICHAEL I LA 4 $14,500,290 $9,152,489
FLEMING, JOHN C. JR. C LA 0 $8,681,836 $2,115,984
SCALISE, STEVE MR I LA 1 $7,843,280 $5,528,286
COLLINS, SUSAN M. I ME 0 $7,393,291 $8,039,234
HUSTED, JON I OH 0 $7,348,700 $5,963,439
EMMER, THOMAS EARL JR. I MN 6 $6,763,927 $4,945,131
BARR, GARLAND ANDY I KY 6 $6,489,657 $6,471,050
BARR, GARLAND ANDY O KY 0 $6,489,657 $6,471,050
CRUZ, RAFAEL EDWARD TED I TX 0 $6,442,446 $2,467,066
KIM, YOUNG I CA 40 $6,339,771 $5,496,764
Republican fundraising is notably lower at the top — Speaker Mike Johnson's $14.5M leads, but the #2 Republican (John Fleming at $8.7M) would rank around 20th overall. Susan Collins ($7.4M) has more cash on hand than she raised this cycle — strong carryover from prior cycles.
Andy Barr (KY) appears twice — likely both his House seat and a Senate exploratory. Let's look at the geographic distribution — which states have the most candidates and money?
uvx sqlite-utils query fed-data.db "SELECT CAND_OFFICE_ST as state, count(*) as candidates, printf('$%,.0f', sum(TTL_RECEIPTS)) as total_raised, printf('$%,.0f', avg(TTL_RECEIPTS)) as avg_raised FROM candidates GROUP BY CAND_OFFICE_ST ORDER BY sum(TTL_RECEIPTS) DESC LIMIT 15" --tablestate candidates total_raised avg_raised
------- ------------ -------------- ------------
TX 348 $166,659,867 $478,908
CA 331 $132,081,387 $399,037
NY 170 $118,635,307 $697,855
IL 165 $102,896,464 $623,615
FL 236 $94,541,269 $400,599
GA 114 $89,094,836 $781,534
NC 125 $63,703,071 $509,625
AZ 88 $62,820,740 $713,872
MI 114 $60,987,909 $534,982
LA 41 $58,116,545 $1,417,477
OH 88 $52,099,381 $592,038
NJ 122 $46,538,207 $381,461
PA 90 $44,917,555 $499,084
KY 50 $44,250,213 $885,004
VA 116 $43,624,294 $376,071
Texas leads in both candidate count (348) and total money ($167M), followed by California ($132M). But the most interesting column is average raised per candidate:
- Louisiana averages $1.4M/candidate — inflated by Speaker Johnson's war chest and a competitive Senate race
- Georgia averages $782K — Ossoff's $43M anchor plus competitive House races
- Arizona averages $714K — a perennial swing state
Now let's look at the cash-on-hand picture — who's sitting on the biggest war chests vs who's already spent it all?
uvx sqlite-utils query fed-data.db "SELECT CAND_NAME, CAND_PTY_AFFILIATION as party, CAND_OFFICE_ST as state, printf('$%,.0f', COH_COP) as cash_on_hand, printf('$%,.0f', TTL_RECEIPTS) as raised, printf('%.0f%%', (COH_COP * 100.0 / TTL_RECEIPTS)) as pct_banked FROM candidates WHERE TTL_RECEIPTS > 1000000 ORDER BY COH_COP DESC LIMIT 10" --tableCAND_NAME party state cash_on_hand raised pct_banked
-------------------- ------- ------- -------------- ----------- ------------
OSSOFF, T. JONATHAN DEM GA $25,550,739 $43,231,398 59%
SANDERS, BERNARD IND VT $21,926,125 $21,334,881 103%
BOOKER, CORY A. DEM NJ $21,904,744 $15,471,158 142%
KENNEDY, JOHN NEELY REP LA $17,412,628 $5,973,246 292%
THUNE, JOHN R. REP SD $17,018,310 $2,793,133 609%
KHANNA, ROHIT DEM CA $15,454,963 $9,579,628 161%
NUNES, DEVIN G. REP CA $15,321,497 $2,225,712 688%
TORRES, RITCHIE JOHN DEM NY $14,935,105 $5,052,480 296%
KELLY, MARK DEM AZ $14,884,220 $22,203,173 67%
COOPER, ROY DEM NC $14,227,974 $21,070,824 68%
The 'pct_banked' column reveals a fascinating pattern. Candidates with >100% banked have more cash than they raised this cycle — meaning they carried over massive war chests from prior cycles:
- John Thune (R-SD): 609% — raised only $2.8M this cycle but sits on $17M. As Senate Majority Leader, he's stockpiled from years of fundraising.
- Devin Nunes (R-CA): 688% — left Congress for Trump Media CEO role but still has $15.3M in campaign funds.
- Cory Booker (D-NJ): 142% — carryover from his presidential campaign.
- Bernie Sanders: 103% — similarly sitting on prior-cycle money.
Let's look at the spending efficiency — candidates who burned through everything.
uvx sqlite-utils query fed-data.db "SELECT CAND_NAME, CAND_PTY_AFFILIATION as party, CAND_OFFICE_ST as state, printf('$%,.0f', TTL_RECEIPTS) as raised, printf('$%,.0f', TTL_DISB) as spent, printf('$%,.0f', COH_COP) as cash_left, printf('$%,.0f', DEBTS_OWED_BY) as debt FROM candidates WHERE TTL_RECEIPTS > 500000 ORDER BY DEBTS_OWED_BY DESC LIMIT 10" --tableCAND_NAME party state raised spent cash_left debt
--------------------------- ------- ------- ---------- ---------- ----------- -----------
SCOTT, RICK SEN REP FL $1,289,827 $1,292,783 $795,408 $24,138,834
MCCORMICK, DAVE REP PA $3,486,813 $3,259,267 $833,024 $21,148,697
MORENO, BERNIE REP OH $1,879,101 $785,798 $1,471,623 $8,289,894
JOHNSON, RON HAROLD MR. REP WI $814,324 $531,823 $1,190,547 $8,027,317
SHREVE, JEFFERSON REP IN $2,296,135 $308,424 $2,119,426 $7,900,000
CONSTANTINO, ANTHONY THOMAS REP NY $5,005,073 $2,256,726 $5,055,234 $7,600,000
CHATZKY, PETER DEM NY $6,051,760 $527,684 $5,524,076 $5,501,000
LYNCH, MARK REP SC $5,573,433 $999,022 $4,574,411 $5,050,000
ISSA, DARRELL REP CA $1,491,705 $491,497 $2,644,824 $5,024,682
TRONE, DAVID DEM MD $6,010,148 $2,383,972 $3,630,017 $5,000,000
Several candidates carry enormous debts — mostly from self-funding:
- Rick Scott (R-FL): $24.1M in debt, having famously spent over $100M of his own money across campaigns
- Dave McCormick (R-PA): $21.1M — self-funded much of his Senate bid
- The pattern is clear: candidates who loan their campaigns large sums show up here when those loans aren't repaid
Finally, let's see the self-funding picture directly — who's putting their own money in?
uvx sqlite-utils query fed-data.db "SELECT CAND_NAME, CAND_PTY_AFFILIATION as party, CAND_OFFICE_ST as state, printf('$%,.0f', CAND_CONTRIB + CAND_LOANS) as self_funded, printf('$%,.0f', TTL_RECEIPTS) as total_raised, printf('%.0f%%', ((CAND_CONTRIB + CAND_LOANS) * 100.0 / TTL_RECEIPTS)) as pct_self FROM candidates WHERE TTL_RECEIPTS > 500000 AND (CAND_CONTRIB + CAND_LOANS) > 0 ORDER BY (CAND_CONTRIB + CAND_LOANS) DESC LIMIT 10" --tableCAND_NAME party state self_funded total_raised pct_self
--------------------------- ------- ------- ------------- -------------- ----------
FLEMING, JOHN C. JR. REP LA $8,125,000 $8,681,836 94%
CHATZKY, PETER DEM NY $5,751,005 $6,051,760 95%
TRONE, DAVID DEM MD $5,406,107 $6,010,148 90%
TRONE, DAVID DEM MD $5,406,107 $6,010,148 90%
LYNCH, MARK REP SC $5,050,000 $5,573,433 91%
CONSTANTINO, ANTHONY THOMAS REP NY $5,000,000 $5,005,073 100%
MORRIS, NATE REP KY $4,452,000 $6,005,803 74%
ARQUETTE, ADAM PEREZ REP KY $3,329,000 $3,329,000 100%
OBERWEIS, JAMES MR. REP FL $3,102,051 $3,358,586 92%
O'DONNELL, MARTY REP NV $3,007,000 $3,154,409 95%
Self-funding is heavily Republican — 7 of the top 10 self-funders are GOP candidates. Anthony Constantino (R-NY) and Adam Arquette (R-KY) are at 100% self-funded. John Fleming (R-LA) put $8.1M of his own money into his Senate race — 94% of his total.
David Trone (D-MD), a liquor store magnate, appears twice (same pattern as other dual-filing candidates).
Let's wrap up with a summary of the overall financial picture.
uvx sqlite-utils query fed-data.db "SELECT count(*) as total_candidates, printf('$%,.0f', sum(TTL_RECEIPTS)) as total_raised, printf('$%,.0f', sum(TTL_DISB)) as total_spent, printf('$%,.0f', sum(COH_COP)) as total_cash_on_hand, printf('$%,.0f', sum(DEBTS_OWED_BY)) as total_debt, printf('$%,.0f', sum(TTL_INDIV_CONTRIB)) as from_individuals, printf('$%,.0f', sum(OTHER_POL_CMTE_CONTRIB)) as from_pacs, printf('$%,.0f', sum(POL_PTY_CONTRIB)) as from_parties FROM candidates" --table total_candidates total_raised total_spent total_cash_on_hand total_debt from_individuals from_pacs from_parties
------------------ -------------- -------------- -------------------- ------------ ------------------ ------------ --------------
3579 $1,793,432,804 $1,913,224,075 $807,162,521 $611,374,847 $1,104,462,728 $246,282,327 $2,627,674
The 2026 FEC candidate universe shows $1.79 billion raised across 3,579 candidates, with $1.91 billion spent (more than raised, thanks to carryover from prior cycles). Key takeaways:
- Incumbency is everything: 672 incumbents raised $1.03B — more than the 2,866 challengers and open-seat candidates combined
- Individual donors dominate: $1.1B (62%) came from individual contributions vs $246M from PACs and just $2.6M from parties directly
- Democrats lead in fundraising: $987M vs $759M for Republicans, though Republicans have more self-funders
- Massive carryover war chests: Total cash on hand ($807M) is 45% of total raised, meaning many incumbents are sitting on years of accumulated funds
- $611M in debt: Largely from candidate self-loans, concentrated among wealthy Republican candidates
- Texas and California generate the most total money, but Louisiana and Georgia have the highest per-candidate averages due to marquee races