The Portland Record

How the record is kept

Methodology

How data gets here

Automated pipelines fetch official public records — portland.gov vote records, official meeting minutes, published budget and program reports — on a fixed schedule. Every raw document is archived before parsing, so every figure can be re-checked against the original.

The two-source rule

Any fact attributed to a named person (a vote, a quote, an attendance record) is extracted from a primary source and independently cross-checked against a second source. If the two sources agree, the record enters review with high confidence. If they disagree, it is blocked until a human resolves the discrepancy. Nothing publishes from a single automated extraction.

Human approval

Anything naming a person requires explicit per-item editor sign-off before it renders — no exceptions, including when both sources agree. Aggregate records that pass every automated check (two independent sources in agreement, a link to the official document, no parse uncertainty) publish on a daily schedule; a run containing any disagreement, low-confidence record, or parse failure is held for an editor instead. Errors found after publication are corrected and logged on the corrections page.

Sources and dates

Every figure renders with a link to its source document and an “as of” date. If a dataset goes past its update budget, the affected page shows a prominent “data may be outdated” banner automatically.

What this project does not do

  • No scores, grades, or rankings of councilors — measurements only (attendance, votes cast, dissents).
  • No vote tallies from video or transcripts. Written records (the vote database and official minutes) are the source of truth for votes; video is used only for quotes, commitments, and time allocation.
  • No speaker attribution from auto-captions presented as fact — attribution is tentative until a human checks the video at the cited timestamp.
  • No pledges-vs-actions comparisons at this time. That feature requires editorial infrastructure this project hasn't earned yet.
  • No placeholder, estimated, or illustrative data — ever.

Peer city comparisons

Each peer-city metric uses exactly one methodology from one source, applied identically to every city — never a mix of indexes. The published set: BEA Regional Price Parities for price levels (metro area), Zillow Research ZORI/ZHVI for market rents and home values (metro area), BEA per-capita personal income for the city's core county, and the Tax Foundation's annual table for state income-tax rates. Portland's local income taxes are added from the administering governments' own pages, with each component sourced separately. Future metrics keep the same rule — homelessness would use HUD AHAR Continuum-of-Care counts over CoC-area population, office vacancy a single brokerage source across all cities. Every figure documents its source, period, and geography on the cost of living page.