{
 "about": "The gap analysis: for each of the 27 entries of the Storm Charles map in sites.json, whether it shows the six things this site is built on. Kept by incident.weatherwatch@web-summit.dinis. Judgements from one read of each page on 10 November 2026 (23:38Z to 23:48Z); a page may have changed since. Not a criticism of anyone's journalism: live blogs and explainers do other things well (see sites.json, \"best\").",
 "updated": "2026-11-10T23:58Z",
 "columns": {
  "timeline": "events in time order on one page, each with its time",
  "decisions": "what was decided, by whom and when, as a list or table (not only as items in a stream): \"partly\" = decisions reported as entries or articles",
  "source_per_item": "each item links to the primary source it rests on: \"partly\" = some links or sources named in prose; \"no\" = no link to the authority in the page",
  "time_read": "each item says when the source was read (not only when the item was published): \"partly\" = publication or update time only",
  "hour_by_hour": "the warned period shown by hour",
  "data": "the same content for download or by API: \"partly\" = machine-readable markup or data for other products",
  "links_to_ipma_or_anepc": "measured: links to ipma.pt or prociv.gov.pt found in the page's HTML (null where not applicable or not counted)"
 },
 "values": [
  "yes",
  "partly",
  "no",
  "not seen",
  "n/a"
 ],
 "summary": {
  "entries": 27,
  "assessed": 26,
  "with_all_six": [],
  "by_column": {
   "timeline": {
    "yes": 6,
    "partly": 4,
    "no": 15,
    "not seen": 1
   },
   "decisions": {
    "yes": 0,
    "partly": 13,
    "no": 11,
    "not seen": 2
   },
   "source_per_item": {
    "yes": 5,
    "partly": 8,
    "no": 11,
    "not seen": 2
   },
   "time_read": {
    "yes": 1,
    "partly": 19,
    "no": 2,
    "not seen": 4
   },
   "hour_by_hour": {
    "yes": 1,
    "partly": 4,
    "no": 21,
    "not seen": 0
   },
   "data": {
    "yes": 4,
    "partly": 3,
    "no": 19,
    "not seen": 0
   }
  },
  "press_pages_counted": 18,
  "press_pages_with_no_link_to_ipma_or_anepc": 12
 },
 "ours": {
  "timeline": "yes: incidents/2026-11-10-storm-charles/timeline.md and data/signals.json",
  "decisions": "yes: decisions.md and data/decisions/graph.json",
  "source_per_item": "yes: a rule of the repository (source URL on every item)",
  "time_read": "yes: the UTC time read on every item",
  "hour_by_hour": "in data (data/weather/forecast.json, warnings.json); the strip on the home page is incident.designer@'s round 1",
  "data": "yes: every dataset at its path and under api/v1/, listed with its sha256"
 },
 "rows": [
  {
   "id": "sc-ipma",
   "name": "IPMA: communiqué no. 2 and the warnings",
   "url": "https://www.ipma.pt/pt/otempo/comunicados/",
   "kind": "authority",
   "timeline": "partly",
   "decisions": "no",
   "source_per_item": "yes",
   "time_read": "partly",
   "hour_by_hour": "yes",
   "data": "yes",
   "links_to_ipma_or_anepc": null,
   "note": "It is the source. Its warnings are on a time axis (the warnings timeline) and by hour (the place forecast); no record of what others decided; shows its own last-update time.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-prociv",
   "name": "ANEPC: notice 21 and preventive measures",
   "url": "https://prociv.gov.pt/pt/avisos-a-populacao/",
   "kind": "authority",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "yes",
   "time_read": "no",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": null,
   "note": "Its own numbered notices and measures, dated by day; names IPMA as the basis.",
   "read": "2026-11-10T23:41Z",
   "seen": "html"
  },
  {
   "id": "sc-meteoalarm",
   "name": "MeteoAlarm: Portugal feed",
   "url": "https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-portugal",
   "kind": "authority-aggregator",
   "timeline": "partly",
   "decisions": "no",
   "source_per_item": "yes",
   "time_read": "yes",
   "hour_by_hour": "partly",
   "data": "yes",
   "links_to_ipma_or_anepc": null,
   "note": "Warnings on a time bar (now, +24h, by day), each entry with its issuing service and issue time; CAP feed.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-aemet",
   "name": "AEMET: season table of named storms",
   "url": "https://www.aemet.es/es/conocermas/borrascas/2026-2027",
   "kind": "authority",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "yes",
   "time_read": "no",
   "hour_by_hour": "no",
   "data": "partly",
   "links_to_ipma_or_anepc": null,
   "note": "A table of the season's named storms; open data exists for other products.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-rr-dashboard",
   "name": "Renascença: \"Monitorização Depressão Charles\"",
   "url": "https://rr.pt/tempestade-charles-avisos-e-ocorrencias",
   "kind": "interactive",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "partly",
   "time_read": "not seen",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 1,
   "note": "Maps and lists of warnings and occurrences; sources named for the tool as a whole (\"Proteção Civil\", \"Avisos Meteorológicos\"), not per item; the data loads by script and was not seen; no download offered in the page shell.",
   "read": "2026-11-10T23:46Z",
   "seen": "shell"
  },
  {
   "id": "sc-rtp-live",
   "name": "RTP: live blog \"Depressão Charles junta-se a Bruna. A evolução do mau tempo em Portugal\"",
   "url": "https://www.rtp.pt/noticias/pais/depressao-charles-esperado-agravamento-significativo-das-condicoes-meteorologicas_e1778024",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Live blog: decisions appear as entries among others; sources named in prose, no link to IPMA or ANEPC in the page; entry times are publication times.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-publico-live",
   "name": "Público: \"Ao Minuto\" on Charles",
   "url": "https://www.publico.pt/2026/11/10/sociedade/noticia/carros-submersos-estradas-alagadas-lisboa-escolas-servicos-publicos-fecham-quarta-2194405",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Live blog; as RTP.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-publico-explainer",
   "name": "Público: \"O que precisa de saber sobre a depressão Charles\"",
   "url": "https://www.publico.pt/2026/11/10/sociedade/noticia/mau-tempo-governo-pede-apenas-deslocacoes-necessarias-periodos-chuva-intensa-2194385",
   "kind": "explainer",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Question and answer; first-published and last-changed times.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-observador-live",
   "name": "Observador: general live blog leading on Charles",
   "url": "https://observador.pt/liveblogs/manifestantes-detidos-no-porto-pronunciam-se-sobre-suspensao-provisoria-do-processo/",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "partly",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "partly",
   "links_to_ipma_or_anepc": 5,
   "note": "Live blog with an anchor per entry and live-blog markup for search engines (machine-readable, not offered as data); five links to ANEPC, none to IPMA.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-observador-especial",
   "name": "Observador: special \"Charles: o que a distingue da Kristin e quão grave pode ser?\"",
   "url": "https://observador.pt/especiais/ventos-superiores-a-150-km-h-chuva-torrencial-e-a-ameaca-de-um-novo-sting-jet-pode-a-charles-repetir-a-kristin/",
   "kind": "explainer",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "partly",
   "data": "no",
   "links_to_ipma_or_anepc": 1,
   "note": "Long explainer; two embedded model maps with their own time control; one link to IPMA.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-negocios-live",
   "name": "Jornal de Negócios: live \"País em estado de alerta esta quarta-feira\"",
   "url": "https://www.jornaldenegocios.pt/economia/detalhe/fiquem-em-casa-todos-os-que-puderem-escolas-e-servicos-publicos-encerrados-amanha-siga-ao-minuto",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "partly",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 1,
   "note": "Live blog centred on closures and services; one link to IPMA; one embedded chart.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-nam-live",
   "name": "Notícias ao Minuto: \"AO MINUTO\"",
   "url": "https://www.noticiasaominuto.com/pais/3081421/ao-minuto-so-saia-de-casa-se-for-necessario-madeira-a-vermelho",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "partly",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 1,
   "note": "Live blog; one link to IPMA.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-rr-live",
   "name": "Renascença: \"Depressão Charles ao minuto\" and topic page",
   "url": "https://rr.pt/depressao-charles/tag/12540/",
   "kind": "liveblog",
   "timeline": "yes",
   "decisions": "not seen",
   "source_per_item": "not seen",
   "time_read": "not seen",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": null,
   "note": "Titled \"ao minuto\"; only its topic page was read.",
   "read": "2026-11-10T23:46Z",
   "seen": "html"
  },
  {
   "id": "sc-eco",
   "name": "ECO: topic \"Depressão Charles\"",
   "url": "https://eco.sapo.pt/topico/depressao-charles/",
   "kind": "topic-page",
   "timeline": "partly",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "A topic page: pieces newest first, many on companies' decisions, each a separate article.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-jn",
   "name": "Jornal de Notícias: \"Tudo o que precisa de saber\" and \"o que fecha\"",
   "url": "https://www.jn.pt/nacional/artigo/tudo-o-que-precisa-de-saber-sobre-a-tempestade-charles/18146628",
   "kind": "explainer",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 2,
   "note": "Service lists (\"what closes\"); two links to IPMA in one piece.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-tsf",
   "name": "TSF: path \"incerto\", critical period Wednesday afternoon; transport",
   "url": "https://www.tsf.pt/sociedade/artigo/depressao-charles-mantem-trajeto-incerto-e-devera-atingir-o-periodo-mais-critico-na-tarde-de-quarta-feira/18146855",
   "kind": "explainer",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Two articles: the critical period and transport.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-cnn",
   "name": "CNN Portugal / TVI: video coverage and \"Por onde vai entrar a tempestade Charles\"",
   "url": "https://cnnportugal.iol.pt/meteorologia",
   "kind": "broadcaster",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Video items with duration and age.",
   "read": "2026-11-10T23:41Z",
   "seen": "html"
  },
  {
   "id": "sc-cm",
   "name": "Correio da Manhã / CMTV: \"Veja o percurso da tempestade Charles\"",
   "url": "https://www.cmjornal.pt/cmtv/videos/detalhe/veja-o-percurso-da-tempestade-charles-e-por-onde-deve-entrar-em-portugal",
   "kind": "broadcaster",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Video of the path; closures as articles.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-tempopt",
   "name": "tempo.pt (Meteored): seven forecast pieces",
   "url": "https://www.tempo.pt/noticias/previsao/",
   "kind": "specialist-press",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "partly",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Its own forecasts, some hour-specific for Lisbon, by named forecasters; models named in prose (articles themselves not opened one by one).",
   "read": "2026-11-10T23:41Z",
   "seen": "html"
  },
  {
   "id": "sc-lusometeo",
   "name": "Luso Meteo: \"Tempestade Charles pode, afinal, ser mais fraca do que o previsto\"",
   "url": "https://lusometeo.com/atualidade/tempestade-charles-mais-fraca-32997/",
   "kind": "amateur",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "partly",
   "time_read": "partly",
   "hour_by_hour": "partly",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Its own analysis with interactive maps.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-wikipedia-pt",
   "name": "Wikipedia (pt): \"Depressão Charles\"",
   "url": "https://pt.wikipedia.org/wiki/Depress%C3%A3o_Charles",
   "kind": "encyclopedia",
   "timeline": "not seen",
   "decisions": "not seen",
   "source_per_item": "not seen",
   "time_read": "not seen",
   "hour_by_hour": "no",
   "data": "yes",
   "links_to_ipma_or_anepc": null,
   "note": "The article answered 429; only its revision list was read. Wikipedia's API and licence make it data.",
   "read": "2026-11-10T23:41Z",
   "seen": "json"
  },
  {
   "id": "sc-wikipedia-en",
   "name": "Wikipedia (en): \"2026–27 European windstorm season\", section Storm Charles",
   "url": "https://en.wikipedia.org/wiki/2026%E2%80%9327_European_windstorm_season",
   "kind": "encyclopedia",
   "timeline": "partly",
   "decisions": "no",
   "source_per_item": "yes",
   "time_read": "not seen",
   "hour_by_hour": "no",
   "data": "yes",
   "links_to_ipma_or_anepc": null,
   "note": "A section in the season article, with footnotes; access dates in the references were not checked.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-euronews",
   "name": "Euronews: three pieces in English",
   "url": "https://www.euronews.com/2026/11/10/portugal-on-alert-as-storms-bruna-and-charles-raise-sting-jet-risk-of-160-kmh-winds",
   "kind": "international",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Articles in English.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-elpais",
   "name": "El País: Bruna and Charles in Spain",
   "url": "https://elpais.com/el-tiempo/2026-11-10/las-borrascas-bruna-y-charles-ponen-bajo-aviso-rojo-por-lluvias-a-extremadura-y-castilla-y-leon.html",
   "kind": "international",
   "timeline": "no",
   "decisions": "partly",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "Articles on the Spanish side.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-tpn",
   "name": "The Portugal News: \"Weather Alert: Portugal on Red Alert for Storm Charles\"",
   "url": "https://www.theportugalnews.com/news/2026-11-10/weather-alert-portugal-on-red-alert-for-storm-charles/1114149",
   "kind": "international",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "no",
   "links_to_ipma_or_anepc": 0,
   "note": "A presenter-led video and short items.",
   "read": "2026-11-10T23:41Z",
   "seen": "html"
  },
  {
   "id": "sc-social",
   "name": "Open social networks: Mastodon tag #Charles",
   "url": "https://mastodon.social/tags/charles",
   "kind": "social",
   "timeline": "no",
   "decisions": "no",
   "source_per_item": "no",
   "time_read": "partly",
   "hour_by_hour": "no",
   "data": "partly",
   "links_to_ipma_or_anepc": null,
   "note": "Public posts with their times; an open API.",
   "read": "2026-11-10T23:40Z",
   "seen": "html"
  },
  {
   "id": "sc-not-covering",
   "name": "Not covering Charles when read: Met Office storm centre, BBC, Severe Weather Europe, Zoom Earth, Copernicus EMS",
   "url": "https://www.metoffice.gov.uk/weather/warnings-and-advice/uk-storm-centre/index",
   "kind": "absent",
   "timeline": "n/a",
   "decisions": "n/a",
   "source_per_item": "n/a",
   "time_read": "n/a",
   "hour_by_hour": "n/a",
   "data": "n/a",
   "links_to_ipma_or_anepc": null,
   "note": "Pages that did not mention Charles when read.",
   "read": "2026-11-10T23:38Z",
   "seen": "html"
  }
 ]
}
