Six dimensions,
read in every sentence.
Our classifiers do not read articles: they read sentences, and sort each one into six families of categories — how the story is framed, what happened, who speaks, in what tone, which solutions are named, and every person, place and organisation mentioned.
Six dimensions, read in every sentence
Open one to see its categories, their definitions and a coded example.
How we analyse the corpus, and detect what runs through it
Open one to see the method at work, step by step.
Thematic Frames
How climate change is conceptualized and presented
Events
Types of climate-related events covered in articles
Actors / Messenger Types
Who speaks about climate change in media coverage
Emotional Tone
Emotional register of climate coverage
Solutions
Classifies whether media coverage discusses climate action strategies, and distinguishes between two types
Other Categories
Additional annotation dimensions
Named Entity Recognition (NER)
Automatic extraction of key entities mentioned in articles
From converging coverage to one dated event
Every article is compared semantically with the rest of the corpus as it arrives. When several outlets converge on the same facts — the same places, the same actors, the same type of story — a clustering pass over a sliding window consolidates that coverage into one event: dated, typed among twelve classes, titled and summarized in English and in French by our local model, linked to its source articles and placed on the observatory map. The detection reruns daily, over breaking news and over the archive back to 1978.
Somewhere in the world — a heat dome, a flood, a summit.
Several outlets cover the same story, each in its own words.
Our chain reads every article and clusters the converging coverage.
Typed, dated, measured — titled and summarized in English and French.
An embedding is a long list of numbers a language model assigns to a text — coordinates for its meaning. Two articles telling the same story get nearly the same numbers, however differently they are written. Our detector watches those coordinates day after day; when articles from several outlets bunch up, that bunch is an event. No keyword lists, no editorial hunches. And if you would rather check than take our word for it, the whole processing chain is on GitHub.
Sustained waves of attention, measured against fifty years
For each of the eight frames, we track the daily volume of coverage across the whole corpus. A cascade is declared when that volume rises well above the frame's own historical baseline and stays there for days — a sustained wave, distinguished from a one-day spike by statistical thresholds computed on the local history. Each cascade carries its start and end dates, its article count, its outlets and a CCF summary of what drove it.
Day after day, each way of covering climate has its usual level.
Journalists pile onto one frame — its curve breaks away from the pack.
Only a run of unusually heavy days counts — one hot headline is not a wave.
The cascade is graded moderate or major, then titled and summarized EN·FR.
A cascade has to earn its name: each frame’s daily volume is compared to its own history, and only a sustained, statistically significant excess — corrected for multiple testing — qualifies. In other words, we made it as hard as possible to get excited. The full framework, baselines and tests included, is public: feel free to try to break it.
The people the coverage actually quotes, ranked and confirmed
The annotations tell us, sentence by sentence, which type of voice is speaking — scientist, decision-maker, activist, among ten types — and the entity layer tells us who is named. Crossing the two ranks real people by their measured presence, with syndicated wire copies counted once. Before publication, our model reads the source articles and confirms each figure, or withdraws it.
Our models flag which voice each sentence carries — scientific, political, activist, economic, health, legal, security, citizen, cultural.
Named-entity recognition lists the people, organisations and places of each sentence; name variants are merged (“Carney” = “Mark Carney”).
People named inside sentences of a voice type are ranked by reach — plus an influence score: 50% articles, 30% outlets, 20% co-mention centrality.
The #1 is vetted against the full articles (is this really a scientist?), identified via web sources, and summarized EN·FR — or reported as “no confirmed figure”.
To enter a ranking, a person must be named inside sentences our models classify as that voice type — not merely appear in the same article. The influence score is normalised per window (50% reach, 30% spread, 20% co-mention centrality), the #1 of each type is accepted or refuted by a language model reading the full articles, identity is sourced from the web and cross-checked against the press (homonyms rejected), and gender is read from pronouns — never guessed from first names. When a type yields fewer than five qualified people, the podium stays short: we never pad.
Science under scrutiny
Since 1978, tens of thousands of Canadian articles carry at least one sentence in which climate science is questioned, defended or debated. Our annotations flag those sentences; our model then reads each flagged article: it confirms the side, restates the arguments — each self-contained, typed and weighed on its side of a balance — and spots direct attacks on scientists or institutions.
Three trained categories — skepticism, defense, scientific debate — mark every sentence where climate science itself is at stake, across the whole corpus.
For each flagged article, our local model reads the title, the flagged sentences and the CCF summary, then confirms or corrects the side — articles not about climate science are dismissed.
The reading restates each argument (self-contained, typed: consensus, data, models, impacts, policy, integrity) and spots attacks — when scientists or institutions are accused rather than debated.
Entities present in the flagged sentences are merged by our matcher (IPCC = Intergovernmental Panel on Climate Change) and classified by role: who contests, who defends, who is the target.
The balance of arguments and the attack section only serve articles the model has actually read: verdict, confidence, self-contained arguments in both languages, repeated targets. Twin wire stories weigh once. Actor cards reuse the pulse chain — free-license portrait, sourced identity, written position — and every spelling variant of an entity resolves to one canonical name before anything is counted.