Skip to content
Snapshot
Nov 8, 2026 • 00:17 WIB
27
Active Countries
141
Viral Topics
Global Index
78/100
Updated
Next Update

About & Methodology

What EarthViral is

EarthViral maps which news stories are drawing unusual attention in each country. Every three hours an automated batch reads public news feeds, groups articles about the same event, measures how widely and how fast each story is being covered, and publishes a summary that links back to every original report.

We do not do original reporting. The journalism belongs to the publishers we link to; EarthViral’s job is to show where attention is concentrating and to send readers to the source.

How a batch works

  1. Collect. Public RSS feeds from 30 outlets, public Google Trends search lists for tracked countries, and (when available) the GDELT news index.
  2. Attribute. Each article is assigned to one of 41 tracked countries from its outlet’s home country and the places named in its headline.
  3. Group. Articles in the same country with similar headlines are clustered into a single story. Follow-up coverage joins the existing story, so its page address never changes.
  4. Score. Each story receives a Viral Activity Score (below).
  5. Summarise. An AI model writes a neutral summary using only the headlines and snippets in the cluster, then the page links to every source.
  6. Publish. The site is rebuilt as static pages and refreshed on our CDN.

The Viral Activity Score (0–100)

The score measures attention, not importance. It combines three signals:

SignalWhat it measuresFormula
CoverageHow many independent outlets are reporting the story100 · (1 − e−outlets / 2.5)
VelocityHow much coverage is recent; each article’s weight halves roughly every 4 hours100 · (1 − e−Σ e−age(h) / 6 / 2.5)
SearchWhether the story matches a public Google Trends search in that country40 + 12 · log₁₀(searches + 1), capped at 100; 0 if no match

Score = 0.55 × Coverage + 0.45 × Velocity + 0.15 × Search, capped at 100. Search is a bonus on top of coverage and velocity because Google Trends lists only a handful of searches per country. Scores are recalculated every batch, so stories cool down as coverage slows.

A new story needs at least 2 independent outlets, or one outlet plus a matching search trend. Stories leave the live map after 48 hours without new coverage and are removed after 30 days. Each country keeps at most its10 highest-scoring stories; a story that drops out redirects to its country page.

Intensity tiers

TierScore
Viral Surge85–100
High60–84
Active25–59
Quiet0–24

A country’s score is its highest-scoring active story, plus a small bonus (up to 3 points) when several stories are active.

Categories

Every story is placed in one of nine categories: Politics & Government, Crime & Law, Economy & Business, Technology & AI, Sports, Entertainment & Celebrity, Social Issues, Disasters & World Events, Lifestyle & Culture.

Sources

Current RSS sources: ABC, Al Jazeera, Antara, BBC, Capital FM, CBS News, CNA, CNBC Indonesia, CNN Indonesia, Detik, Deutsche Welle, Folha de S.Paulo, France 24, KBC, Le Monde, Malay Mail, Mexico News Daily, Nation Africa, NPR, Premium Times, Punch, Republika, Tempo, The Guardian, The Hindu, The Japan Times, The Standard, The Straits Times, Times of India, Yonhap.

Editorial standards & AI disclosure

  • Summaries are generated by an AI model instructed to use only facts present in the linked coverage, to stay neutral, to attribute contested claims, and not to name private individuals.
  • AI summaries can still contain mistakes. Always check the original reporting linked on each page before relying on a summary.
  • When no AI model is available for a batch, pages list the original headlines instead of a synthesis and say so.
  • Scores describe media and search attention. A high score does not mean a story is true, important or endorsed.

Corrections & removal requests

Publishers and readers can request a correction or removal at [email protected]. Please include the page address.

Search stories, countries and topics.

↑↓ to navigate · Enter to openEsc to close