Methodology

About Divergence.

Reading the news is weird. You can read the same story from five different outlets and walk away with completely different impressions of what happened. Divergence shows you those differences, side by side, for every story we can cluster across 28 outlets.

01 - What it does

One story, every angle.

Every 30 minutes, Divergence pulls articles from 27 news outlets across the political spectrum. When multiple sources cover the same story, those articles get grouped into a single event. Each event is then analyzed to extract the facts being reported and how each outlet is framing the story.

The goal is to let you see the same news event from multiple angles at once, without having 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

28 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 bias research - they're meant to give you context for the coverage spectrum, not to judge individual articles.

Left
Mother Jones, The Guardian, HuffPost, The Atlantic
Lean left
NPR, CNN, PBS NewsHour, ABC News, Axios, Politico, New York Times, Washington Post
Center / Wire
BBC, AP News, Reuters, The Hill, Foreign Policy
Center-right
Wall Street Journal, Financial Times
Lean right
NY Post, National Review, Washington Examiner
Right
Fox News, The Federalist, Daily Wire
Far-right
Breitbart
Libertarian
Reason
International
Al Jazeera
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 7 days but stay queryable through the API with an archive token.

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 28 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 7-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
27 across the spectrum
Access
Open API, public rate limits

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