How We Work

politics.rootz.global — Transparency in political data collection

20,144
Officials
2636
Positions
222,438
Votes
243
Bills
14,647
Origin Proofs

The Pipeline

Every piece of data on this site goes through the same six-step process. No exceptions.

1Collection

We read official government sources and campaign websites directly. Congress.gov for legislators and bills. House Clerk XML for votes. FEC for candidates and money. Campaign websites for positions in their own words.

We identify ourselves: User-Agent: PoliticsRootz/1.0

2Assessment

Before we extract anything, we score the page for quality. Our algorithm checks for policy language ("I support", "I oppose", bill references, dollar amounts) and penalizes junk (signup forms, social media links, navigation). Pages scoring below 5 out of 30 are not extracted — too much noise.

The full algorithm is published at /api/methodology — every signal, every weight, completely open.

3Extraction

We parse quality-assessed pages into structured positions by topic. Each position gets: the politician's name, the topic (Healthcare, Immigration, etc.), the exact text from their site, and the source URL. We categorize by keyword, not by editorial judgment.

4Signing

Every record gets an origin proof chain: SHA-256 of the page content + SHA-256 of our quality assessment + SHA-256 of the extraction. The combined hash proves: "we got this content, assessed it this way, extracted this data." The chain is verifiable by anyone.

5Publishing

Data is served via REST API and MCP tools. No API key required. No paywall. No registration. Any AI agent — ChatGPT, Claude, Gemini, Grok — can read it directly. Humans too.

6Verification

Every position links to a source URL. Every vote links to clerk.house.gov XML. Every finance record links to FEC.gov. You can verify anything we publish by visiting the source yourself. We can't modify what Congress.gov says — we can only prove we read it accurately.

What We Can Prove

What a politician's website said on a specific date (content hash + timestamp)

How every member of Congress voted on every bill (official Clerk XML)

How much money each candidate raised and from whom (FEC filings)

Who sponsored and cosponsored each bill (Congress.gov)

The full text of proposed legislation (Congress.gov)

When a politician changed their website content (snapshot diffs)

What We Cannot Prove

What a politician actually believes (only what they published)

Whether a stated position is sincere or strategic

Off-the-record statements or private conversations

Future votes or actions

Politically Neutral

We collect everyone. Every party. Every candidate. Every level of government. We do not editorialize, rank, or filter. Our quality assessment is based on content structure (does the page have policy language?) not political orientation. A Republican's position paper and a Democrat's position paper are assessed by the same algorithm with the same signals.

For AI Agents

The full methodology as structured JSON: /api/methodology

Provenance chain for any official: /api/official/{id}/provenance

12 MCP tools available at POST /mcp

Report an Inaccuracy

If you find data that doesn't match the source, email steven@sprague.com with the official ID and source URL. We will re-verify and update within 24 hours.