War Coverage Compared

About the project

This site compares how Russian, Ukrainian and independent media cover the same events of the war in Ukraine. All content — event cards, summaries, translations — is created and published automatically, with no human review before publication. The site does not establish the truth: it shows what each group of sources reports, how, and where the versions diverge.

Methodology

One automatic pipeline (the update.py script) runs the steps below. Wherever possible each step is backed by a check in code — the model does not “check itself”.

Quality gates: a card is withheld if (1) it has fewer than two relevant articles or fewer than two distinct sources; (2) the relevance filter confirmed fewer than half of the clustered articles; (3) a group with a summary has no verified quote; (4) several numbers in a summary are not found in the sources; (5) the model reported high uncertainty; (6) the translation check failed; (7) the model output is incomplete or invalid. If a previously published card stops passing these checks (for example after new articles arrive), it is withdrawn automatically and the withdrawal is written to the corrections log.

Confirmation scale

Each event gets a confirmation level, computed mostly in code from formal features: how many groups and distinct sources describe the event; whether international or exile independent outlets are among them (Kyiv Independent counts as a Ukrainian outlet and is not treated as international for this purpose); whether the numbers differ (a number difference alone does not produce the “contradict” label: “launched” and “shot down” are different quantities; the label is set only when the model, reading the texts, flags incompatible statements); whether the quote and number checks passed; how far the relevance filter confirmed the grouping; how uncertain the model itself considered the card. The level is shown as an icon plus text (never colour alone).

LabelMeaningWhen assigned
confirmed by independent sourcesThe event is reported by international or exile independent outlets and no contradictions in the facts between the groups were detected. This does not mean the independent outlets verified every detail.No check warnings or contradictions; the event is described by ≥2 international/exile independent sources, or ≥1 such source plus another side (Russia or Ukraine).
the sides contradict each otherThe groups of sources give incompatible information (the model, reading the texts, flagged incompatible statements of fact; differing figures are shown in the card). The site does not decide who is right.The model, reading the texts, flagged incompatible statements, and at least two “sides” describe the event. A difference in figures alone does not set the label.
both sides report it, no independent sourcesBoth Russian and Ukrainian sources describe the event, but there are no international independent sources in the selection.Both Russian and Ukrainian items exist, no international independent ones, no detected contradiction.
claimed by one side onlyOnly one side reports the event (no independent international source); its statements are presented as statements.Items from one “side” only (Russian or Ukrainian), with no international independent source.
insufficient dataFew materials, or the automatic quality checks passed only partly (few sources, model uncertainty, some quotes or figures not confirmed).Any of: fewer than two sources, the relevance filter confirmed under 60% of the articles, the model reported high uncertainty, some quotes failed the check, a number not found in the sources, or only short headlines available. Checked first.

Important: the label describes coverage and consistency of the materials in the collected data, not truth. “Confirmed by independent sources” means independent outlets describe the event, not that they verified every detail; they may be relaying one party’s statement. The label is assigned automatically and can be wrong.

What to expect: error forecast

Below are the kinds of errors to expect and rough figures from a single test run on 2026-10-04 (report llm-test/REPORT.md). Samples are small (the clustering test used 100 articles and 9 reference cards; the summary test 8 cards), so the figures are indicative and do not transfer to the whole site.

Corrections policy

Neutrality

Anonymity of the project

The project is anonymous: there are no names or personal contacts of the authors on the site or in the code. The only contact is a feedback address (currently a placeholder). The site uses no analytics counters or cookies; the browser stores only your chosen language and colour theme locally.

Sources and their limitations

The list below contains every source the pipeline uses, with its affiliation and access method. The article count is the number of stored articles in the database (including those unrelated to any event).

GroupSourceAffiliation and accessStatusArticles
RussiaRussian Defense Ministry (Telegram)the ministry’s official channel; public web preview t.me/s/mod_russia (mil.ru sites unreachable from the server)working574
RussiaTASS (tass.com)Russian state news agency; English version, sitemap + pagesworking1896
RussiaTASS (tass.ru, RSS)title and lead from RSS only: article pages are behind an anti-bot checkpartial453
RussiaRIA NovostiRussian state news agency; robots.txt disallows the /services/ loader, so RSS, the “Ukraine” tag and daily section archives are read — coverage is incompletepartial1989
RussiaInterfaxprivate Russian news agency operating legally in Russia; RSS (≈25 latest items) + pagespartial1175
UkraineSuspilneUkraine’s public broadcaster; sitemap + RSSworking1748
UkraineUkrainska Pravdaprivate Ukrainian outlet; daily archivesworking1331
UkraineRBC-Ukraineprivate Ukrainian outlet; RSS with full text (≈3 days)working865
IndependentBBC NewsBritish public broadcaster (licence-fee funded); RSS (≈100 recent articles for all of BBC)working173
IndependentThe Moscow Timesindependent English-language exile outlet (Amsterdam); designated an “undesirable organisation” in Russia; RSS + sitemapworking43
IndependentFrance 24French international broadcaster (France Médias Monde, state-funded); section RSSworking7
IndependentThe GuardianBritish newspaper owned by the Scott Trust; “Ukraine” RSS + pagesworking83
IndependentDW (EN, RU)German international broadcaster funded from the federal budget (editorial independence is set by law); RSS + pagesworking427
IndependentAl JazeeraQatari broadcaster funded by the state of Qatar; RSS + pages (few items on Ukraine)working151
IndependentMeduza (RU, EN)independent exile outlet (Latvia); RSS with full text (≈30 latest items per language); designated an “undesirable organisation” in Russiaworking91
IndependentKyiv IndependentUkrainian private English-language outlet; stance may be pro-Ukrainian — “independent” only nominallyworking525

Sources that were tested but are not used, or only partly usable:

Limitations:

Contact

The feedback address is not configured yet: an example address is currently used in the links. To report an error or suggest a source: write by e-mail (feedback@example.com). Corrections log.