Why this exists
All of this is already public. None of it is easy to find.
Every figure on this site comes from a government filing anyone may read. Reading them is the problem: the archives are complete, and they were never built to answer the question you actually have.
What it takes to answer one question: who funded my senator?
Find the committee
Campaign money is filed by committees, not by people. Your senator’s name is not the key — a committee ID like
C00696948is, and you have to know which of several belongs to them.committee master12 rows matching SANDERS C00811380BRENDA K. SANDERS FOR CONGRESSprincipal campaign committeeC00931550BRENDA K. SANDERS FOR SENATEprincipal campaign committeeC00719088BRENDA K. SANDERS INDEPENDENT FOR CONGRESSprincipal campaign committeeC00411330FRIENDS OF BERNIE SANDERSprincipal campaign committeeC00936088REV. JARMAL JABBAR SANDERS FOR U.S. HOUSE DISTRICT 2principal campaign committeeC00890301REV. JARMAL JABBAR SANDERS FOR UNITED STATES CONGRESS DISTRICT 2principal campaign committeeC00593301SANDERS FOR CONGRESS INCprincipal campaign committeeC00852962SANDERS FOR OKLAHOMAprincipal campaign committeeC00709238DRAFT SARAH HUCKABEE SANDERS FOR ARKANSASunauthorizedC00960872GOD PLEASE SAVE US I REPEAT PHIL MURPHY VS BERNIE SANDERSunauthorizedC90018987HARRISBURG DSA FOR BERNIE SANDERSunauthorizedC00412445WAYNE-SANDERSON FARMS LLC POLITICAL ACTION COMMITTEEunauthorized
The id above points at BERNIE 2020, which is not in that list at all: the surname is not in its filed name.
Pull the filings
The FEC publishes complete bulk files, which is a service to researchers and a wall to everyone else: pipe-separated records, coded columns, one row per contribution across a two-year cycle, and no header row in the file.
itpas2.txt22 fields, one row CMTE_ID|AMNDT_IND|RPT_TP|TRANSACTION_PGI|IMAGE_NUM|TRANSACTION_TP|ENTITY_TP|NAME|CITY|STATE|ZIP_CODE|EMPLOYER|OCCUPATION|TRANSACTION_DT|TRANSACTION_AMT|OTHER_ID|CAND_ID|TRAN_ID|FILE_NUM|MEMO_CD|MEMO_TEXT|SUB_IDThe file carries no names for these; they are from the Commission’s file description (opens in a new tab). Drag the line to read the rest of it.
Ask who is behind it
Then the hard part. Of 20,624 committees here, only 3,979 — 19% — name the organisation behind them at all. The rest file NONE or leave it blank, and no amount of reading the filing will tell you more.
connected_orgas answered by 20,624 committees Do it again for the votes
Roll calls live somewhere else entirely, in research files keyed to member IDs of their own. Election results live in 15 different state systems, in 15 different formats.
Here it is one search.
The work above is done, on a schedule, for every seat: 539 members, 978,387 votes, 98,462 contributions from 20,624 committees. Type a ZIP code, a name, or a district and the answer is a page — with the filing it came from linked under every number.
The charter
Doing that work creates a second problem: you now have to trust me.
So here are the six clauses this site is written to. Each one is a thing the code does and a line it does not cross — not a standard anybody granted it, and not a promise about intentions. Every clause names what it publishes, so you can go and check that it did.
A vote is a vote, not a position
It publishes 978,387 recorded votes, each with how the chamber split
It refuses to tell you what they support
A vote is a thing someone voted on, not a position. Two readers of the same votes reach different conclusions, and choosing one for you would be the only unsourced number on the page.
Sourced, or not published
It publishes every figure with the document behind it — 44 provenance entries across 30 parts of the record
It refuses to print a number it cannot trace
Provenance travels with the figure, and text you copy carries the citation with it. Where a source is silent, the page says so instead of estimating.
A price is a price, not a probability
It publishes prediction-market prices, as prices
It refuses to publish a forecast, including its own
A price is what a trader will pay for a contract, carrying their fees, their tied-up capital, and however few of them are trading. It is not a probability, and this site has none.
The filer’s words, not ours
It publishes the FEC’s own filing for all 20,624 committees behind 98,462 contributions
It refuses to invent an industry and ship it as fact
Corporation, labor organization, leadership PAC — those are the government's words, not ours. Where an outside publisher has assigned a category, their name travels with it.
Absence stays visible
It publishes absences, labelled as absences
It refuses to draw missing data as zero
A member with no record and a member who voted no are different facts. A chart that renders them the same has made a claim nobody checked.
A measurement, not a verdict
It publishes the gap between how a district votes and how its member does, for the 528 members it can be computed for
It refuses to call that gap good or bad
It is a measurement against the district's own presidential result — an arithmetic distance, not a verdict. What it means is the reader's to decide.
How to hold it to them: every figure carries its filing, and the sources page lists all 36 publishers with the date each part of the record was last read. Words that could hide a judgement are defined in the glossary.
Whose work this is.
Almost none of it is mine. The Federal Election Commission collects the filings; Voteview publishes the roll calls and the ideology estimates; the Census Bureau runs the American Community Survey; each state canvasses and certifies its own returns. This site reads 36 publishers in all and cites every one of them where their figures appear.
Every source, and what it gave