FactHub curated dataset

Washington I-645 media coverage, coded (June–Oct 2026)

118 news, broadcast, opinion and editorial stories about Washington's I-645 (repeal of the 9.9% tax on income over $1 million) from 26 outlets, published June 1 to Oct 21, 2026, each coded with one codebook for sourcing balance, unchecked campaign claims, omitted key facts, terminology and factual errors. Includes summary tables by outlet group and a blind second-coder reliability check.

Coverage: 2026-06-01 to 2026-10-21 (publication dates)

Node: dataset:wa-i645-media-coding

What this dataset measures

Stories were collected from the outlets named in the audit design: mainstream and public media (18 outlets), conservative outlets (6) and progressive advocacy media (2), found through outlet search and tag pages, sitemaps, web search and syndicated copies. The aim was every substantive I-645 story we could find from each outlet in the window, with at least two per outlet where they existed. Pure link roundups, letters to the editor, and video-only pages with no text were excluded.

Curated data tables

These related tables form this versioned dataset release. Each table has its own downloadable file and field definitions.

Coded I-645 stories

One row per story about I-645 published June 1 to Oct 21, 2026 by 26 Washington and national outlets, coded with one codebook (media_coding_codebook.md).

Unit of observation: One news story, explainer, broadcast write-up, opinion piece or editorial

View this table

i645_media_coding.csv text/csv · 107.7 KB (110,330 bytes)
40 field definitions
FieldTypeMeaningUnitsValue type
story_id string Row identifier assigned by the coder (stable within this release). — observed
outlet string Publishing outlet (masthead), one of 26. — observed
outlet_detail string Outlet as recorded by the coder, e.g. "Seattle Times via Spokesman-Review" for a syndicated copy. — observed
outlet_group string mainstream, conservative or progressive, assigned by the audit design before coding (not by our judgment of each outlet). — observed
date date Publication date (YYYY-MM-DD). — observed
author string Byline as published. — observed
headline string Headline as published. — observed
url string Story URL. Copies used to read blocked pages are listed in notes. — observed
read_status string full or partial (paywall). No row is unread in this release. — observed
type string news, explainer, fact_check, broadcast (counted as news), opinion or editorial. — observed
yes_sources integer Distinct Yes-side (repeal) advocates quoted or paraphrased. count observed
no_sources integer Distinct No-side advocates quoted or paraphrased. count observed
neutral_sources integer Neutral sources (agencies, courts, pollsters, nonpartisan analysts). count observed
first_word string Side of the first advocate quoted: yes, no, neutral or none. — observed
last_word string Side of the last advocate quoted. — observed
rebuttal string Y if the other side responds to the story's lead claim; N if not; NA for opinion. — observed
headline_term string How the headline names the tax. — observed
loaded_terms string Loaded words; Q: prefix = only inside a quotation. — observed
no_claims_unchecked string Semicolon list of No-campaign claim codes repeated with no context on that claim (codebook). — observed
yes_claims_unchecked string Semicolon list of Yes-campaign claim codes repeated with no context. — observed
claims_checked string Claim codes the story itself contextualized or checked. — observed
O1 integer 1 if the story says the tax relief survives repeal (AG statement); 0 if not. 0/1 observed
O2 integer 1 if it says the revenue goes to the general fund / is not dedicated to K-12. 0/1 observed
O3a integer 1 if it says collections start in 2029. 0/1 observed
O3b integer 1 if it says no current appropriation relies on the tax (in any voice; see O3b_voice). 0/1 observed
O4 integer 1 if it says the 2027-29 budget outlook counts on the revenue (in any voice; see O4_voice). 0/1 observed
O5 integer 1 if it says lawmakers, not voters, could lower the $1 million threshold. 0/1 observed
O6 integer 1 if it says the revenue estimate is static or the revenue volatile. 0/1 observed
O7 integer 1 if it reports the No side's union funding or that No outraised Yes. 0/1 observed
O8 integer 1 if it mentions Heywood's (or Yes donors') personal financial interest. 0/1 observed
O9 integer 1 if it mentions the legal risk I-645's text poses to the capital gains tax. 0/1 observed
O3b_voice string fact (reporter or neutral source) or advocate (only in a campaign side's quote) when O3b = 1. — derived
O4_voice string fact or advocate when O4 = 1. — derived
has_error integer 1 if the coder recorded a factual error in reporter or outlet voice, minor ones included. 0/1 observed
errors string The error, the correct fact, and whether a correction was found. — observed
ballot_sentence string none, mentioned, quoted or critiqued. — observed
dhm_poll string Y if the story reports the DHM poll's with/without-sentence result; partial; N. — observed
key_quote string Verbatim passage of 25 words or fewer illustrating the coding. — observed
sources_detail string Who was counted on each side. — observed
notes string Coder notes. — observed

How often stories included each key fact

For each group of stories and each fact (O1-O9, plus the voice split for O3b and O4), how many stories included it.

Unit of observation: Story group by fact

View this table

media_omission_rates.csv text/csv · 8.4 KB (8,583 bytes)
7 field definitions
FieldTypeMeaningUnitsValue type
group string Story group, e.g. "Mainstream news" (news, explainer, fact check and broadcast stories from mainstream outlets). — derived
fact_code string Codebook fact code; -fact / -advocate suffix = voice split. — derived
fact string Plain-language fact. — derived
rebuts_claims_of string Which campaign's claims the fact rebuts. — derived
stories_including integer Stories that included the fact. stories derived
stories_coded integer Stories coded for the fact. stories derived
share_including number stories_including / stories_coded. fraction derived

Campaign claims: unchecked vs contextualized

For each story group and graded campaign claim, how many stories repeated it with no context and how many contextualized it.

Unit of observation: Story group by campaign claim

View this table

media_claim_checks.csv text/csv · 4.3 KB (4,445 bytes)
7 field definitions
FieldTypeMeaningUnitsValue type
group string Story group. — derived
claim_code string Codebook claim code. — derived
claim_side string Yes or No campaign. — derived
claim string The claim. — derived
stories_unchecked integer Stories repeating it with no context. stories derived
stories_contextualized integer Stories that contextualized or checked it. stories derived
share_contextualized number Contextualized share. fraction derived

Sourcing balance by story group

Average sources per side, first and last word, missing rebuttals, unchecked-claim counts and claim-check rates by story group.

Unit of observation: Story group

View this table

media_sourcing_balance.csv text/csv · 638 bytes
16 field definitions
FieldTypeMeaningUnitsValue type
group string Story group. — derived
stories integer stories. count derived
avg_yes_sources number avg yes sources. sources per story derived
avg_no_sources number avg no sources. sources per story derived
first_word_yes integer first word yes. count derived
first_word_no integer first word no. count derived
last_word_yes integer last word yes. count derived
last_word_no integer last word no. count derived
no_rebuttal integer no rebuttal. count derived
stories_with_unchecked_no_claim integer stories with unchecked no claim. count derived
stories_with_unchecked_yes_claim integer stories with unchecked yes claim. count derived
no_claim_instances integer no claim instances. count derived
no_claim_instances_contextualized integer no claim instances contextualized. count derived
yes_claim_instances integer yes claim instances. count derived
yes_claim_instances_contextualized integer yes claim instances contextualized. count derived
stories_with_error integer stories with error. count derived

Agreement between the first coding and a blind second coder

Percent agreement and Cohen's kappa on a stratified random sample of 20 news stories (14 mainstream, 6 conservative; seed 645).

Unit of observation: Coded field

View this table

media_recode_agreement.csv text/csv · 1,022 bytes
6 field definitions
FieldTypeMeaningUnitsValue type
field string Coded field; O3b and O4 shown before and after the voice re-pass. — derived
stories integer Stories compared. stories derived
agree integer Stories where both coders agreed. stories derived
percent_agreement number Agreement. percent derived
cohens_kappa number Cohen's kappa (blank when one category only). — derived
disagreements string story_id:first→second for each disagreement. — derived

Supporting files

Source snapshots, manifests, quality reports, documentation, and other materials used to produce or review this release.

  • media_derived.json Derived table · application/json · 41.5 KB (42,472 bytes)

    The summary tables as JSON (omission, claims, sourcing, chartRows), used for the saved analyses.

  • media_recode_agreement.json Quality report · application/json · 2.7 KB (2,746 bytes)

    Agreement results as JSON.

  • media_recode_second_coder.md Quality report · text/markdown · 10 KB (10,263 bytes)

    The blind second coder's codes and justifications for the 20 sampled stories.

  • media_coding_codebook.md Data dictionary · text/markdown · 7.9 KB (8,114 bytes)

    The codebook: every column, claim code and omission fact, with definitions.

  • media_coding_overrides.json Transformation manifest · application/json · 1.2 KB (1,191 bytes)

    The voice re-pass for O3b and O4 and the N460K correction, applied after the reliability check.

  • media_audit.js Transformation manifest · text/javascript · 8.7 KB (8,906 bytes)

    Merges the coders' notes into the stories table and applies the overrides.

  • media_audit_derived.js Transformation manifest · text/javascript · 8.7 KB (8,949 bytes)

    Computes every summary table from the stories table.

  • media_recode_agreement.js Transformation manifest · text/javascript · 4.4 KB (4,480 bytes)

    Computes percent agreement and Cohen's kappa against the second coder.

  • media_dataset_parts.json Documentation · application/json · 49.4 KB (50,565 bytes)

    Sources, table and field definitions, and headline rows for this release, generated by media_dataset_build.js.

  • media_dataset_build.js Transformation manifest · text/javascript · 15.2 KB (15,559 bytes)

    Builds the sources, table definitions and headline rows.

Saved analyses

How often stories told readers the key budget facts

Question: In news stories, how often did mainstream and conservative outlets report that no current budget relies on the tax, that the relief survives repeal, that nothing is dedicated to K-12, that the 2027-29 outlook counts on the revenue, and Heywood's personal stake?

Result: Mainstream news (58 stories): no current appropriation relies on the tax, stated as fact in 2 (7 in any voice); relief survives repeal 9; not dedicated to K-12 8; the outlook counts on the revenue, stated as fact in 6 (7 in any voice); Heywood's stake 1. Conservative news (16): 1, 5, 7, 0 and 1.

Operation: Count of stories with each fact = 1 divided by stories coded for it, by group; O3b and O4 also counted for reporter or neutral voice only (-fact).

Scope: Fully read news-type stories only (58 mainstream, 16 conservative); opinion and editorials excluded, and one paywalled, partly read Columbian story excluded so every fact shares one denominator.

View this analysis

  • Search-based sample; see dataset limitations.
  • Omission of a fact is not by itself an error: short stories can't carry every fact.

Robustness checks

  • Sensitivity analysis: Blind second-coder agreement. A blind second coder agreed with the first coding on the relief fact in 20 of 20 sampled stories. On O3b and O4 the first pass agreed in 18 of 20; the misses were mentions inside advocates' quotes, which led to the voice re-pass of every news story. After it, agreement on both was 20 of 20.

Key facts reported: mainstream vs conservative news

Question: What share of mainstream and of conservative news stories included each key fact, and which campaign's claims does each fact rebut?

Result: Mainstream news included the facts that rebut the No side in 3-26% of stories; conservative news in 6-44%. The No side's strongest fact (the outlook counts on the revenue) appeared as fact in 10% of mainstream and 0% of conservative news stories.

Operation: Share of news stories including each fact, two groups; O3b and O4 in reporter or neutral voice only.

Scope: News-type stories only.

View this analysis

  • Shares rest on 58 mainstream and 16 conservative news stories.

Every key fact by every story group

Question: How often did each story group include each of the ten codebook facts?

Result: See the omission-rates table.

Operation: Share including each fact, all groups.

Scope: All read stories, split into seven groups.

View this analysis

  • Opinion groups are not comparable with news groups: opinion writers argue one side by design.

Campaign claims repeated unchecked vs contextualized

Question: When a story carried a graded campaign claim, did it give context or a rebuttal on that claim?

Result: Mainstream news: the No side's '460,000 families' tax-increase claim went unchallenged in 9 of the 12 stories that carried it; the Yes side's pension claim was contextualized in 5 of 7. Overall, 18 mainstream news stories left a No claim unchecked and 18 left a Yes claim unchecked.

Operation: Count of stories per claim with the claim unchecked vs contextualized, by group.

Scope: All read stories.

View this analysis

  • Small counts per claim.

Sourcing balance and claim-check rates

Question: Did stories quote both sides equally, give both sides the first and last word, and check both sides' claims at the same rate?

Result: Mainstream news (58): 1.4 Yes vs 1.8 No sources per story; first word Yes 30, No 24; last word Yes 24, No 25; 10 without a rebuttal; 12 of 43 No-claim mentions contextualized vs 17 of 38 Yes. Conservative news (16): 1.8 Yes vs 1.4 No; last word Yes 12, No 3; 9 without a rebuttal.

Operation: Averages and counts by group.

Scope: Fully read news-type stories, plus all progressive rows.

View this analysis

  • Counting advocates does not weigh how much space each got.

Blind second-coder agreement

Question: How closely does an independent coder, blind to the first coding, reproduce it?

Result: Agreement 85-100% on every field; source lean 100%; relief survives 100%; O3b and O4 90% before the voice re-pass, 100% after.

Operation: Percent agreement and Cohen's kappa per field on 20 randomly drawn news stories (14 mainstream, 6 conservative, seed 645).

Scope: 20 news stories.

View this analysis

  • 20 stories is a small sample; kappa is unstable when one category dominates.

Robustness check for: How often stories told readers the key budget facts

Sources

  1. Seattle Times Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  2. Spokesman-Review Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  3. The Columbian Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  4. Everett Herald Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  5. Tri-City Herald Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  6. Washington State Standard Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  7. KUOW Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  8. Cascade PBS Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  9. The Stranger Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  10. Deseret News Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  11. Cascadia Daily News Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  12. KOMO Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  13. KING 5 Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  14. KIRO 7 Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  15. KXLY Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  16. Fox 13 Seattle Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  17. Axios Seattle Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  18. KREM Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  19. The Center Square Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  20. Seattle Red/KTTH Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  21. MyNorthwest/KIRO Newsradio Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  22. Washington Policy Center Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: Advocacy group. Free-market think tank that argued for I-645 (repeal); its staff are quoted as Yes-side sources. Its own I-645 posts are coded rows (opinion).

  23. The Daily Wire Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  24. Lynnwood Times Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: News report. News publisher whose coverage is the subject of the coding; its I-645 stories (June 1 to Oct 21, 2026) are rows in the stories table. It has no stake in the counts beyond its own coverage.

  25. NPI Cascadia Advocate Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: Party to the dispute. Northwest Progressive Institute, part of the coalition opposing I-645; it published the No coalition's legal memo. Its blog posts are coded rows (opinion).

  26. The Stand Publisher of coded I-645 stories. Each story's exact URL is in the stories table (column url); the publisher's site is listed here.

    Retrieved October 21, 2026. All rights reserved (publisher copyright). Story text is not redistributed. The dataset holds coding, story metadata and quotes of 25 words or fewer.

    Reliability: Party to the dispute. News site of the Washington State Labor Council, AFL-CIO, which opposes I-645 and whose president debated for the No side. Its posts are coded rows.

  27. Washington Research Council, "New brief: I-645: Repealing the State Individual Income Tax" (Sept. 22, 2026) Anchor for facts O3b (no current appropriation relies on the tax) and O4 (the 2027-29 outlook assumes the revenue). Free copy

    Retrieved October 21, 2026. All rights reserved. Linked only.

    Reliability: Other. Business-funded nonpartisan fiscal research group. Its brief states both that no current appropriation relies on the tax and that the four-year outlook assumes $2.698 billion from it in 2027-29.

  28. Washington Secretary of State, 2026 General Election Voters' Pamphlet (Edition 10, Spokane) Anchor for fact O1 (the Attorney General's explanatory statement says the tax relief would remain in place) and for the ballot sentence text.

    Retrieved October 21, 2026. Washington State government publication. Linked only.

    Reliability: Government. Official state publication. The explanatory statement and ballot disclosure are written by the Attorney General's office; the statewide text is the same in every edition.

  29. Economic and Revenue Forecast Council, enacted 2026 supplemental budget outlook (Apr. 22, 2026) Anchor for fact O4: the outlook counts ESSB 6346 revenue in 2027-29.

    Retrieved October 21, 2026. Washington State government publication. Linked only.

    Reliability: Government. State council that adopts the official four-year balanced-budget outlook; lists ESSB 6346 at +$2,309.18 million (net) for 2027-29.

Limitations and reproducibility

Partially reproducible: The coded rows are judgments by trained coders following media_coding_codebook.md; a reader can re-read any story at its URL and recode it. Every summary table is recomputed exactly from the stories table by media_audit_derived.js (node media_audit_derived.js), and the reliability table by media_recode_agreement.js from media_recode_second_coder.md. media_audit.js, which merged the coders' working notes, is included for transparency, but those working notes are not published.

  • Not a random sample. Stories were found by search, so outlets whose sites block automated reading (Tacoma News Tribune, Bellingham Herald, The Olympian) are missing and the Tri-City Herald has one story. No AP story on I-645 was found.
  • TV stories were coded from their web text, not the broadcast video.
  • Coding involves judgment. A blind second coder recoded 20 randomly drawn news stories: agreement was 85-100% on every field (Cohen's kappa 0.33-1.0), 100% on which side had more sources and on the relief-survives fact.
  • The second-coder check showed the first coding missed several mentions of two budget facts (O3b, O4) and one claim (N460K) that appeared only inside advocates' quotes. Every news story's text was then searched for them and each mention was classified by voice (media_coding_overrides.json). O3b and O4 counts include both voices; O3b_voice and O4_voice separate them.
  • The relief fact (O1) and the other omission facts were not split by voice; they mostly appear in reporter voice.
  • Outlet groups follow the audit design, not a measurement of each outlet's slant. The Stranger is grouped as mainstream though it is an openly progressive weekly; MyNorthwest/KIRO Newsradio is grouped as conservative though two of its rows are straight news.
  • Per-outlet counts are small (1 to 14 stories) and describe this sample, not the outlet's overall coverage.
  • An omitted fact is not necessarily an error: short event stories cannot carry every fact. Omission rates measure what readers of these stories were told, not intent.
  • Sample size for the news groups: 58 mainstream news stories, all read in full. An earlier internal count used 53-54 because five KING 5 and KREM stories had not yet been read (they were later read in a browser) and one paywalled Columbian story was only partly read; that story is now excluded from the news groups so every fact shares one denominator.

Publications using this dataset

Version details

The exact citing versions, and the version of this dataset each cites.

  • Article i645-media-coverage-omissions — version 4 (published) cites version 3
  • Article i645-media-coverage-omissions — version 3 (published) cites version 3
  • Chart wa-i645-media-key-facts — version 3 (published) cites version 3
  • Briefing wa-i-645 — version 6 (published) cites version 3
  • Briefing wa-i-645 — version 4 (published) cites version 3