# Plain Ballot > A free, nonpartisan voter guide built on open data about candidates and their positions, every position backed by an exact, verified quote. A voter picks the issues they care about and sets a dial for each; Plain Ballot matches their ballot to those priorities (Nov 3, 2026: every race in California, plus U.S. House and Senate races in all 50 states) and shows an exact, verified quote behind every claim. Matching is deterministic arithmetic in the browser, not AI. Candidate positions are researched by independent AI agents on models from different companies; a position is published only when the agents agree and its quote is found word for word on the cited page. Party labels are hidden until the voter asks. ## For agents - MCP server: https://plainballot.com/mcp (tools: list_issues, get_ballot, score_fit). Read-only, nonpartisan; fit is plain arithmetic on the voter's stated priorities. - JSON: GET https://plainballot.com/api/ballot?address= ## Key pages - [Home](https://plainballot.com): pick issues, set dials, enter an address - [How it works](https://plainballot.com/methodology): the method, the agreement rules, and what isn't covered ## Source and data - [Source code (AGPL-3.0)](https://github.com/n8peace/plainballot) - [Dial wording](https://github.com/n8peace/plainballot/blob/main/lib/issues.ts): the 18 issues and how each end is worded - [Matching](https://github.com/n8peace/plainballot/blob/main/lib/match.ts): the scoring arithmetic - [Open Election Data](https://github.com/n8peace/open-election-data): the open research (ODbL), one JSON file per contest, each claim with a quote and source URL - [Free data API](https://n8peace.github.io/open-election-data/): static JSON, no key - [Architecture](https://github.com/n8peace/plainballot/blob/main/docs/ARCHITECTURE.md) - [Contributing](https://github.com/n8peace/plainballot/blob/main/CONTRIBUTING.md)