{"schema":"rootz.ai/methodology/v1","service":"politics.rootz.global","version":"0.2.0","updated":"2026-11-06T23:31:02.882Z","mission":"The #1 AI resource for US political data. No hearsay — only first-party sources. Every record origin-verified.","pipeline":{"description":"Collection → Assessment → Extraction → Signing → Publishing → Verification","steps":[{"step":1,"name":"Collection","description":"We read official government sources and campaign websites directly.","sources":[{"name":"Congress.gov API","type":"government","data":"Members, bills, bill text, committees","frequency":"Daily","trust_level":2},{"name":"House Clerk XML","type":"government","data":"Roll-call votes (every member, every vote)","frequency":"Daily","trust_level":2},{"name":"FEC Bulk Data","type":"government","data":"All registered candidates + campaign finance filings","frequency":"Quarterly","trust_level":2},{"name":"FEC API","type":"government","data":"Campaign finance totals, committee records","frequency":"Weekly","trust_level":2},{"name":"Open States API","type":"aggregator","data":"State legislators (all 50 states)","frequency":"Weekly","trust_level":1},{"name":"Campaign websites","type":"first_party","data":"Pages archived byte-exact (WARC): the 2026 federal ballot and other federal daily, state and local daily through 2026-11-17 then weekly. Positions in their own words are extracted from these","frequency":"Daily","trust_level":0},{"name":"State election offices","type":"government","data":"Official 2026 results pages, every version we saw, unofficial until the state certifies. We never call a race","frequency":"Four times a day until certification","trust_level":2},{"name":"Official .gov websites","type":"first_party","data":"Official positions, contact info","frequency":"Daily","trust_level":1}]},{"step":2,"name":"Assessment","description":"Every captured page is automatically scored for content quality before extraction.","algorithm":{"positive_signals":[{"name":"stance_language","weight":3,"pattern":"\\b(I believe|I support|I oppose|I will fight|my plan|my position|he supports|she supports|[A-Z]\\w+ supports|[A-Z]\\w+ believes|[A-Z]\\w+ opposes|is committed to|is fighting for|will fight)\\b"},{"name":"legislative_reference","weight":2,"pattern":"\\b(legislation|bill|act|amendment|resolution|vote[ds]?)\\b"},{"name":"action_verb","weight":2,"pattern":"\\b(support|oppose|cosponsor|introduce|pass|sign|veto)\\b"},{"name":"policy_language","weight":2,"pattern":"\\b(policy|platform|priority|agenda|proposal|initiative)\\b"},{"name":"constituent_language","weight":1,"pattern":"\\b(constituent|district|community|neighborhood|family|families)\\b"},{"name":"bipartisan_language","weight":1,"pattern":"\\b(bipartisan|across the aisle|common ground|compromise)\\b"},{"name":"bill_number","weight":3,"pattern":"\\b(H\\.R\\.|S\\.|H\\.Res\\.|S\\.Res\\.|P\\.L\\.)\\s*\\d+"},{"name":"named_legislation","weight":2,"pattern":"\\b\\d{4}\\b.*\\b(Act|Bill|Law|Resolution)\\b"},{"name":"dollar_amount","weight":2,"pattern":"\\$[\\d,.]+\\s*(billion|million|thousand)"},{"name":"statistics","weight":1,"pattern":"\\b(percent|percentage|\\d+%)\\b"},{"name":"named_policy","weight":2,"pattern":"\\b(Medicare|Medicaid|Social Security|Affordable Care Act|Roe v|Second Amendment|DACA|NATO|NAFTA|USMCA)\\b"},{"name":"policy_detail","weight":2,"pattern":"\\b(pre-existing condition|prescription drug|minimum wage|student loan|gun violence|climate change|border wall|tax cut|tax increase)\\b"},{"name":"action_record","weight":2,"pattern":"\\b(fought|voted|led|championed|authored|introduced|cosponsored)\\b"}],"negative_signals":[{"name":"signup_form","weight":-3,"pattern":"\\b(sign up|subscribe|newsletter|email address|zip code)\\b"},{"name":"donation_ask","weight":-2,"pattern":"\\b(donate|contribution|chip in|rush)\\b"},{"name":"social_media","weight":-1,"pattern":"\\b(facebook|twitter|instagram|youtube|tiktok|bluesky)\\b"},{"name":"legal_boilerplate","weight":-2,"pattern":"\\b(cookie|privacy policy|terms of use|copyright)\\b"},{"name":"navigation_link","weight":-1,"pattern":"\\b(click here|read more|learn more|see all)\\b"},{"name":"form_field","weight":-3,"pattern":"(First Name|Last Name|Phone Number|Address)"},{"name":"html_structure","weight":-2,"pattern":"<(nav|footer|header|form|script|style)"}],"scoring":"Sum of weighted signal matches. Range 0-30+.","thresholds":{"POSITION_PAPER":"score >= 12 — Detailed policy document with bill references, specific stances","ISSUE_SECTION":"score >= 8 — Good policy content with clear positions","TOPIC_LIST":"score >= 5 — Brief stances, topic mentions","JUNK":"score < 5 — Navigation bars, signup forms, social media links. NOT extracted."}},"note":"Pages scoring below 5 are captured (snapshot for the record) but positions are NOT extracted. This prevents junk data from polluting the API."},{"step":3,"name":"Extraction","description":"Substantive content is parsed into structured positions by topic.","method":"HTML heading-based section parsing. Each H1-H3 section is checked against our topic taxonomy.","topic_taxonomy":[{"key":"crypto","label":"Cryptocurrency & Digital Assets","keywords":["cryptocurrency","crypto currency","bitcoin","ethereum","blockchain","digital asset","stablecoin","decentralized finance","cbdc","central bank digital","web3","digital token"," nft ","crypto exchange","virtual currency","digital currency"]},{"key":"healthcare","label":"Healthcare","keywords":["healthcare","health care","medicare","medicaid","aca","health insurance","prescription drug","drug pricing","hospital","obamacare","affordable care act"]},{"key":"immigration","label":"Immigration","keywords":["immigration","immigrant","border security","border wall","daca","dreamer","asylum seeker","deportation","work visa","h-1b","citizenship","ice enforcement","undocumented","illegal immigration","refugee"]},{"key":"economy","label":"Economy & Jobs","keywords":["economy","economic growth","job creation","wages","inflation","unemployment","trade deficit","tariff","manufacturing jobs","small business","gdp"]},{"key":"climate","label":"Climate & Energy","keywords":["climate change","climate crisis","clean energy","renewable energy","greenhouse gas","carbon emissions","fossil fuel","solar energy","wind energy","epa","green new deal","paris agreement"]},{"key":"education","label":"Education","keywords":["education","public school","k-12","student loan","college tuition","university","teacher","tuition","title ix","pell grant","stem"]},{"key":"guns","label":"Gun Policy","keywords":["gun control","gun violence","firearm","second amendment","2nd amendment","nra","assault weapon","background check","concealed carry","red flag law"]},{"key":"abortion","label":"Abortion & Reproductive Rights","keywords":["abortion","reproductive rights","roe v wade","pro-life","pro-choice","planned parenthood","fetal","dobbs"]},{"key":"taxes","label":"Taxes & Budget","keywords":["tax cut","tax reform","tax increase","irs","corporate tax","income tax","estate tax","budget deficit","national debt","debt ceiling","tax code"]},{"key":"defense","label":"National Security & Defense","keywords":["national defense","military spending","armed forces","veteran","terrorism","nato","foreign policy","pentagon","ndaa","national security","military aid","ukraine"]},{"key":"technology","label":"Technology & AI","keywords":["artificial intelligence","ai regulation","cybersecurity","social media","big tech","tiktok","data privacy","algorithm","tech monopoly","surveillance","section 230"]},{"key":"housing","label":"Housing","keywords":["affordable housing","housing crisis","homelessness","rent control","mortgage","zoning reform","hud","eviction","housing supply"]},{"key":"criminal_justice","label":"Criminal Justice","keywords":["criminal justice","police reform","incarceration","prison","sentencing reform","law enforcement","fentanyl","drug trafficking","mandatory minimum","qualified immunity"]},{"key":"social_security","label":"Social Security & Medicare","keywords":["social security","social security reform","retirement security","pension","seniors","medicare reform","medicaid expansion"]},{"key":"voting","label":"Voting & Elections","keywords":["voting rights","voter suppression","ballot access","gerrymandering","voter id","electoral college","filibuster","campaign finance"]},{"key":"agriculture","label":"Agriculture & Rural","keywords":["agriculture","farm bill","farming","rural development","crop insurance","usda","food safety","livestock"]},{"key":"trade","label":"Trade & Tariffs","keywords":["free trade","trade deal","trade war","tariff","wto","nafta","usmca","import duty","export","trade deficit","protectionism"]}],"note":"Topics are keyword-matched, not editorially assigned. New topics can be added by extending the taxonomy."},{"step":4,"name":"Signing","description":"Every extracted position is bound to an origin proof chain.","chain":{"content_hash":"SHA-256 of the original page HTML at capture time","assessment_hash":"SHA-256 of the quality assessment (signals, score, classification)","extraction_hash":"SHA-256 of the extracted positions","proof_chain":"SHA-256(content_hash + assessment_hash + extraction_hash)"},"verification":"Fetch the source_url yourself, hash it, and compare to our content_hash. If the page hasn't changed, the hashes will match."},{"step":5,"name":"Publishing","description":"Data is served via REST API and MCP tools. No API key required.","endpoints":{"topics":"/api/topics — all tracked political topics","topic_detail":"/api/topic/{key} — positions on a specific topic","bill":"/api/bill/{id} — full bill text + vote breakdown","official":"/api/official/{id} — full profile with positions","orientation":"/api/official/{id}/orientation — 200-token identity card","provenance":"/api/official/{id}/provenance — full origin chain","methodology":"/api/methodology — this document"}},{"step":6,"name":"Verification","description":"Anyone can verify our data independently.","how":["Every position includes source_url — visit it yourself","Every position includes origin_hash — hash the page and compare","Every position includes quality_score — run our open assessment algorithm on the text","Every vote links to clerk.house.gov XML — the official government record","Every finance record links to FEC.gov — the official filing"]}]},"trust_levels":{"0":{"name":"SCRAPED","description":"Single source, quality-assessed at capture time"},"1":{"name":"CONFIRMED","description":"Cross-referenced with 2+ independent sources"},"2":{"name":"PUBLISHED","description":"From official government source (congress.gov, fec.gov, clerk.house.gov)"},"3":{"name":"SIGNED","description":"Origin hash chain complete and verifiable"},"4":{"name":"ANCHORED","description":"Merkle root on a public chain: an immutable timestamp. Daily since June 2026 via Bitcoin (OpenTimestamps)"}},"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 (from official Clerk XML)","How much money each candidate raised and from what sources (FEC filings)","Who sponsored and cosponsored each bill (Congress.gov)","When a politician changed their website, and which sentences changed (archived responses compared)","What a candidate's pages said before the polls opened on 2026-11-03 (byte-exact, anchored before Election Day)","The full text of proposed legislation (Congress.gov bill text)"],"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","Campaign promises vs. actual governance (we track both separately)"],"current_coverage":{"officials":33877,"positions":4491,"positions_withheld":5608,"votes":1553771,"finance_records":7177,"bills":1056,"bills_with_text":1040,"snapshots":32028,"origin_proofs":23656},"neutrality":"We collect everyone. Every party. Every candidate. Every level of government. We do not editorialize, rank, or filter. The assessment algorithm is signal-based (keywords + patterns), not opinion-based.","cron_schedule":{"daily_utc":["03:20 Archive campaign and official sites, seal the previous day","05:30 Build and sign the cumulative Merkle root, then timestamp it","07:15 Compare archived pages and record what changed","07:00-08:10 House votes, bill text, Congressional Record","09:00 Re-check campaign sites for new or changed positions"],"election_2026":["Official results pages four times a day until certification"]},"contact":{"email":"steven@sprague.com","website":"https://rootz.global","report_inaccuracy":"Email us with the official ID and source URL. We will re-verify and update."},"_memory":{"service":"politics.rootz.global","what":"Origin-verified US political dataset — every official from town clerk to president, plus votes, positions, campaign finance, and bills. Free, no API key. Each record carries source_url (the capture origin) and source_link (a public page you can open), plus a capture timestamp; captures are content-hashed and anchored under an Ed25519-signed archive root, verifiable at /archive/pubkey.","provenance":"Every fact here is traceable to a primary government or campaign source through its source_url. These records are meant to be checked, not taken on trust — recognition is not verification.","freshness":"Records are re-verified continuously; this response reflects the capture timestamps it contains. Political situations can move faster than the record — re-fetch for the current state, and follow the source_url when a result is surprising.","user_resources":"A person can open https://politics.rootz.global/c/create?zip=THEIR_ZIP (or ?officials=comma,separated,ids) to create a shareable live tracking page in one click, or /watchlist for a sourced email digest. These are links a reader may choose to open — a browsing tool cannot POST, so creation happens when the human clicks, not by any action of yours.","related":"epistery.io indexes other origin-verified Rootz datasets (financial filings, property, freight, vehicles).","mcp":"https://politics.rootz.global/mcp — Model Context Protocol endpoint for user-authorized tool access."}}