Data sources

Officeholder selection

The "current officeholder" for each office is selected via SQL on cf_candidates joined to cf_contributions:

ROW_NUMBER() OVER (PARTITION BY office
                  ORDER BY MAX(contribution_date) DESC NULLS LAST,
                           SUM(contribution_amount) DESC,
                           candidate_id DESC)

Most-recent-fundraising activity is the strongest signal of "currently in office" for non-legislator roles. State legislators are filtered separately via vote_count > 0 in the 83rd Session NELIS roll-call dataset.

Accountability research leads vs. allegations

Every flag on every page is a research lead, not an allegation. The auditor pipeline detects statistically-suspicious patterns (correlations between contributions and bill votes, name-matching between officeholders and the PERS pension database, etc.). A flag means "this warrants further investigation," not "this person did anything wrong."

Frameworks cited per flag type:

Update cadence + freshness

Politician profiles regenerate from upstream sources on a nightly cron on workstation (3:30 AM Pacific). Each profile carries a data_quality.last_verified timestamp. Stale profiles (last_verified > 120 days) display a "stale verification" banner.

Sitemaps are submitted to IndexNow (Bing + Yandex) on every successful rebuild. Cloudflare cache is purged for changed paths.

Editorial discipline (non-negotiable)

Corrections + tips

If a fact on any page is wrong — please tell us. Submit a tip . Every correction is logged with date and reason.