NOT MEDICAL ADVICE.  For information only. In an emergency, call your local emergency number immediately.

Data Methodology

How VirusWatch collects, verifies, and presents global infectious disease data — and what our numbers mean.

Our Mission

VirusWatch exists to make global infectious disease surveillance data accessible to everyone — not just public health professionals. We aggregate data from authoritative sources, apply consistent normalisation, and present it in plain language with clear uncertainty bounds. Transparency about our methods is essential to that mission.

This page explains where our numbers come from, how we process them, what they mean, and — critically — what they don't mean. Epidemiological data is inherently uncertain; we aim to represent that uncertainty honestly.

Primary Data Sources

Source Used For Update Frequency Access Method
disease.sh (aggregates WHO + JHU data) COVID-19 live global totals (cases, deaths, recovered) ~30 minutes REST API (server-side, cached 1 hr)
WHO Global Health Observatory (GHO) Malaria, Tuberculosis, HIV/AIDS, Measles, Hepatitis B — annual estimates Annual (WHO publishes yearly) OData API (server-side, cached 1 hr)
WHO Situation Reports & Fact Sheets Baseline figures for Dengue, Ebola, H5N1, Mpox, Chikungunya, Nipah, Zika, Cholera, Rabies, Yellow Fever, Typhoid, Hantavirus, Plague, Marburg Static — updated manually when WHO publishes new reports Editorial review (incorporated into baseline figures)
CDC Outbreak guidance, clinical reference, CFR data Ongoing Editorial reference
Peer-reviewed literature CFR, incubation periods, transmission data Continuously updated Editorial review (PubMed, Lancet, NEJM)

How Data Fetching Works

Our Cloudflare Worker API (api.viruswatch.health) fetches live data from upstream sources on request and caches results for 1 hour in Cloudflare KV storage. We are honest about which diseases have live data and which do not:

6 diseases with live API data (updated hourly)

  • COVID-19 — fetched from disease.sh (which aggregates WHO and Johns Hopkins University data). Reflects cumulative global totals since 2020. Disease.sh refreshes its own cache approximately every 30 minutes; our API caches for 1 hour.
  • Malaria — WHO Global Health Observatory indicator MALARIA_EST_CASES and MALARIA_EST_DEATHS. WHO publishes annual estimates; the figure reflects the most recently published year (typically 1–2 year lag).
  • Tuberculosis — WHO GHO indicator TB_e_inc_num (estimated incidence). Annual WHO Global TB Report data.
  • HIV/AIDS — WHO GHO indicators HIV_0000000001 (people living with HIV) and HIV_0000000006 (annual deaths). Annual UNAIDS/WHO estimates.
  • Measles — WHO GHO indicator WHS3_62 (reported cases). Annual WHO immunization data.
  • Hepatitis B — WHO GHO country-level data (HEPATITIS_HBV_LIVINGWITH_NUM) summed across all reporting countries. Annual estimates.

14 diseases with WHO-published static baselines

The following diseases do not have a publicly accessible global case-count API that returns reliable, current totals. Their figures are WHO-published baselines sourced from the most recent WHO situation reports, fact sheets, or peer-reviewed literature, and are updated manually when new official data is published:

Dengue · Ebola · H5N1 Bird Flu · Mpox · Chikungunya · Nipah · Zika · Cholera · Rabies · Yellow Fever · Typhoid · Hantavirus · Plague · Marburg

We do not fabricate, interpolate, or estimate figures for these diseases. If no reliable global API exists, we display the best available published baseline and label it accordingly. When live data becomes available for any of these diseases, we will integrate it.

Baseline Figures and Cumulative Totals

Most disease statistics on VirusWatch represent cumulative historical totals, not current active case counts. This is an important distinction:

  • Cumulative cases: Total confirmed cases ever recorded (e.g., 703 million COVID-19 cases since 2020). Most of these individuals have recovered or died.
  • Active cases: Currently sick individuals. We do not display active case counts for most diseases due to reporting lag and reliability concerns.
  • Deaths: Cumulative confirmed deaths attributable to the disease. Excess mortality studies suggest true death tolls (especially for COVID-19) are significantly higher than confirmed figures.
  • Recovered: Estimated cumulative recoveries. Calculated as: confirmed cases − deaths − (estimated remaining active).

For diseases with low total case counts (H5N1, Nipah), numbers reflect all confirmed cases in human history. Underreporting is a significant issue for these diseases, particularly in resource-limited settings.

Case Fatality Rate (CFR) Methodology

The Case Fatality Rate shown on disease pages is calculated as: CFR = (confirmed deaths ÷ confirmed cases) × 100

Important caveats:

  • CFR varies significantly by outbreak, geography, healthcare system capacity, and case detection rate. A CFR of 2% in a high-income country may be 15%+ in a setting with limited healthcare access.
  • CFR is not the same as Infection Fatality Rate (IFR). IFR accounts for unconfirmed infections and is typically lower than CFR.
  • CFRs for diseases like Ebola and Nipah are highly context-dependent and can range from 25–90% depending on the outbreak and healthcare response.
  • We display a range (e.g., "Ebola: 25–90% CFR") where the literature shows significant variation.

AI Assistant Methodology

The VirusWatch AI assistant is powered by Groq (llama-3.1-8b-instant). The AI is prompted to:

  • Answer questions about infectious diseases clearly and factually
  • Cite WHO or CDC guidance where relevant
  • Explicitly state that responses are educational only
  • Not provide personal medical advice, diagnoses, or specific medication recommendations
  • End every response with a reminder to consult a qualified healthcare provider

AI responses are cached for 24 hours. The AI may contain inaccuracies or outdated information. AI-generated content should not be used as a substitute for professional medical advice or authoritative public health guidance.

We do not store questions linked to personal identifiers. See our Privacy Policy for details on AI query handling.

News Aggregation

The VirusWatch news feed aggregates headlines from public health RSS feeds and news sources. News content is displayed as-is from the source; VirusWatch does not verify or fact-check individual news articles. We apply content filtering to ensure relevance to global health topics.

News articles cached for 1 hour to reduce API load. If no live news is available, a cached version is displayed with a timestamp.

Content Editorial Standards

Disease page content (symptoms, transmission, treatment) is written and reviewed by the VirusWatch Health Research Team against WHO and CDC reference materials. Content is reviewed when significant guidance updates are published by these authorities.

Our editorial standards:

  • Primary citations: WHO, CDC, peer-reviewed journals (Lancet, NEJM, BMJ, Emerging Infectious Diseases)
  • All claims about symptoms, transmission, and treatment reference published WHO or CDC guidance
  • Where scientific consensus is uncertain, we note the uncertainty explicitly
  • We do not publish content that recommends unproven treatments or contradicts scientific consensus
  • Content is written in plain language accessible to a general audience, without sacrificing accuracy

Limitations and Known Issues

  • Reporting lag: All disease figures are subject to reporting delays. Data is only as current as what is reported to and published by health authorities.
  • Underreporting: Confirmed case counts significantly underestimate true infection burden, particularly for diseases without robust surveillance infrastructure.
  • Geographic variation: Incidence, CFR, and treatment outcomes vary significantly by country, region, and healthcare system. Global averages mask this variation.
  • API availability: We depend on third-party APIs (disease.sh, WHO GHO). If these are unavailable, we display the most recent cached data or vetted baselines.
  • AI limitations: AI-generated responses may contain hallucinations, outdated information, or errors. Always verify with authoritative sources.

Data Freshness

Data freshness varies by disease and source. We only claim live data where a live API actually exists:

  • COVID-19: Our API fetches from disease.sh hourly and caches in KV. Disease.sh itself refreshes every ~30 minutes from its upstream sources (WHO, JHU). Displayed as live data with a dataType: "live" label.
  • Malaria, Tuberculosis, HIV/AIDS, Measles, Hepatitis B: Fetched hourly from the WHO Global Health Observatory OData API. WHO publishes new estimates annually; the API serves the most recently published year. Displayed with a dataType: "official" label and a year indicator.
  • All other 14 diseases (Dengue, Ebola, H5N1, Mpox, Chikungunya, Nipah, Zika, Cholera, Rabies, Yellow Fever, Typhoid, Hantavirus, Plague, Marburg): WHO-published baseline figures from the most recent published WHO reports. These do not auto-update via API. We update them manually when WHO or CDC publishes new figures. Displayed with a source label noting these are WHO-published baseline figures last checked against cited sources in January 2025. Figures may have since been revised.

Data Limitations

Public-health data has inherent limitations:

  • Case counts are often underreported due to limited testing capacity in affected regions
  • Data may be delayed by days or weeks between occurrence and official reporting
  • Classification of cases can change as investigations proceed
  • VirusWatch presents data as published by official sources and does not adjust or estimate unreported cases

Independence Statement

VirusWatch is independently operated. We have no commercial relationship with WHO, CDC, ECDC, PAHO, any pharmaceutical company, health insurer, or government health body. No funding influences our content. We are not affiliated with any government agency.

Content is written by the VirusWatch editorial team using publicly available data from official health organizations. It is not medically reviewed by licensed physicians. Nothing on this site constitutes medical advice, diagnosis, or treatment.

Feedback and Corrections

If you believe any data or content on VirusWatch is inaccurate, please contact us at [email protected]. Include the specific page, the claimed error, and a reference to an authoritative source. We review all correction requests and will update content when errors are confirmed.

For API-related issues or developer queries, see our Developer documentation.