The official "this outbreak is now an emergency" call comes from WHO. By the time WHO publishes a Disease Outbreak News (DON) bulletin, the outbreak has already escalated past local-response capacity. For supply-chain, NGO and biosecurity teams, the WHO DON feed is the latest-possible reliable signal — but it's still the most defensible one.
This post is about disease outbreak monitoring at the OSINT layer: WHO DON for the authoritative late signal, ProMED + HealthMap for the early-warning fuzz, and how to filter both for operations relevance.
The WHO DON feed
WHO publishes Disease Outbreak News bulletins on every major outbreak that meets International Health Regulations criteria. RSS feed:
https://www.who.int/rss-feeds/news-english.xml
Plus the bulletins index:
https://www.who.int/emergencies/disease-outbreak-news
Update cadence: irregular, driven by event detection. Median 1-7 days between bulletin and outbreak detection. Quality: authoritative.
ProMED — the earliest open signal
ProMED-mail is a community-curated infectious-disease reporting network run by the International Society for Infectious Diseases. RSS feed of curated reports:
https://promedmail.org/promed-mail-rss/
Update cadence: ~10-20 reports per day. Quality: mixed, but human-curated.
ProMED was the first public source to report SARS in 2003. Has a track record of catching outbreaks 7-14 days before official channels.
HealthMap — automated aggregation
HealthMap aggregates news + ProMED + official feeds and geocodes:
https://www.healthmap.org/HMapi.php
Free API. Useful as a corroboration layer when ProMED is ambiguous on location.
Severity scoring
Combine the three for a 0-100 score:
function outbreakSeverity(item: OutbreakItem): number {
if (item.source === "who_don") {
// WHO DON = official emergency, always high
return item.diseaseClass === "viral_haemorrhagic" ? 95
: item.diseaseClass === "respiratory" ? 85
: item.diseaseClass === "vector_borne" ? 70
: 60;
}
if (item.source === "promed") {
// ProMED human-curated, moderate weight
return item.reportType === "confirmed" ? 60
: item.reportType === "suspected" ? 40
: 25;
}
// HealthMap aggregated news
return Math.min(50, item.mentionCount * 5);
}
Disease taxonomy for filtering
Not every outbreak is operationally relevant. Filter by disease class based on your risk model:
Supply-chain / logistics teams care about:
- Respiratory (COVID, MERS, novel influenza) — affects mobility + workforce
- Foodborne (E. coli, listeria) — affects food-supply customers
- Animal (avian flu, ASF) — affects agricultural supply chains
Biosecurity / health-security teams care about:
- Viral haemorrhagic (Ebola, Marburg, Lassa) — high-mortality outbreaks
- Novel pathogens (Disease X) — requires immediate response
- Antimicrobial resistance — slow-burn long-term risk
Insurance / reinsurance teams care about:
- Anything WHO-declared as a PHEIC (Public Health Emergency of International Concern)
- Region-specific endemic resurgences
Geofencing patterns
Three patterns:
1. Country-level polygons
Most outbreak monitoring is country-scale. Define polygon zones for every country you operate in or source from. Severity threshold ≥50 catches the meaningful events.
2. Supply-chain corridor monitoring
For agricultural / food supply chains, define zones around supplier countries. Severity threshold ≥40 for animal-disease outbreaks; supplier substitution decisions need long lead time.
3. Travel risk
For workforce-mobility / corporate travel teams, define zones around employee deployment locations. Severity threshold ≥60. Drives travel advisories + insurance updates.
Lead-time benchmarks
How early these feeds catch outbreaks:
- ProMED — 7-14 days before WHO DON in best case (SARS), often same week
- HealthMap — same as ProMED for major outbreaks, faster for high-volume news
- WHO DON — authoritative but late: 5-21 days after outbreak detection
- Local news (via GDELT) — 0-3 days, noisier than ProMED
For the earliest warning, combine ProMED + GDELT health-themed filter. For the most defensible signal, rely on WHO DON.
Practical false-positive reductions
ProMED has known noise sources:
- Translation artefacts — Chinese, Russian sources sometimes mis-translate event location. Cross-reference with HealthMap geocoding.
- Speculation reports — flagged as "[Discussion]" or "[Query]" by ProMED moderators. Filter these out for ops dashboards.
- Historical references — past-outbreak retrospectives appear in the feed. Filter by
reportDatewithin 14 days.
Free starter stack
Minimum viable disease outbreak monitoring this week:
- Wire WHO DON RSS — poll every 60 minutes
- Wire ProMED RSS — poll every 30 minutes
- Optional: HealthMap API for corroboration
- Define country / region polygons for your operating + supplier markets
- Score on 0-100 by source + disease class
- Slack channel
#ops-health, route via incoming webhook
Augur's WHO + ReliefWeb integration wraps the cross-source aggregation + disease classification + geofencing. The feeds are free; the merge is the work.
When you need more
For dedicated biosurveillance operations:
- Veratect / Metabiota / BlueDot — commercial outbreak intelligence platforms
- CDC Health Alert Network (HAN) — US-only, official
- ECDC Threat Detection Hub — EU-only, official
For most teams the OSINT layer above is enough. The escalation question is "do we need a 24/7 epidemiologist on call?" rather than "do we need better data."
What this looks like in production
International airline: WHO DON + ProMED + 60 country polygons drives the travel-advisory feed that updates the booking system's "destinations of concern" filter.
Global FMCG: ProMED + GDELT animal-disease filter + supplier-country polygons drives the early-warning queue for procurement substitution planning.
Reinsurance carrier: WHO DON + 30-country polygons drives quarterly portfolio-risk updates. PHEIC declarations trigger immediate reserve adjustments.
The early-warning signal is public. The geofencing + severity scoring is the layer that makes it useful.