Methodology
CivicView surfaces what your elected officials say and do, then lets verified constituents respond — in their own districts. This page explains where the data comes from, how we transform it, and the choices we make along the way.
Where federal data comes from
Congressional roster, biographical info, committee assignments, and photos pull from the official Congress.gov API and the volunteer-maintained unitedstates.io image mirror. For newly-sworn members who haven't been added to either source yet (mid-cycle appointees, etc.), we fall back to a Wikipedia thumbnail and surface the member with the same placeholder treatment used for unclaimed pages. The author and license of every Wikimedia Commons photo are listed on our Photo credits page and shown under the photo on each profile.
Bills and presidential actions come from Congress.gov and the Federal Register. Roll-call votes come from the official records of the Clerk of the House and the U.S. Senate, which list how every member voted on each roll call. We cache the underlying records so a temporary outage at the source doesn't blank out the app.
The party-line figure on a member's profile counts the roll calls of the current Congress on which most Republicans and most Democrats voted on opposite sides. It shows how often the member voted with most of their own party on those votes. Votes where the member answered “present” or did not vote are left out, and so are elections of the Speaker, where members vote for a person rather than yes or no. The figure appears once there are at least 10 such votes. It is calculated the same way for every member. Independents have no party majority to compare with, so no figure is shown for them.
A member who changes party, in either direction, is measured only on the votes cast in their current party: the party the official record gives on their most recent vote. If that party is independent, no figure is shown.
State and local data
State legislators in all 50 states come from Open States' bulk data, which links each record to the legislature's own website. Governors and statewide officers come from each state's official website. Florida has the deepest coverage: its judiciary, local officials for 28 cities, and candidates checked against the Florida Division of Elections. Other states are added as we verify them.
Candidate lists come from the FEC for federal candidates and, in Florida, from the Division of Elections. Some candidates' background details and endorsements cite their campaign website, a news report, Ballotpedia or Wikipedia, and each one links to the source it came from. We do not scrape social media, and we do not write positions for candidates or officials: anything attributed to a person links to where it came from.
How AI summaries work
The "Translate to plain English" and "What was this vote?" features use Anthropic's Claude Haiku to rephrase official bill summaries and vote questions for general readers, and "Explain in plain English" on a ballot measure uses Claude Sonnet, which kept closer to the official wording in our tests. For these features we send the model only the public text of the bill, vote question or ballot measure. A ballot measure explanation sits under the official ballot summary, ends with what a Yes vote and a No vote mean, never says how to vote, and is only saved when every figure in it appears in the official text. The focus areas shown for state legislators are also written by Claude, from the titles of their sponsored bills, and are labeled that way. Separately, comments and polls are sent to Claude to tag their tone and topic and to screen for threats, as described in our Privacy Policy.
AI-generated explanations are always shown alongside the original Congressional Research Service summary or official vote text, not as a replacement. If our translation conflicts with the primary source, the primary source is what matters.
How posts get attributed
Every rep and candidate page on CivicView starts as "unclaimed" — meaning we surface what officials say and do publicly, but the page hasn't been claimed by the official or their staff yet. Verified reps and candidates can claim their page by emailing civicview@civicview.app while the automated verification flow is still in development.
Once claimed, posts on that page are attributed to the rep or candidate. Until claimed, citizens can still start polls and conversations on the page — these are clearly labeled as "Citizen-led" so a visiting reader knows the rep hasn't responded. If the official later claims the page, those polls close to new votes and stay public on the page with their results.
How engagement is counted
Polls, reactions, and comment counts are aggregated by geography for the page owner (rep or candidate): they see how many citizens in their district, state, or city engaged — but never individual citizen identities. The same display shows other visitors country-wide totals.
Citizens see their own engagement history in their dashboard. No rep or candidate sees a list of "who voted on my poll" — only the aggregate by district.
Update cadence
- Member rosters: resynced from Congress.gov on every backend restart, typically daily.
- Bills: the public records are pulled lazily — when a citizen opens a bill we haven't cached yet, we fetch it then.
- Votes: checked for new roll calls every hour from 9 a.m. to midnight Eastern on weekdays, and every 6 hours otherwise.
- Candidate data: updated manually as primaries and general elections approach.
What we don't do
CivicView does not endorse candidates, parties, or positions. We don't run ads. We don't sell user data. We don't add editorial commentary on top of official records — our job is to make those records easier to find, read, and respond to. See our Editorial standards for the operational details on how this plays out in moderation.