CCF Observatory
A lighthouse on Canada’s climate coverage
0 %
Lighting the lighthouse…
Services

Put the observatory to work for you

Five ways to use it. Pick yours.

Web services — free

Three widgets, live on your site

The previews below are the real widgets, running live. They refresh every five minutes, adapt to any width, and every click leads back to the observatory.

Language Theme

Mini 380 × 190 px — sidebar, footer

A compact live ticker: today's brief, every ongoing event and active cascade, full text, with the update time.

yoursite.com

Paste this where the widget should appear. Adjust width and height freely: the widget adapts.

<iframe src="https://ccf-project.ca/embed?size=mini"
        width="380" height="190" frameborder="0" allowfullscreen
        title="CCF Climate Observatory"></iframe>
HTML

Paste this URL on its own line in the editor; WordPress inserts the widget automatically (oEmbed). Or use a Custom HTML block with the HTML snippet.

https://ccf-project.ca/embed?size=mini
URL

Wix / Squarespace: Embed/Code block with the HTML snippet. Notion: type /embed and paste this URL. Substack, Ghost, Webflow: HTML embed block.

https://ccf-project.ca/embed?size=mini
URL

Options: add &lang=fr for French, &theme=dark for dark mode.

Medium 420 × 720 px — article, column

The daily brief in full, all ongoing events and cascades with their CCF summaries, plus the 5 latest articles with frame profiles.

yoursite.com

Paste this where the widget should appear. Adjust width and height freely: the widget adapts.

<iframe src="https://ccf-project.ca/embed?size=medium"
        width="420" height="720" frameborder="0" allowfullscreen
        title="CCF Climate Observatory"></iframe>
HTML

Paste this URL on its own line in the editor; WordPress inserts the widget automatically (oEmbed). Or use a Custom HTML block with the HTML snippet.

https://ccf-project.ca/embed?size=medium
URL

Wix / Squarespace: Embed/Code block with the HTML snippet. Notion: type /embed and paste this URL. Substack, Ghost, Webflow: HTML embed block.

https://ccf-project.ca/embed?size=medium
URL

Options: add &lang=fr for French, &theme=dark for dark mode.

Full 720 × 940 px — the miniature observatory

Everything, embeddable: the clickable live map of Canada, 7-day event and cascade timelines with in-widget cards, and all the lists.

yoursite.com

Paste this where the widget should appear. Adjust width and height freely: the widget adapts.

<iframe src="https://ccf-project.ca/embed?size=full"
        width="720" height="940" frameborder="0" allowfullscreen
        title="CCF Climate Observatory"></iframe>
HTML

Paste this URL on its own line in the editor; WordPress inserts the widget automatically (oEmbed). Or use a Custom HTML block with the HTML snippet.

https://ccf-project.ca/embed?size=full
URL

Wix / Squarespace: Embed/Code block with the HTML snippet. Notion: type /embed and paste this URL. Substack, Ghost, Webflow: HTML embed block.

https://ccf-project.ca/embed?size=full
URL

Options: add &lang=fr for French, &theme=dark for dark mode.

Swipe or use the arrows — the three widgets, live

Analysis services

Ask us, we answer.

Behind the observatory is a research team. Send us a question about Canadian climate coverage. We compute the answer on the corpus, with documented methods and verifiable numbers, then send it back. Free for research, journalism and education.

0
articles
0
two-sentence units
0
years covered
0
categories
Time series

A frame, across five decades

"When did health overtake the economy in climate coverage — and where?"

Deliverable annual or monthly series by frame, outlet or province, with the figure and the underlying counts.
Comparisons

Outlet vs outlet, province vs province

"Does the carbon tax read differently in Alberta and in Quebec?"

Deliverable side-by-side framing and tone profiles, with confidence intervals and examples.
Event studies

The anatomy of a news wave

"Who covered the 2023 wildfires first, how long did the wave last, what did it leave behind?"

Deliverable coverage curve, outlet order of entry, framing before / during / after.
Geography

Climate coverage, mapped

"Where do heat waves make the news, and which provinces cover flooding most?"

Deliverable province and city level maps of volumes and frames, drawn from the geolocated corpus.
Messengers

Who gets to speak about climate

« Scientists, politicians, citizens: whose voice dominates, and since when? »

Deliverable the share of each messenger type over time, by outlet and by frame.
Tone

Is the coverage getting darker?

« Has climate reporting become more alarmed, or more hopeful? »

Deliverable negative and positive tone series across five decades, with breakpoints.
Data extracts

A documented dataset, ready to use

"All metadata and annotations on flood coverage in Quebec since 2010, in CSV."

Deliverable filtered extract with codebook — metadata, annotations and summaries; never the articles' text.
Analysis brief

A short note, every number sourced

"Two pages on how Canadian media framed adaptation vs mitigation over the last decade."

Deliverable one page with its figures, its methods and its limits; citable and reproducible.

Swipe or use the arrows — eight kinds of analyses

1You ask

One question suffices. No need to know the data: we translate it into corpus terms.

2We check feasibility

Quick and free: what the corpus holds on your question, stated upfront.

3You get the analysis

Figure, series, extract or note — with methods and limits, always verifiable.

For researchers & institutions

Direct access to the data

The observatory's data layer, on request:

Metadataoutlet, date, page, author, province, since 1978
Annotationson the two-sentence unit, some sixty validated categories
Events & cascadesdetected clusters, bilingual summaries
Seriesframing and tone, by outlet and province
Request API access ✦
For everyone

Your question, answered from the corpus

Which outlets covered the 2023 wildfires most?

How did carbon-tax framing shift after the election?

When did health become a climate frame in Canada?

Which provinces cover oil-sands politics most?

Is climate coverage becoming more or less scientific?

If it can be answered from 286,848 articles read sentence by sentence, we can answer it: a figure, a data extract or a short note. Free for research, journalism and education.

Ask a question ✦
The Climate Journal

The climate story, ready in your inbox.

A concise, source-linked edition built from the observatory's freshest articles — collected four times a day. Follow newly detected events, localized stories and media cascades without having to reconstruct the day across dozens of outlets.

CCF · Climate Journal Morning edition · 9:00 ET
The state of the debate

What changed in Canadian climate coverage

The most recent reporting, explained in context — with direct links to the publishers and a clear distinction between fresh detections and consolidated stories.

Free daily or weekly edition

Choose your rhythm. We keep it fresh.

Available in English and French. Every edition favours the newest processed reporting and links back to the original sources.

You'll receive a confirmation email. One-click unsubscribe, anytime.

Tailored monitoring

A newsletter built around your field.

For teams that need a sharper perimeter, we design dedicated newsletters from the CCF corpus. You define who or what matters; we organize the relevant coverage, events and changes into a dependable briefing.

01

Province or territory

A Quebec, Alberta, Atlantic or North-focused edition, including local events and the national stories that affect the region.

02

Organization watch

Track how a municipality, ministry, company, NGO, university or sector appears across climate coverage.

03

Issue or event

Follow wildfire, adaptation, energy, health, policy or another defined issue as its reporting and framing evolve.

04

Media landscape

Monitor a group of outlets, a source ecosystem or a custom media perimeter, with comparisons over time.

Scope, language, cadence and editorial depth are agreed with your team. We can combine alerts, recurring briefings and a documented analysis layer.

Analysis briefs — on request

One question, one page, every number sourced

A brief takes a single question about Canadian climate coverage and answers it on the corpus, in one page. We write one when someone asks for one. The pilot brief below shows what a brief holds, down to the limits published with it.

Brief nº 0 · Pilot

The July wildfires are reshaping actor influence and framing in Canada's climate coverage

Between July 15 and 26, influence moved toward the operational state, evacuated communities and smoke diplomacy. Economic voices, advocates and federal climate policy lost it.

992 articles · 19 outlets · English and French
Anatomy

What a brief holds, block by block

1The CCF summaryWhat the window shows, in ninety words, before any figure.
2The key pointsThree or four statements, each carrying its own number and the scope it holds over.
3The analysis and its figuresSeries, comparisons and profiles; each figure names the base it rests on and the test applied.
4The CCF pulseWho spoke, in which outlets, and how their share of the coverage moved over the window.
5The limitsWritten against ourselves: each limit says what it could invalidate in the result above.
6The reading for climate actorsWhat the result changes for someone who works the file day to day.
7The methodCorpus, window, deduplication and adjusted p-values, with what was left out and why.
What we guarantee

Every number published comes from a computed cell that a program checks against the result tables before the page goes out. The analysis plan is fixed before the data are seen. A member of the team reads the brief last.

A brief carries its limits with it. The pilot publishes a negative result and corrects one of its own readings with figures; that correction stayed in the page.

Ask for a brief

Bring us the question you need answered

Send the question, the window that interests you and the outlets or provinces that matter to you. We answer first with what the corpus holds on that question, then with the plan we would follow.

Request a brief ✦
Agent access

Connect your assistant to the observatory.

One address, pasted into your chat application. Your assistant then reads the whole observatory: 286,848 articles of Canadian press coverage, annotated sentence by sentence on scientifically validated categories, refreshed every morning. It picks its tools, runs the numbers, reads the passages, then answers with its sources.

Your chat application

A ministry asks

Summarise climate coverage in Quebec over the past three months.

reading detected events — sql_query · Quebec over ninety days, fetch · their summaries

In Quebec, climate is covered first as a matter of decisions: 277 public-policy events against 116 of extreme weather. The ratio flips in Alberta, where the two nearly match (182 and 117): the same weather news takes up a far larger share of the debate there.

What the Quebec events are about, specifically: the expansion of the Terrebonne landfill, the Quebec City tramway works, the delayed renewable-gas injection requirement, energy agreements for mining projects on Cree territory. Coverage of trade-offs, more than of episodes.

A newsroom asks

What are the latest climate events in Alberta?

opening the events — search · Alberta, fetch · their written summaries

Four episodes dominate, all extreme weather, and they speak to each other: the Alberta summer was both the wettest on record and one of the hottest.

  • Flooding in Beaumont and central Alberta. Over 100 millimetres in one weekend, sewer backups, and a call to cut non-essential water use.
  • Heat wave reaching 38 °C. Warnings from Environment and Climate Change Canada across several regions.
  • Edmonton Folk Music Festival. Tonnes of sand trucked in and water pumped out to keep the site open, after the wettest summer on record.
  • Smoke and instability across the Prairies. Unusually low temperatures, record rain, wildfires in Saskatchewan.

An NGO asks

How does the press describe First Nations' action on wildfires?

opening the actor profile — api_get · the portrait, search · the sentences behind it

Coverage casts them as documented complainants rather than victims: a Monday report from the federal housing advocate and the Assembly of First Nations warns that systemic gaps in emergency governance, infrastructure and housing have trapped communities in a "spiralling cycle" through wildfire seasons.

The figures it carries: more than 40,000 people evacuated across 83 communities, 165 emergency events affecting 134 First Nations, during the second-worst fire season on record.

A research team asks

Has climate become a public-health story again?

querying the corpus — sql_query · the health frame, year by year

Yes, and the climb is recent. The health frame held 1.8% of annotated sentences in 1990, falls to 1.1% in 2015, its low point, then climbs to 2.1% in 2026, the highest in the series. The move starts around 2018 and accelerates after 2020.

Set against the economic argument, which carries 14.9% of sentences since 2023: health is returning to the debate without shifting its centre of gravity.

A communications office asks

Is contestation of climate science gaining ground this month?

counting, then reading — sql_query · this month's arguments, search · the sentences that carry them

Slightly, and only just: 57 articles lean toward contestation this month, 41 toward defence, in a corpus that remains mostly descriptive. Classification happens at the sentence level, not the headline: an article can report a challenge without making one.

Answers read from the database on August 30, 2026. Your assistant reads today's.

0
annotated articles
0
two-sentence units
0
outlets covered
0
years of coverage
Reliability

What the answers are worth

Scientifically validated

The training sentences were hand-coded by a researcher on the team, then the models were measured against a gold standard, category by category. Each category carries its reliability grade, which the assistant cites along with the figure. The method is under revision at Scientific Data.

Current every morning

The processing chain reads the Canadian press every day. This morning's article receives the same coding as one from 1978: your series run up to yesterday, with no break in method.

Verifiable down to the code

The assistant reads the codebook, the definition of every column and the code that produces the published figures. You can always ask it where a value comes from, then judge for yourself.

What you can hand it

From a written report to the morning's monitoring

Coverage report

A written note, figures attached

"Two pages on the coverage of the 2023 wildfires: volume, leading frames, voices quoted."

You get the assistant runs the numbers, reads the passages, then assembles the note with its sources.
Research question

A hypothesis, put to the test

"Does the Canadian debate frame climate as costs before it frames it as lives?"

You get since 2023, the economic argument carries 14.9% of annotated sentences, the health argument 1.9%.
Fact-check

A claim, checked against the data

"Is contestation of climate science gaining ground?"

You get this month's count: 57 articles lean toward contestation, 41 toward defence, with the sentences to judge for yourself.
Monitoring

The media week, by morning

"What carried the debate this week?"

You get the day's frames, voices and events, on a base refreshed every morning.
Excerpts at the source

The passages themselves

"Show me sentences where climate science is called into question during the 2023 wildfires."

You get the excerpts, each with its outlet and date, then the assistant's reading of them.
Feasibility

Sizing a study before you run it

"How many geolocated articles in Quebec over ninety days?"

You get 152, ahead of Ontario at 117: enough to calibrate a sample in one question.
Open method

The code behind the figures

"What is the influence index you publish built on?"

You get the assistant finds the function in the observatory's code, reads it, then explains it to you.

Swipe or use the arrows — seven uses

Getting started

Three moves, two minutes

1You ask for access

Write to us with who you are and what you are after. We open the account at the level the work calls for.

2You paste the address

Into your application's connectors, then sign in with your CCF account. Two minutes and no command line. Your password stays with us.

3You ask your questions

The assistant picks its tools, queries the validated data, then answers citing what it read.

Where it plugs in

Seven applications, one same move

For conversation
  • ChatGPT
  • Claude
  • Gemini
  • Le Chat
For development
  • Claude Code
  • Cursor
  • VS Code

In a terminal or a code editor, the address goes in with the key we send you by email. Custom connectors in Gemini go through Gemini Enterprise. Any other assistant that speaks the same open protocol connects the same way, with nothing to switch on at our end.

The same move in all seven applications: settings, connectors, the address, your session. Your password stays with CCF.

Levels of access

Four levels, each one a database role

The level is the PostgreSQL role your queries run under. A query that reaches past it receives a refusal from the engine itself.

Metadata

the aggregate tables and the whole live observatory: frames by month and by outlet, tone, detected events and cascades, entity profiles, geography

2,000 calls / day
Analyst

the same, plus the annotation columns of the corpus, unit by unit

6,000 calls / day
Researcher

the same, plus the annotated sentences, the article text and the code of the observatory

20,000 calls / day
Expert

everything the corpus holds, with no daily ceiling on the data API

30,000 calls / day
What it does not do

No writing. The connection is read-only at the engine level; a table creation is refused before it is even parsed.

No public redistribution of the articles. The full text stays with the publishers. Reading the annotated sentences and the article text is granted by name, from the researcher level up.

The public observatory comes first. Under load a heavy query receives a ticket and a place in line rather than a result. A background thread empties the queue one job at a time.

A response is capped and says so. 145,000 characters at most, with the offset to carry on from.

An access is opened by hand. There is no self-service sign-up. Daily ceilings are counted per key.

Getting an access

Write to us and we open it

Tell us who you are, what you want to read and which application you work in. We open accesses one by one, at the level the work calls for. You then receive the address, the steps for your application and, for a terminal or an editor, your key.

Ask for an access ✦
Go to the observatory