Methodology
How the numbers are built
Rosters
Each cycle has a roster file listing every race and its candidates with FEC candidate IDs. It is seeded from the FEC's elections endpoint (candidates who filed and raised money) and then edited by hand after primaries so that only nominees and active candidates appear. Withdrawn and defeated candidates stay in the file but are not shown.
Records
A nightly job asks Poliscope for each candidate's fundraising profile, contribution-size and geography breakdowns, PAC contributors, congressional profile and roll-call votes (current and previous Congress), STOCK Act trades and trade/lobbying overlap signals, gift and travel filings, independent expenditures targeting the candidate, dark-money traces for the groups that spent in their favor, revolving-door lobbying records, and executive-branch disclosures. Each section is fetched independently, so one failing source leaves a note on the profile rather than dropping the whole candidate.
The money race
Bars show total receipts for the cycle as reconciled by Poliscope from FEC candidate and principal-committee filings. Outside spending is the sum of Schedule E independent expenditures by committee and stance. “Dark money in” is the sum of grants a spending committee received from 501(c) nonprofits, as traced by Poliscope with exact identifier matches only.
Flags
Flags are defined in a single configuration file. A donor-network flag matches when (a) a named PAC or person gave directly to the candidate's committees in this or the previous cycle, or (b) a named super PAC ran independent expenditures supporting the candidate. Opposition spending is also recorded and labeled. Committee names are resolved to FEC IDs once and stored; unresolved names are skipped, never guessed, and spenders are matched by FEC ID rather than name. A committee belongs to a network only when FEC filings show the connection (for example, AIPAC is United Democracy Project's largest donor). Pop-up committees that press reports tie to a network are not counted, because the money is not visible in filings. Each flag's exact checks are listed on the hot buttons page. Being opposed by a network is shown separately from being funded by it.
Industry flags use Poliscope's sector classification of a candidate's individual donors by employer. A sector flag applies only when that sector is one of the candidate's three largest and gave at least $50,000; the same few sectors lead nearly every candidate's list, so appearing anywhere on it would mean nothing. Sector names are used as-is (the health care sector is mostly physicians and hospitals, not drug makers), and union PAC money is not captured by this classification. Record flags come from the candidate's own filings (any STOCK Act trade, any gift or travel filing, presence in lobbying registrations, and so on). Thresholds, such as “more than 60% out-of-state,” are stated in each flag's description.
Limits
Poliscope covers federal records only. Entity resolution across databases is probabilistic and errs toward not linking. FEC data lags by up to a quarter for some committees. Gift and travel coverage begins in 2018 (House) and 2022 (Senate). Amounts for stock trades are ranges, as reported. Nothing here establishes wrongdoing; it shows what was filed.
Attribution
Source: Poliscope (poliscope.org), based on FEC, Congress.gov, LDA, SEC, USAspending, OGE and congressional gift and travel records. Please cite Poliscope when reusing figures from this site.