Methodology
How the data is collected, processed, and presented
Data Source
All campaign finance data on this site is fetched from the Federal Election Commission's public API
(api.open.fec.gov), specifically the
candidates/totals/ endpoint. This endpoint returns aggregated financial totals per candidate
per election cycle, sourced from the official disclosure filings that campaigns submit to the FEC.
Candidate Filtering
Not every FEC registrant appears on this site. Candidates are included only if they meet all of these conditions:
- They are running for a federal office (Senate, House, or President).
- They are flagged as an active candidate by the FEC (
is_active_candidate=true). - They have raised at least some funds (
has_raised_funds=true).
This intentionally excludes paper candidates and filings with zero activity. The 2024 cycle covers approximately 1,566 candidates; the 2026 cycle currently tracks 1,482.
Update Cadence
During active election periods, data is refreshed weekly using an automated script that calls the FEC API with an authenticated key. Each refresh re-fetches all three offices (Senate, House, President) for all configured cycles. The timestamp of the last update is shown in the banner at the top of every page.
FEC reporting itself is not continuous. Campaigns file quarterly reports during off-peak periods and monthly reports in the final months before an election. Totals on this site lag FEC filing deadlines by up to a few days.
Financial Fields
The following FEC fields are used throughout the site:
- Total Raised (receipts): All money received by the campaign committee, including individual contributions, PAC contributions, party transfers, loans, and the candidate's own funds.
- From Individuals (individual_itemized_contributions): Itemized donations from private individuals. Federal law caps individual contributions at $3,300 per candidate per election (2024 limits).
- From PACs (other_political_committee_contributions): Contributions from PACs, leadership PACs, and other political committees. PACs may contribute up to $5,000 per candidate per election.
- Total Spent (disbursements): All campaign expenditures reported to the FEC.
- Cash on Hand: Unspent funds at the end of the most recent reporting period.
Sector Classification (Partial Rollout)
We are building a sector classification layer that maps individual PAC committees to industry categories (finance, energy, defense, technology, etc.). This is being rolled out in phases:
- Phase 1 (current): Sector taxonomy defined; committee-to-sector mappings being built manually and via FEC committee category codes.
- Phase 2: PAC-level contribution breakdowns fetched for the top 200 candidates by receipts per cycle.
- Phase 3: Per-member sector breakdown pages and industry leaderboards.
Until Phase 3 is complete, sector data is not displayed on public pages. Initial coverage will be limited to the top 200 candidates per cycle; full coverage requires additional API calls.
Known Limitations
- FEC reporting lag: Totals reflect the last filed report, not real-time activity. Late filings appear after the official deadline.
- Super PAC independent expenditures excluded: Money spent by Super PACs on behalf of a candidate (independent expenditures) does not flow through the candidate's committee and is not included in candidate receipt totals. Super PAC spending is substantial in some races and is not captured here.
- Dark money excluded: Spending by 501(c)(4) social welfare organizations is not fully disclosed in FEC filings and is not reflected in these totals.
- Slate duplicates: The FEC may have multiple committee records for the same candidate across different election contexts. We deduplicate by candidate ID and use the highest-total record per candidate per cycle.
- Minor party and independent candidates: Included if they meet the filtering criteria above, but the "Other / Independent" category is a heterogeneous mix.
Open Data
The underlying FEC data is public domain. Scripts used to fetch and process it are available on request. Contact [email protected].