How it works

Methodology

Last updated: July 2026  ·  Applies to every score, label, and stat on this site

Divergence answers one question: when the same thing happens, how differently do news outlets tell it? The pipeline below runs automatically every 30 minutes. No step involves a human deciding what a story means, which is both the point and a limitation. This page explains each step, what the numbers mean, and where they can be wrong.

1. Where the coverage comes from

We poll 45 outlets on the same schedule, from wire services (AP, Reuters) through partisan press (Mother Jones, Breitbart) to international desks (Al Jazeera, Le Monde, South China Morning Post). Every outlet gets the identical treatment: same polling cadence, same text extraction, same analysis. The full list with per-outlet data is on the outlets page. We fetch full article text where feeds allow it, headlines and summaries where they don't.

2. How articles become events

Each article is converted to a semantic embedding (a numerical representation of what the article is about, computed with a sentence-transformer model). Articles whose embeddings are highly similar (cosine similarity above 0.72) cluster into a single event. Clustering runs in three passes: new articles first try to join existing events, leftovers form new clusters, and near-duplicate events merge.

Two guards keep clusters honest. An event is only scored if two or more distinct outlets cover it, and before any analysis a language model checks that the clustered articles genuinely describe the same real-world event, rejecting false groupings (same topic, different story). Articles that never find a cluster within 7 days are discarded.

3. The divergence score

Every analyzed event gets a 0-100 divergence score: a measure of how far apart the coverage is on that one event. The analysis model reads each outlet's article and scores the spread in framing, the facts outlets contradict each other on, what each version emphasizes or omits, and tone. High scores mean outlets are telling meaningfully different stories; low scores mean the versions substantially agree.

In practice the scale is compressed, and we would rather tell you that than pretend otherwise: most events score under 20, a score above 30 is a real split, and 50+ is rare (roughly 3% of all events). The score describes the split in coverage of one event. It is not a bias rating of any single outlet.

4. The fact ledger

For each event the model extracts individual factual claims and tags each one:

The ledger is built only from what the clustered articles say. It is a map of agreement inside the coverage, not an external fact-check against ground truth.

5. Framing and sentiment

Each outlet's take on an event is labeled with a framing category (supportive, critical, neutral, alarmist, dismissive, or international perspective) assigned by the analysis model from that outlet's actual article. Sentiment labels on headlines come from a separate classifier. Framing agreement between outlets, measured across every event two outlets share, powers the agreement rates and "strange bedfellows" stats on the stats page.

6. Political position labels

Outlet positions shown on this site have two layers. The starting label (lean-left, center, right, and so on) is a fixed editorial input that follows the consensus of widely used media-bias ratings. The empirical position is computed from our own data: which outlets frame events like which other outlets, measured across every shared event (minimum of 3 shared events per pair). As coverage accumulates, the data-driven placement matters more and the starting label matters less. When an outlet consistently frames stories unlike its assigned neighbors, that shows up on its profile page.

7. What the AI does, and what it does not

Language models do the reading at a scale no human team could: verifying clusters, extracting facts, labeling framing, scoring divergence. They do not write the news, editorialize, or decide what you should think about a story. Event summaries are constrained to what the source articles report. Models make mistakes; when an event gains substantial new coverage it is automatically re-analyzed, and clusters that fail the same-event check are rejected rather than published.

8. Known limitations

9. Cadence and corrections

The pipeline runs every 30 minutes around the clock. Site-wide statistics recompute on the same cycle from 60,588 articles across 4,932 events, and the archive is retained permanently. If you find an event that was clustered or labeled wrongly, tell us and we will trace it: support@divergence.news.

Researchers and journalists: all of this data is available programmatically. See the API, or write to us for bulk access.