Data sources

Every claim Aligned Vote makes about a politician traces back to the public record. Here is exactly where that record comes from — all of it official or open data, freely available to anyone who wants to check our work.

  • Congress.gov (Library of Congress)

    Federal bills, House roll-call votes, sponsorship and cosponsorship records, the current member roster, and the CRS bill summaries we read when inferring a position.

    We store bill metadata only; CRS summary text is fetched from the Congress.gov API when it is needed and is not retained.

  • senate.gov

    Senate roll-call votes, published as XML. Congress.gov does not expose a Senate-vote endpoint, so Senate votes come straight from the Senate itself.

  • FEC — OpenFEC API

    Campaign-finance summaries — aggregate top-donor totals per election cycle for federal candidates.

  • Federal Register

    Presidential actions — executive orders, proclamations, and memoranda — used to infer the President’s positions.

  • @unitedstates/congress-legislators

    An open, community-maintained dataset of legislator identifiers. We use it to cross-reference IDs across the sources above (matching Senate and FEC records back to each member) and for the Senate class and term data behind the upcoming-elections page.

  • vote.gov

    Official voter-registration and election information. Rather than hand-keying 50 states’ deadlines, the elections page links you to your state’s official vote.gov page for authoritative dates.

What's in the product today

Aligned Vote currently covers federal offices: every sitting U.S. Representative and Senator, plus the President. The evidence behind their positions spans the 117th through 119th Congresses (2021–2027) for legislation and votes, and the full record of executive actions for each president in the database.

Governors aren't loaded yet. We plan to add the 50 state governors using biographical data from Wikidata, but that data is not yet in the directory — so for now the governor slot shows a placeholder rather than a match. We'd rather show a gap than imply we have data we don't.

How we turn these records into a match is described on the methodology page. Think we got something wrong? Use the “Report inaccuracy” link on any position, or the contact page.