Open dataset

Every scored story, as a spreadsheet

The same data behind this site, as plain CSV. One file per month of events, plus one table of outlets. Free for research, journalism, and classrooms. Cite it as Divergence (divergence.news) and link back. Bulk or programmatic access is on the API.

Events by month

One row per analyzed event. Months are complete once they end; the current month grows every 30 minutes.

November 20265 events
CSV
October 20261,114 events
CSV
September 20261,070 events
CSV
August 2026742 events
CSV
July 2026788 events
CSV
June 20261,011 events
CSV
May 20261,807 events
CSV
April 20261,155 events
CSV
March 2026557 events
CSV

Outlets

One row per outlet across the full archive: bias position, coverage volume, divergence, framing mix, speed, and fact record.

All outlets48 rows
CSV

Columns

events-YYYY-MM.csv
event_id, created_at, category, title, divergence_score, outlet_count, outlets, left_count, center_count, right_count, facts_confirmed, facts_claimed, facts_disputed, market_relevance, url

outlets.csv
outlet, slug, bias_label, bias_position, total_articles, total_events, avg_divergence, avg_publish_speed_hours, first_report_rate, framing_pro_action, framing_neutral, framing_critical, framing_alarmist, framing_dismissive, framing_international, contrarian_rate, fact_checks, contradict_rate, contested_rate, consensus_rate

Notes

outlets is a pipe-separated list of outlet names in the event. left_count, center_count, and right_count bucket those outlets by their bias position as listed in the outlets table. The divergence score is 0 to 100 and describes the split in coverage of that one event, not any outlet's bias. The methodology explains how each column is produced and where it can be wrong.

Files are UTF-8 with a header row. Titles are quoted. Nothing in these files identifies a reader or user.

Daily brief
The day's most divided stories, scored and summarized, in your inbox every morning. No account needed.