100%

On the Record: 30 days, two cities

A voter guide built from actual votes and candidates’ own words. Two cities went live in 30 days, with a source on every line.

On 7 September, On the Record was a conversation. On 7 October, it is live in Washington DC and New York City.

Your ballot, on the record

On the Record finds the candidates on a voter’s ballot. The voter types what they care about. The site returns each candidate’s actual votes and their own words on that issue, with a source on every line.

On the ballot pages, nothing is summarized, scored or ranked, and no AI-written text appears. Every sentence there is either a recorded vote or the candidate’s own verbatim words. The race briefs, added on 19 October, are the exception: a model drafts each one, I review it, and the quotes in it stay verbatim.

Both cities went live in 30 days. A group of friends and I built them.

Why the record matters

Most voter guides paraphrase candidates or rank them. On the Record shows the primary record and leaves the judgment to the voter.

The two sites contain 1,834,947 member-vote records and 18,928 verbatim quotations across 221 candidates. Volume is not the standard; provenance is. Every quotation is checked character for character before admission, and every record carries its source URL and a verification stamp. The quotations resolve to 14,579 distinct source pages.

The current integrity gate checked all 18,928 quotations for duplicated or nested text, third-person campaign copy, page furniture, legal pages, fused words and unsupported languages. It returned zero problems. The databases also contain zero exact duplicate candidate–quotation–source rows.

Coverage has a denominator. The build tracks 384 known candidate channels. All 384 were either read successfully or explicitly marked “searched; nothing usable found.” Of 221 candidates, 194 have at least one verified quotation and 27 do not. The site leaves those gaps visible rather than filling them with inference.

The vote data passes the same test. All 1,834,947 vote rows link to a known member and an official vote action. The current databases contain zero orphan vote rows and zero duplicate member–action pairs.

Subject labels are deliberately sparse: 5,602 of 18,928 quotations, or 29.6%, carry one. In the 40-quote human audit, 38 labels fit the topic and 35 quotations were both readable and correctly labelled. A missing label understates the record; a guessed label would falsify it.

The errors ordinary voter guides miss

Automatic votes are not personal votes. In DC, 64,040 of 91,078 recorded positions, or 70.3%, are automatic voice-vote positions that no member chose. On the Record shows only the 27,038 choices a member actually expressed.

Words about a candidate are not the candidate’s words. The system rejects campaign copy written about someone rather than by them. The same gate removes endorsers’ words, page furniture and office posts that describe the candidate instead of quoting them.

“Against the majority” is a weak measure in a one-party legislature. In New York, the site instead measures how often a member voted against their own party. Among the city’s members of Congress, that count ranges from 18 to 117.

AI everywhere, none of its words on the ballot pages

Outside the race briefs, the model finds, sorts and criticizes, but it never speaks to the voter. Every model output passes through a deterministic check before it appears.

A search engine, never a source. The model searches X and returns only post IDs. The system fetches the quote text and date from each post ID, so the model cannot paraphrase or invent them. In the DC build, 1,843 posts were found and all 1,843 were verified.

A labeller, measured like a classifier. Topic labels are the one model judgment on the ballot pages. A human cold read measures their precision. A run at 87.5% shipped; a run at 70% did not. A wrong label is a lie. A missing label only understates the record.

A critic whose findings become tests. A fresh model reviews screenshots without prior context. Every countable finding becomes a numeric rule. A script renders every page at phone and desktop width and checks about 60 design rules before release.

Plain code wherever judgment would drift. Rules with self-checks filter third-person campaign copy and the wrong language. Facts are fixed when the data is built. If a member’s party is unknown, the party-line field stays blank; the system never guesses.

Feedback becomes a release rule

Reviewer feedback becomes a measurable rule, so a repaired defect cannot quietly return. Data has its own release bar: every candidate’s channels are read, topic labels are spot-checked, and any candidate below the bar is held back.

Each release is first proven on a spare copy. Production has a one-step rollback.

Built for the voter, not the campaign

One tap can find a voter’s districts from their location. The location is used once and never stored. The sites need no account and have no tracking. They work on a phone.

The guides remain off search engines on purpose until the 3 November election. New York early voting opens on 24 October. DC early voting opens on 26 October.

The voter gets the source record. The voter makes the call.


Sources · 4
  1. dcvotes.pdwn.pagedcvotes.pdwn.page
  2. nyvotes.pdwn.pagenyvotes.pdwn.page
  3. read.pdwn.pageread.pdwn.page/b/on-the-record
  4. read.pdwn.pageread.pdwn.page/library/padawan-whitepaper

890 words, read from the filed brief.