Three separate records
A profile keeps apart what a person says, what legislation an officeholder introduced or sponsored, and how that officeholder voted. PortlandVotes then publishes a separate, reviewable assessment of how those records compare.
What counts as evidence
For public actions, Portland legislation and roll-call records come first. For statements, we prefer City office pages, candidate-controlled campaign sites, candidate-authored questionnaires, and direct quotations in established local reporting—in that order.
Advocacy questionnaires may document a candidate’s own answer, but ratings and endorsements do not set a position. Social posts, scorecards, unattributed summaries, and inferred positions are excluded from matcher scoring.
Quotations and changing websites
Displayed excerpts are exact and limited to 25 words. Each one records its source, retrieval date, and checksum. Older campaign material is labeled historical. If no current campaign website is found, the profile says when the search was last run; it does not imply that the person has no positions.
Comparing statements with a voting record
For councilors, comparisons use the district-council term beginning January 2025. Earlier commissioner-era work remains separate. We normally require two relevant votes, or one unusually direct vote or sponsored action, before calling a record consistent with or in tension with a stated position.
Votes can contain amendments, procedural decisions, or bundled provisions. The assessment links to the underlying records and uses one of four labels: record aligns, some tension, mixed record, or not enough record. It does not declare a promise kept or broken.
How the matcher works
Voter and candidate positions use the same five-point scale from −2 to +2. For each comparable issue, the absolute distance is divided by four. Compatibility is 100 multiplied by one minus the average distance, rounded to the nearest whole percentage.
For incumbents, a sufficient public record takes precedence over campaign language. A statement is used only when the record is insufficient, at lower confidence. Mixed records, skipped answers, and missing evidence are excluded. A percentage appears only after four comparable issues, and coverage is shown separately.
Interpretation rules
- A missing position is not treated as opposition.
- Conflicting evidence is labeled mixed rather than silently averaged.
- Every scored position needs direct evidence and a human-readable explanation.
- Coverage and confidence are displayed separately from compatibility.
- PortlandVotes never declares a winner or endorsement.
Corrections
Send a source and a description of the issue to corrections@portlandvotes.com. Corrections should update the source record and the displayed “last verified” date.