- the most-cited global news events News · Markets · Briefings

Simple, free data on how the news spreads. Look, compare, download.

Open data · Free, CC BY 4.0

How a story spreads

A sourced record of what was reported, when, and by whom. Every dot is a real article, and every dot links to it.

Spain's second deadly train crash raises concerns about rail safety

16 outlets · 16 articles · See the Tokos card · Open this story’s page

  • Filled dot: outlet allows text mining, headline kept in the data.
  • Hollow dot: outlet has opted out of text mining. We keep only the outlet, the time and the link.
  • Dots sit at the publisher’s own feed time.

Biggest stories

Each story has its own page: who covered it, when, and a link to every article.

  1. Spain mourns after second deadly train crash of the year 18 outlets · 29 Oct 2026
  2. Israel holds first election since 2023 attacks, with Netanyahu's fate uncertain 18 outlets · 28 Oct 2026
  3. Brazil's Lula secures historic fourth term in presidential election 18 outlets · 27 Oct 2026
  4. Israel's inconclusive election leaves no clear winner after record turnout 17 outlets · 29 Oct 2026
  5. Flavio Bolsonaro claims leadership after fleeing Brazil to the US 17 outlets · 29 Oct 2026
  6. Flávio Bolsonaro and family granted US visas after fleeing Brazil 17 outlets · 28 Oct 2026
  7. US-brokered ceasefire takes effect in Russian-occupied Ukrainian city 15 outlets · 27 Oct 2026
  8. Venezuelan opposition leader María Corina Machado returns from exile 15 outlets · 26 Oct 2026
  9. Serbia's long-serving leader ousted in landslide election victory for student movement 14 outlets · 26 Oct 2026
  10. Elon Musk restricts Starlink access in Ukraine over drone strikes 14 outlets · 25 Oct 2026
  11. Anthropic's AI risks include blackmail, sentience, and existential threat 13 outlets · 28 Oct 2026
  12. Lula wins Brazil's presidential election, Bolsonaro contests the result 13 outlets · 27 Oct 2026

62 days of news

Each square is one day of the Tokos front page since 29 August 2026. Darker means more outlet links on that day’s cards. Pick a day to see its stories.

What is in the dataset

Live from the archive’s own check of what is stored.

3,960
article sightings in the latest builds
116
news feeds tracked
108
story cards in the latest builds
1,844
sightings kept as link, outlet and time only
0
opted-out headlines stored (must be 0)

Counts as of

Download the data

One file per table per UTC day, and a bundle per week (Monday to Sunday). CSV opens in Excel; Parquet is for R, Python and the like. Today’s files grow until the day is over.

Table What it holds Day Week
sightings Every article seen: outlet, feed, link, publish time, first and last seen CSV · Parquet 5182 rows CSV · Parquet 45146 rows
headline_versions Each headline and every later change, with its time (open outlets only) CSV · Parquet 1071 rows CSV · Parquet 14458 rows
card_membership Which articles grouped into which Tokos story, with its title CSV · Parquet 782 rows CSV · Parquet 19912 rows
outlet_profiles Country, owner, funding type and feeds of each outlet CSV · Parquet 127 rows CSV · Parquet 889 rows
outlet_daily_totals Articles and feed checks per outlet per day CSV · Parquet 196 rows CSV · Parquet 1372 rows
feed_health Feed checks and failures per feed per day CSV · Parquet 269 rows CSV · Parquet 1883 rows
daily_cards Each day’s stories since 29 Aug 2026 and their source links CSV · Parquet 358 rows CSV · Parquet 2211 rows
who_spoke_first News or government first on each story with an official link, and the gap CSV · Parquet 12 rows CSV · Parquet 91 rows
silent_big_stories Big stories (5+ outlets) with no official statement linked CSV · Parquet 20 rows CSV · Parquet 208 rows
silent_officials Official items per government body, linked or not to a story CSV · Parquet 130 rows CSV · Parquet 778 rows
coverage_gaps Which active outlets did not carry each story, by country, owner and funding CSV · Parquet 220 rows CSV · Parquet 2252 rows
attention A simple daily attention score per story: outlets, feed position, time on Tokos CSV · Parquet 220 rows CSV · Parquet 2252 rows
outlet_scorecards Per outlet per day: headline edits, removals, corrections, first or late CSV · Parquet 60 rows CSV · Parquet 360 rows
cross_lag Stories in both editions: the gap between first EN and FR appearances CSV · Parquet 2 rows CSV · Parquet 13 rows
cross_lag_country Per outlet country: lag from a story's first appearance anywhere CSV · Parquet 10 rows CSV · Parquet 66 rows
framing Names and figures in a government's own briefing vs the Tokos title on the same story CSV · Parquet 1 rows CSV · Parquet 36 rows
ownership_concentration Each owner group's share of a day's story sightings, with HHI CSV · Parquet 45 rows CSV · Parquet 280 rows

What is in it, and what is not

Data dictionary

What each file is for, and what every column means. Open a preview to see the first rows of the latest file without downloading it.

sightings 18 columns Start here: one row per article an outlet listed in its feed that day, with when it was published and when we first saw it.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
article_id str
Stable article id (sha256 of the canonical URL, 16 hex)
url str
Article link
outlet str
Newsroom id
feed str
Feed the article was listed in
source_type str
news or official
language str
Language of the feed
section str
Tokos section of its card, if any
card_id str
Tokos card it joined, if any
published_at str
Publisher’s own feed time (UTC)
first_seen str
First seen by our check, any day (UTC)
last_seen str
Last seen that day (UTC)
builds_seen int
Number of 2-hourly checks that saw it that day
best_position int
Highest position in the feed that day (1 = top)
kept_by_filters bool
Passed the site’s news filters
rights str
open (headline kept) or reserved (outlet opted out of text mining: outlet, time and link only)
commercial_ok bool
May appear in future paid files

headline_versions 13 columns Use it to follow how headlines change: one row per version of a headline, for outlets that allow text mining only.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
article_id str
Stable article id
outlet str
Newsroom id
feed str
Feed
source_type str
news or official
headline str
Headline as published (open outlets only; property of the publisher)
headline_hash str
Fingerprint of the headline
previous_headline_hash str
Fingerprint of the version it replaced
first_version bool
First headline we saw for it
observed_at str
When our check saw this version (UTC)
rights str
open (headline kept) or reserved (outlet opted out of text mining: outlet, time and link only)
commercial_ok bool
May appear in future paid files

card_membership 19 columns Use it to see which articles Tokos grouped into the same story: one row per article in a story card.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
card_id str
Tokos card (one story grouped across outlets)
title str
Tokos title, empty when it copies an opted-out outlet’s headline
title_withheld bool
Title withheld for that reason
section str
Tokos section
member_type str
news or official_link
article_id str
Stable article id
url str
Article link
outlet str
Newsroom id
feed str
Feed
first_build str
First check with it in the card (UTC, YYYYMMDDHHMMSS)
last_build str
Last check with it in the card that day
builds int
Checks with it in the card that day
best_rank int
Best rank of the card in its deck (1 = top)
max_source_count int
Most sources the card had that day
code_commit str
Version of the grouping code
rights str
open (headline kept) or reserved (outlet opted out of text mining: outlet, time and link only)
commercial_ok bool
May appear in future paid files

outlet_profiles 12 columns Use it to describe the outlets: one row per outlet, with its country, owner and funding.
day date
UTC day of the file
outlet str
Newsroom or official body id
source_type str
news or official
publisher str
Publisher
country str
Country (ISO code)
owner_parent str
Owner or parent company
funding_type str
Funding type (public, private, state…)
eu_based str
Based in the EU (true, false or unknown)
editions str
Tokos editions carrying it, separated by ;
feeds str
Feeds, separated by ;
profile_version str
Version of the profile data
excluded_commercial bool
Never in paid data

outlet_daily_totals 9 columns Use it to compare how much each outlet publishes: one row per outlet per day.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
outlet str
Newsroom id
new_articles int
Articles seen for the first time that day
sightings int
Article sightings that day
fetches int
Feed fetches that day
failed_fetches int
Failed feed fetches that day
complete bool
Whole day counted (false for today’s running total)
excluded_commercial bool
Never in paid data

feed_health 13 columns Use it to spot gaps in the data: one row per feed per day, with how often reading it failed.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
feed str
Feed
outlet str
Newsroom id
source_type str
news or official
feed_url str
Feed address
fetches int
Fetches that day
failures int
Failed fetches that day
items_max int
Most items the feed listed
last_http_status int
Last HTTP status
last_error str
Last error message, if any
newest_item_at str
Newest item date the feed listed that day (UTC), if known
stale_feed bool
The feed's newest item was more than 7 days old (such items are not used)

daily_cards 11 columns Use it for the longer history since 29 August 2026: one row per source link of each day’s front-page stories.
day date
UTC day of the file
edition str
Tokos edition that saw it: en or fr
card_id str
Tokos card
title str
Tokos title, empty when it copies an opted-out outlet’s headline
section str
Tokos section
source_count int
Sources on the card
outlet str
Newsroom id of this source
feed str
Feed name of this source
url str
Source link
rights str
open (headline kept) or reserved (outlet opted out of text mining: outlet, time and link only)
commercial_ok bool
May appear in future paid files

who_spoke_first 13 columns Use it to compare when the press and governments first spoke on a story. Leads of 2 hours or less count as a tie; an official item over 24 hours earlier is background, not government-first.
day date
UTC day
edition str
Tokos edition: en or fr
story_id str
Stable Tokos story (card) id
title str
Tokos’ own title (blank when withheld)
outlets int
News outlets on the story
first_news_at str
First news sighting (UTC)
first_news_outlet str
Outlet seen first
first_official_at str
First official time (UTC): published_at, or first_seen when published_at is later, date-only or a placeholder
official_time_source str
published_at or first_seen
first_official_body str
Government body seen first
official_items int
Official items linked to the story
gap_minutes int
first_official_at minus first_news_at (negative: government first)
first str
news, government, same (within 2 h: news times are when a 2-hourly build first saw the article) or background (official item over 24 h earlier; leave it out of a government-first share)

silent_big_stories 6 columns Use it to find big stories no government addressed in our sources.
day date
UTC day
edition str
Tokos edition: en or fr
story_id str
Stable Tokos story (card) id
title str
Tokos’ own title (blank when withheld)
outlets int
News outlets on the story (5 or more)
first_news_at str
First news sighting (UTC)

silent_officials 6 columns Use it to see which official statements no story picked up.
day date
UTC day
edition str
Tokos edition: en or fr
body str
Government body (official outlet id)
official_items int
Official items seen
linked int
Linked to a Tokos story
unlinked int
Linked to no story

coverage_gaps 11 columns Use it to see who skipped a story. An outlet can appear because Tokos did not group its article with the story, not only by editorial choice.
day date
UTC day
edition str
Tokos edition: en or fr
story_id str
Stable Tokos story (card) id
title str
Tokos’ own title (blank when withheld)
outlets int
Outlets that carried it
active_outlets int
General-news outlets of the edition with a healthy feed that day (specialist desks and NASA left out)
missing_count int
Active outlets that did not carry it
missing_outlets str
Their ids, ;-separated. Limitation: an outlet can appear because Tokos did not group its article with the story, not only by editorial choice
missing_by_country str
Missing count per outlet country (CC:n;...)
missing_by_owner str
Missing count per owner_parent
missing_by_funding str
Missing count per funding_type

attention 8 columns Use it to see which stories rose or faded. Formula in the dictionary.
day date
UTC day
edition str
Tokos edition: en or fr
story_id str
Stable Tokos story (card) id
title str
Tokos’ own title (blank when withheld)
outlets int
Outlets on the story that day
position_points float
Sum over outlets of (11 − best feed position)/10, floored at 0: a top-of-feed slot adds 1
hours_on_site float
2 × checks the story was on Tokos that day
attention float
outlets + position_points + hours_on_site / 2

outlet_scorecards 12 columns Use it to compare outlet behaviour. Removals include normal feed rollover.
day date
UTC day
edition str
Tokos edition: en or fr
outlet str
Newsroom id
articles int
Articles seen that day
headline_edits int
Headline changes seen (open outlets only)
edit_rate float
headline_edits / articles
removals int
Proxy: articles seen in one check only and gone >2 h before the day's last check while the feed was healthy. Limitation: includes normal feed rollover, not only deletions
corrections int
Headline changes marking a correction
median_minutes_to_correction float
Median minutes from first sighting to the correction
stories int
Tokos stories it was on
first int
Stories where it was seen first (within 10 min)
late int
Stories it joined 6 h or more after they began

cross_lag 9 columns Use it to see how stories cross languages. Thin: few stories share a link across editions.
day date
UTC day
en_story_id str
EN story id
fr_story_id str
FR story id
en_title str
Tokos EN title
fr_title str
Tokos FR title
shared_links int
Links (news or official) both carry
en_first_at str
First appearance in EN (UTC)
fr_first_at str
First appearance in FR (UTC)
lag_minutes int
fr_first_at minus en_first_at. Limitation: thin, few stories share a link across editions

cross_lag_country 4 columns Use it to see which countries' outlets break or follow stories.
country str
Outlet country
stories int
Stories its outlets carried
median_lag_minutes float
Median minutes from the story's first appearance anywhere to the country's first outlet
first_share float
Share of those stories where the country was first

framing 14 columns Use it to spot what a story leaves out or adds; a mismatch is not proof of spin.
day date
UTC day
edition str
Tokos edition: en or fr
story_id str
Stable Tokos story (card) id
title str
Tokos’ own title (blank when withheld)
body str
Government body
official_article_id str
Official item id
official_title str
Official title (only where its reuse licence allows)
cross_language bool
Official text and Tokos title are in different languages: names may differ only by translation
names_shared str
Names in both, ;-separated
names_official_only str
Names the government uses that the Tokos title does not. Limitation: small sample (about 46 pairs a week), only briefing text whose licence allows reuse, names right about 8 times in 10 on a hand check, no AI; a mismatch is not proof of spin
names_story_only str
Names in the Tokos title the government does not use
figures_official str
Figures (numbers, amounts, %) in the official title
figures_story str
Figures in the Tokos title
figures_differ bool
Both state figures and they differ (years left out)

ownership_concentration 6 columns Use it to measure media concentration per edition and day.
day date
UTC day
edition str
Tokos edition: en or fr
owner_parent str
Owner group
sightings int
Story sightings by its outlets
share float
Share of the edition's story sightings that day
hhi float
Herfindahl-Hirschman index of the day (0-10000, sum of squared % shares)

Data dictionary (CSV, every column in English and French)

Cite this data

Tokos-made data is free under CC BY 4.0: reuse it, credit Tokos. Headlines belong to their publishers and appear only for outlets that allow text mining. CC BY 4.0

Cite as: Tokos News (2026). Tokos open news data, v1. https://tokos.news/data. Accessed [date].

A permanent DOI (citation number) is coming: we will add it here once the monthly copy is on Zenodo.

In a sentence: “Data: Tokos News, CC BY 4.0.” is enough for a chart or a post.

Guides and more

Read this honestly

See Tokos Plus