About Divergence.

Reading the news is weird. You can read the same event from five different outlets and walk away with completely different impressions of what happened. Divergence shows you where those accounts line up, split, and leave facts out.

01 - What it does

One event, measured by divergence.

Every 30 minutes, Divergence pulls articles from 45 news outlets across the political spectrum. When multiple sources cover the same real-world event, those articles get grouped into a single record. Each event is then analyzed to extract reported facts, omissions, disputes, and framing differences.

The goal is to show where coverage diverges at the event level, without asking you to tab between a bunch of different sites.

02 - Divergence score

A number for how different the coverage is.

Each event gets a score from 0 to 100 based on how differently the sources are covering it. The score is generated by a language model that reads all the articles in a cluster and looks for differences in framing, emphasis, and factual claims. It's not perfect, but it's a reliable signal for which stories have the most disagreement worth reading.

0 - 33Sources are basically telling the same story.
34 - 66Noticeably different framing or emphasis.
67 - 100Sources are presenting genuinely different pictures of what happened.
03 - Fact breakdown

Claims, split by how solid they are.

Each event includes a list of specific claims labeled as confirmed, claimed, or disputed. Confirmed means multiple credible sources agree and there's an official basis. Claimed means one source reported it without corroboration. Disputed means sources directly contradict each other on it.

This is AI-generated, so treat it as a starting point, not a final verdict. Click through to the original articles when something matters to you.

04 - Sources

45 outlets, across the full spectrum.

We pull from every outlet below, refreshing every 30 minutes. Bias labels are rough classifications based on widely-cited media research - they are context for the coverage spectrum, not judgments on individual articles.

Left
Mother Jones, The Guardian, HuffPost, The Atlantic, The Intercept, Le Monde
Lean left
NPR, CNN, PBS NewsHour, ABC News, CBS News, NBC News, Axios, Politico, New York Times, Washington Post, ProPublica, Vox
Center / Wire
BBC, AP News, Reuters, Bloomberg, The Hill, Semafor, Foreign Policy, Defense One, Deutsche Welle
Center-right
Wall Street Journal, Financial Times
Lean right
NY Post, National Review, Washington Examiner
Right
Fox News, The Federalist, Daily Wire, Washington Times
Far-right
Breitbart, Newsmax
Libertarian
Reason
International
Al Jazeera, South China Morning Post, Times of Israel, Jerusalem Post, Globe and Mail, The Telegraph
05 - Clustering

Stories grouped by meaning, not keywords.

Articles are grouped using text similarity, not keyword matching. Two articles about the same event will have similar language and context even if the headlines use completely different words. We run a local embedding model (BAAI/bge-base-en-v1.5) to detect that similarity and cluster the articles together.

A story needs at least 2 sources to show up in the feed. Events drop off the main feed after 14 days but stay queryable through the API on a Max-tier key.

The pipeline

Four stages, every 30 minutes.

No editorial board. Just feeds, embeddings, and a constrained language model that outputs JSON.

01

Ingest

RSS and API feeds from 45 outlets. Full text via trafilatura, falling back to newspaper3k, Wayback, then the feed summary. Deduped by URL.

02

Cluster

Sentence embeddings (768-dim) group articles into events at cosine similarity 0.72 or higher. New articles merge into existing 14-day events first.

03

Frame

Claude reads each cluster and tags per-outlet framing - critical, supportive, neutral, dismissive, alarmist, international.

04

Score

The model sums four dimensions into a divergence score from 0 to 100. Results land in the database and ship straight to the feed.

06 - Scoring rubric

Four dimensions, one number.

The model is asked to score each event across four independent axes, then sum them. It's explicitly told not to round to multiples of 5 - every point should be defensible.

Framing
0 - 40
How differently outlets characterize the same core facts.
Fact selection
0 - 30
Whether outlets include or omit different facts.
Causal attribution
0 - 20
Disagreement on cause, blame, or context.
Factual disputes
0 - 10
Direct contradictions between outlets.
What Divergence is

An independent, ad-free project.

Divergence is a one-person project. There is no publisher, no investor, and no ad network. Nothing here tracks you beyond anonymous page counts.

Cadence
New articles every 30 min
Outlets
45 across the spectrum
Access
Open API, public rate limits

The API is open with public rate limits - see the docs.