Methodology
Boring on purpose. If you want to attack a claim on fwdio.org, this page is where you start.
What's in v1 (May 2026 prototype)
- Measure 120 (statewide Oregon transportation referendum)
- Measure 26-261 (Multnomah County Oregon Historical Society levy)
What's out of v1 (and why)
- Federal races (US Senate, US House, Governor primary) — too much candidate data to do well in a 7-day prototype window. Strong receipts beat shallow coverage.
- Judicial races— accurately characterizing judicial records requires opinion analysis, a separate discipline. Won't fake it.
- Personalized address-based ballot lookup — v1 defaults to the Multnomah ballot for all visitors.
- Candidate dashboards — coming next. v1 ships with measures only.
Sources
- Oregon Secretary of State State Voters' Pamphlet (Book 13) — authoritative for Measure 120 and state-level content.
- Multnomah County Voters' Pamphlet — authoritative for Measure 26-261 and county-level content.
- Oregon Legislative Information System (OLIS) — roll-call votes for incumbents (v1.1).
- ORESTAR — Oregon campaign finance filings (v1.1).
How the AI works (and doesn't)
Plain-English answers come from Claude (Anthropic), constrained to the corpus on this site — the official pamphlets and the source registry. If a question can't be answered from those sources, the model is instructed to refuse and say so rather than fill the gap with general knowledge.
The model never tells you who to vote for, never grades or scores candidates, and never renders a verdict ("good," "bad," "corrupt," etc.). It translates and cites. The conclusions are yours.
Limitations we're upfront about
- The arguments printed in any pamphlet are written by the people who paid the fee or gathered the signatures. Multnomah County explicitly states: "We do not correct spelling, punctuation, grammar, syntax, errors or inaccurate information." fwdio.org reproduces them as-is.
- v1 covers measures only. Candidate accountability dashboards (the core "said X / did Y" product) ship next.
- Translations to languages other than English are pending in v1.
- fwdio.org is not a substitute for oregonvotes.gov for procedural questions (registration, drop boxes, ballot tracking).
Verbatim public language corpus
For each candidate, fwdio.org collects a corpus of their own words from venues with editorial control or institutional record: candidate websites, official testimony, news interviews, debate transcripts, legislative-committee remarks. Every quote is verbatim— not paraphrased, not summarized, not selectively edited. The reader sees what was said, with a link to the source.
Why this matters:a candidate's pamphlet is polished and aspirational; their voting record is institutional and structural; their public language is where they reveal their actual framing of issues. Reading 15 of their statements on a topic reveals patterns no single quote can — the words they reach for, who they portray as agents vs. patients, what they treat as natural baseline vs. as problem to solve.
Honesty about asymmetry:some candidates publish extensively (campaign websites, op-eds, testimony); others post rarely or not at all. fwdio.org displays the count per candidate so you can see who's built a heavy public-language footprint and who hasn't. Absence of statements is itself a signal, not something we paper over with summaries.
What we don't do:we don't cherry-pick quotes to fit a narrative. The scraper pulls every paragraph, heading, and list-item from the source page above a length threshold and classifies it by topic via a published keyword list. The classifier is public; the source URLs are public; anyone can re-run it. Candidates and campaigns who want to surface specific statements can submit them with sources to hi@fwdio.org for inclusion.
Linguistic pattern analysis
Each candidate page and each topic-comparison page now includes a mechanical analysis of the candidate's verbatim public language: word frequencies (after stopword removal), distinctive vocabulary (TF-IDF against the rest of the candidate corpus), pronoun usage breakdown (we / I / you / they), modal verb counts (must / should / will / can ...), Flesch reading-ease score, and top repeated 2- and 3-word phrases.
The discipline:these are mechanical counts. fwdio.org never says one candidate's language is “better,” “more honest,” “more patriotic,” or “more divisive.” We surface the patterns. The reader does the interpretation.
What we don't do:sentiment analysis (too interpretive); LLM-generated “agent vs. patient” framing analysis (would require us to render judgment); or any value-loaded characterization. The library is src/lib/linguistic-analysis.ts in the public repo — the algorithms, stopword list, and pronoun categories are open-source and inspectable.
Asymmetry caveat:distinctive-vocabulary comparisons depend on the size of the comparison corpus. A candidate with 17 statements compared against the union of 5 other candidates' statements yields different distinctive words than the same candidate compared against just one other. We show the per-thousand-words rate next to raw counts so the reader can normalize mentally.
Metro Council verification (Legistar API)
Metro Council uses Granicus Legistar to manage meetings, legislation, and votes. Legistar exposes a public REST API at webapi.legistar.com/v1/oregonmetro that gives us explicit named ayes, nays, and excused for every roll-call vote. fwdio.org's scripts/fetch-metro.ts uses that API to pull and cache structured roll-call records; anyone can reproduce by re-running the script.
We use Legistar votes to verify or contradict candidate claims with named primary-source data — e.g., Christine Lewis's claim that she “pushed back hard on unfair tolling schemes” is verified by Resolution 22-5234 (April 26, 2022) where she was the sole dissenting vote (6-1) on adding the I-205 Tolling Project Preliminary Engineering Phase to the regional Metropolitan Improvement Program. The same vote shows Juan Carlos González as an Aye and the seconder of the motion.
When a candidate's framing differs from Metro's (e.g., “delivered” vs. “on track to create” on the Affordable Housing Bond), fwdio.org surfaces both verbatim and lets the reader compare. We don't reword to make claims fit.
Campaign finance (ORESTAR)
Oregon's campaign-finance system, ORESTAR, is a session-state-heavy web app without a public REST/OData API. In v1.3, every candidate page links directly to the canonical ORESTAR entity search and transaction search for their principal campaign committee. You can verify totals and individual transactions on the authoritative Oregon Secretary of State system today. v1.4 will ingest contribution totals, top-contributor lists, and source-category breakdowns inline via the ORESTAR Bulk Data Download.
What we won't do:publish a dollar amount that can't be traced to a specific ORESTAR row. If we can't cite it, we don't show it.
Tamper resistance
The data behind fwdio.org will live in a public Git repository (signed commits, validated in CI). Anyone can audit every claim against its source. Mirrors are planned across multiple hosts so that no single platform can be pressured to remove or alter content. See About & funding.
Spot an error?
Email hi@fwdio.org with the page URL and the source you're citing. Candidates and campaigns: right-of-reply submissions go to the same address and will be embedded on the relevant page once verified against a primary source.