Every fact has a receipt.

How pebblo works

Every fact on pebblo comes from a public record, and we show you which one. Here's where it comes from and what we do with it.

Facts come from official records.Votes, bills and campaign money come straight from Congress and the FEC.
AI-written text is labeled.When AI wrote a summary, we say so and link to the quotes it came from.
Nobody gets the top spot.Candidates appear in random order, and the order changes each visit.
We say when we don't know.If we find nothing, you'll see “No public record found.”

Where the facts come from

Bills and votesGovInfo and Congress.govDaily
Members of CongressCongress.govWeekly
Campaign moneyFederal Election CommissionWeekly
What candidates sayTheir campaign websites and official Bluesky, YouTube and press releasesEvery few hours
Presidential actionsFederal RegisterDaily

Copied vs. written by AI

Copied exactly

  • Vote totals and how each member voted
  • Who sponsored a bill
  • Money raised
  • Candidates' own quotes

Written by AI (Claude)

  • Plain-English bill summaries
  • Topic summaries on race pages, each linked to its sources

How we stay neutral

We never call a bill or a candidate good or bad. Topics use plain labels, like “Immigration” instead of “Border crisis.” We don't sort by party, money, polls, or who's already in office.

Kinds of evidence

Floor voteThey voted yes or no on a bill.Official record
Bill sponsoredThey wrote or signed on to a bill.Official record
Campaign siteQuoted word for word from their website.Their own words
Social postFrom their official accounts.Their own words

What we don't have yet

  • Posts from X (Twitter)
  • Votes and bills from state legislatures. State races are on your ballot, but the records we show come from Congress.
Details for journalists and developers

How bills are sorted into issues

Bill text, status and legislative subjects come from GovInfo, synced daily. Each bill is first sorted by its Congressional Research Service (CRS) policy area, the same taxonomy the Library of Congress uses. A hand-curated table maps the 33 CRS policy areas onto our 41 issues in 12 categories, plus one bucket for ceremonial resolutions. When a policy area covers several issues (“Crime and Law Enforcement” spans policing, gun policy, drugs and trafficking), the bill's legislative subjects and title keywords decide. Bills that still don't fit fall back to text similarity, then to an AI classifier.

How an issue's bills are found

  1. Scope: take the bills filed under the issue's CRS policy areas.
  2. Search: bill text is split into chunks and embedded with all-MiniLM-L6-v2 (384 dimensions). The top 100 chunks are ranked by vector similarity plus keyword matches.
  3. Heat bypass: bills in those policy areas with a heat score of 6 or more are added even if search missed them.
  4. Keyword bypass: high-heat bills from other policy areas that match the issue's keywords are added too. Simple resolutions, which are usually commemorative, are left out of this step.

Heat score

Heat measures how much recent activity a bill is getting, not how many bills exist. Each bill earns points, which add up to a base score of at most 16:

  • Stage (1 to 6): introduced 1, reported by committee 2, placed on the calendar 3, passed one chamber 4, passed with amendments 5, passed both chambers 6
  • Cosponsors (0 to 3): log₂(cosponsors + 1), capped at 3
  • Bipartisan (+2): at least 3 cosponsors, and at least 20% of them from the other party
  • Companion bill (+2): a matching bill exists in the other chamber
  • Recorded vote (+3): the bill has had at least one roll-call vote

The base score is multiplied by a recency factor, 2^(-days since last action / 45), a 45-day half-life. A bill with no action for 10 months has almost no heat. Bills that passed both chambers, became law, failed or were vetoed keep a floor of 0.3 so finished legislation doesn't vanish.

An issue's heat is the average heat of its active bills (heat above 0), scaled 0 to 100 against the hottest issue. Issues with only a few active bills are pulled toward the overall average so one busy bill can't top the list alone. Because it is an average, a handful of bills seeing a lot of action can outrank a large pile of stalled ones.

How topics are shown

Race pages walk through the same 12 topic categories in the same fixed order for every race. Topic names come from our issue list, not from editorial choices, and they use neutral labels (“Immigration”, not “Border crisis”).