Storm Charles · PrompTugalLive
Not a warning service. Follow IPMA, ANEPC and your local authorities. We aggregate public sources, each with its source and the time we read it.

Media watch: who is covering Storm Charles

Kept by incident.media@web-summit.dinis for the incident team (WS-214), at Dinis Cruz's word of 10 November 2026, ~23:40 UTC: "a mapping for the social media, the media watch ... who are all the journalists, who is everybody covering". First read: 10 November, 23:45 UTC. Everything here is evidence (reported by others) or, where it ranks or compares, analysis; none of it is a fact about the storm. Not a warning service: follow IPMA and ANEPC.

What is here

FileWhat it holds
coverage.jsonEvery article, live blog and video page we could read: outlet, URL, title, the publication time the page itself gives (UTC), the by-line as printed, when we read it, the sha256 of our capture. Then official (the official channels) and social (organisations' accounts; public conversation, counted)
outlets.jsonEach outlet: counts, by-lines as printed, what it does best (derived from the counts)
ranking.mdWho was first on each of six keyed facts; who is most sourced; the wire underneath
facts.json, first-on-each-fact.jsonThe six facts (primary time, where it comes from, the pattern that matches an item) and the table as data
live-entries.jsonThe timed entries inside three live blogs (Jornal de Negócios, Diário de Notícias, RTP), for the six facts only
wikipedia.jsonThe Wikipedia pages on the storm (pt, en) and their edit history: revision times and sizes, no editors' names
feeds.json, seeds.txtThe public feeds and news sitemaps read; URLs that have scrolled out of a feed
tools/harvest.mjs, live.mjs, social.mjs, wikipedia.mjs, rank.mjs: no dependencies, re-runnable; this folder is built by them, not by hand

The read so far, in short (11 November, 00:15 UTC)

  • The press: 214 items from 16 outlets, published between 9 November 08:34 and 11 November 00:01 UTC. 88 carry Lusa's by-line, 45 a reporter's, 35 the outlet's desk; on 46 the by-line could not be read. Wire share: 52% of the items whose by-line we read are Lusa's (per outlet: wire_share in outlets.json).
  • Who was first, with the live blogs' entries timed (ranking.md): the live blogs lead on five of the six facts. Diário de Notícias' live blog had the red wind warning at 08:05 and the schools closing at 09:14; Jornal de Negócios' had the mayor's line at 13:19 and is the only report we found of the government's recommendation before the decision (17:53). On Day 2, ECO and TEK (articles, 19:41), Negócios (19:42), DN (19:45) and RTP (19:47) are within six minutes of each other, 33 to 38 minutes after the organisers' page.
  • Nobody had the 21:23 change. IPMA moved Lisbon's red rain warning to 09:00 at 21:23 (its CAP message). By 00:15 UTC no article title and no live-blog entry we could read reported it. A title match can miss it inside a longer piece; it is still the one fact of the six where the press we read was behind the source by hours.
  • Official accounts: Web Summit's Bluesky account last posted at 17:36 ("wrap on Day 1"): nothing there about Day 2 by 23:51. The decision is on its website (and by email) only, of the channels readable without a login. IPMA and ANEPC have no account we could find on Bluesky or Mastodon; their websites are the channels (see official).
  • Social, readable without a login: on Bluesky, "depressão Charles" and "borrasca Charles" each fill the API's page of 100 posts since 9 November (59 and 70 accounts); "Storm Charles" 67 posts; "Web Summit" with "Charles" 18. On Mastodon the tags are small (4 to 8 posts each). VOST Portugal (a volunteers' association, not an authority) and Spain's AEMET are the organisations posting most about it; RTP Notícias has 7 videos on YouTube.
  • Wikipedia: Portuguese has an article, Depressão Charles, created 10 November 13:07 UTC: 8 revisions, 17,395 bytes at 20:01. English has no article: Storm Charles is a redirect, made 10 November 22:46 UTC, to 2026–27 European windstorm season, which had 20 revisions on 9 and 10 November (82,184 bytes at 20:32). "Tempestade Charles" (pt) and "Borrasca Charles" (es) do not exist.

The rules this folder keeps

  • People: a person appears only as a by-line printed on a public article, or not at all. A name and a count of items: no contact details, no profile, no account handles of individuals. Posts by individuals on social platforms are counted, never listed.
  • Press text: titles only, as short excerpts with a link. No article text is kept. Our captures of the pages stay outside git; the file keeps each capture's sha256.
  • Labels: every item is evidence. A body's own channel is listed under official and becomes a fact only when read there (the researcher's and the conductor's job).
  • Reading politely: one request a second per run, a plain bot User-Agent, feeds and news sitemaps that each site lists for machines. Where a site answers 403 to a bot, we stop there. Wikipedia: its REST API, one request every 5 seconds.

Limits (read before quoting a number)

  • Absent is not silent. SIC Notícias, Jornal de Notícias, TSF, Renascença, The Guardian and AP refused a bot (403) on feed and sitemap. They are covering the storm; they are not in the counts.
  • Renascença runs a purpose-built tracker for the storm, rr.pt/tempestade-charles-avisos-e-ocorrencias (reported by incident.weatherwatch@; it answered 403 to our bot at 23:59 UTC on 10 November, so it is named here and not read).
  • Weather sites and how each presents the storm are incident.weatherwatch@'s map (research/weather-sites/sites.json, when it lands on dev); this folder covers the press and social channels and does not repeat it.
  • Expresso, The Portugal News and Bloomberg list their articles in a feed or sitemap but refuse the page: title and time are theirs, the by-line was not read.
  • Three live blogs have their entries timed, for the six facts only (Jornal de Negócios, Diário de Notícias, RTP). Notícias ao Minuto's prints no time per entry; Observador had no live blog on the storm that we could find. Negócios prints a clock time only on the day itself (after midnight, the date), and DN's entry list is in its page data on some reads and not others: entry times come from our capture of 23:5x UTC on 10 November.
  • The six tables match an article by its title. An article that reports a fact under another headline is missed.
  • Feeds scroll. Items older than a feed's window at 23:45 UTC on 10 November are missing unless cited elsewhere in the incident.
  • Correio da Manhã and Jornal de Negócios give a date without a time of day; those items are left out of the speed tables.
  • X, Instagram, Facebook, LinkedIn, Threads and TikTok cannot be read without a login and are not here.
  • "Most sourced" counts links to primary sources and kinds of by-line. It does not read the articles.

Run it

MEDIA_RAW=<a directory outside git> node research/media/tools/harvest.mjs
MEDIA_RAW=<the same> node research/media/tools/live.mjs
node research/media/tools/social.mjs
node research/media/tools/wikipedia.mjs
MEDIA_RAW=<the same> node research/media/tools/rank.mjs

A wrong time, a wrong or missing by-line, a missing article: contribute.