PSI Sci
New here? Follow the money and the votes · Not sure of your district? Find your U.S. House member · Find your state legislators

Follow the flow › Step 4 of 16 · Voting path

4. Campaign donations

People, companies' political committees (PACs), unions and parties give money to candidates. Big gifts must be reported: who gave, how much, their ZIP code, and their employer. Companies cannot give straight to federal candidates, but their PACs and employees can. This is where you can see who helps pay for a campaign.

Show sources for:

Who holds the money or the vote here?

The candidate's campaign committee holds the money; PACs and parties hold their own.

How often does it happen?

All the time, reported to the FEC monthly or quarterly, with extra reports before each election.

Where the records come from

Federal data is the same for everyone. When you pick a state, the state and local rows are the places to look for your state. "Have now" means PSI Sci already collects it; "Planned" means we list the source but do not collect it yet.

Sources for step 4, Campaign donations, by level of government
LevelSourceFormatHow oftenOn PSI Sci
FederalFEC: candidate totals (OpenFEC API)
PSI Sci collects totals for current members and 2026 candidates
APIdailyHave now
FederalFEC bulk data: individual contributions (itemized, with ZIP and employer)bulkweeklyPlanned
StateState ethics / campaign finance office (example: the Texas one)
Every state has one; formats differ
bulk/searchper filing periodPlanned
CountyCounty elections office / county clerk campaign reports
Often on paper or PDF
page/PDFper filing periodPlanned
CityCity secretary / city clerk campaign finance reportspage/PDFper filing periodPlanned
DistrictFEC data filtered to the House district (candidate office_district)APIdailyPlanned
ZIPFEC individual contributions grouped by contributor ZIPAPI/bulkweeklyPlanned

See these sources as searchable records (rendered live).

See it on PSI Sci now

Variable names

Variable names we use for this step (prefix shows the level)
VariableFederalStateCountyCityDistrictZIP
donation_amountfed_donation_amountst_donation_amountcnty_donation_amountcty_donation_amountdist_donation_amountzip_donation_amount
donor_namefed_donor_namest_donor_namecnty_donor_namecty_donor_namedist_donor_namezip_donor_name
donor_zipfed_donor_zipst_donor_zipcnty_donor_zipcty_donor_zipdist_donor_zipzip_donor_zip
donor_employerfed_donor_employerst_donor_employercnty_donor_employercty_donor_employerdist_donor_employerzip_donor_employer
donor_typefed_donor_typest_donor_typecnty_donor_typecty_donor_typedist_donor_typezip_donor_type
recipient_candidate_idrecipient_candidate_idrecipient_candidate_idrecipient_candidate_idrecipient_candidate_idrecipient_candidate_idrecipient_candidate_id
recipient_committee_idrecipient_committee_idrecipient_committee_idrecipient_committee_idrecipient_committee_idrecipient_committee_idrecipient_committee_id
cash_on_handfed_cash_on_handst_cash_on_handcnty_cash_on_handcty_cash_on_handdist_cash_on_handzip_cash_on_hand

IDs (like bioguide_id, bill_id, piid, zcta) have no prefix because they already say what they point to.