Ebola Outbreak Dashboard
Real-Time Surveillance of the 2026 Bundibugyo Outbreak in DRC & Uganda
Overview
An interactive, fully automated dashboard tracking the 2026 Bundibugyo Ebola outbreak in the Democratic Republic of Congo and Uganda. The dashboard updates daily through a GitHub Actions pipeline that scrapes official outbreak data, pulls Google Trends public interest signals, and computes statistical trajectory analyses — all without any manual intervention.
The dashboard reads data entirely client-side from a single data.json file, meaning no backend server is required. It is deployed as a static site on GitHub Pages and updates automatically every day at 08:00 UTC.
The Problem
Tracking a fast-moving infectious disease outbreak requires daily, reliable, machine-readable data. During the 2026 Bundibugyo Ebola outbreak, the European Centre for Disease Prevention and Control (ECDC) published near-daily updates — but the page format changed wording repeatedly, breaking traditional regex parsers and requiring manual fixes each time.
This project solves that problem by replacing brittle text-parsing rules with Gemini AI, which reads the outbreak page like a human and extracts case and death counts regardless of how the sentence is worded.
Automated Data Pipeline
The dashboard is powered by a four-script pipeline that runs daily via GitHub Actions:
Statistical Analyses
The dashboard computes three epidemiological indicators automatically on every daily run:
Case Fatality Rate (CFR) Trend
Calculated as deaths / cases x 100 at each timeline point. Trend direction compares the average of the most recent three data points against the three preceding points — a more robust approach than simple first-vs-last comparison, since early outbreak data points carry high noise from incomplete case ascertainment.
Exponential Growth Rate and Doubling Time
Fits log(cumulative cases) against days since first data point using ordinary least squares. The slope gives the daily growth rate; doubling time is computed as ln(2) / slope. R-squared is reported alongside the estimate to communicate how well a single growth curve fits a potentially multi-phase outbreak.
Search Interest and Case Growth Correlation
Spearman rank correlation between Google’s daily Ebola search interest score and the most recent known cumulative case count. During this outbreak, a sharp search interest spike around the WHO PHEIC announcement was followed by declining attention even as cases continued rising — a media-attention fatigue pattern visible in the negative correlation value.
Why Gemini AI for Data Extraction
ECDC changed the wording of their outbreak page five times between May and July 2026. Each change broke traditional regex parsing. Examples of the variation:
“DRC Ministry of Health reported a total of 1,155 confirmed cases, including 304 confirmed related deaths”
“A total 452 related deaths have been confirmed so far”
“1,561 confirmed cases (based on data until 4 July), including 506 confirmed deaths”
Gemini AI reads the page as a human would and extracts the numbers regardless of phrasing — eliminating the need for manual maintenance each time the source page format changes.
Data Sources
| Data | Source | Frequency |
|---|---|---|
| Case and death counts | ECDC outbreak page | Near-daily |
| Public search interest | Google Trends (pytrends) | Daily |
| Statistical analysis | Computed from timeline | Daily |
| Outbreak milestones | Manually maintained | As needed |
Why ECDC over CDC: CDC’s situation page uses rounded prose (“more than 1,000 cases”) rather than exact figures — not suitable for building a daily timeline. ECDC publishes exact confirmed counts updated almost daily.
Tech Stack
| Component | Technology |
|---|---|
| Data scraping | Python, cloudscraper |
| AI extraction | Gemini API (free tier) |
| Trends surveillance | Python, pytrends |
| Statistical analysis | Python (stdlib only) |
| Visualization | Chart.js |
| Automation | GitHub Actions |
| Deployment | GitHub Pages |
Public Health Significance
This project demonstrates several capabilities relevant to infectious disease surveillance and outbreak response:
- Resilient data collection — AI-assisted extraction handles format changes that break rule-based parsers, reducing maintenance burden during fast-moving emergencies
- Real-time public attention surveillance — integrating Google Trends alongside epidemiological data provides insight into information-seeking behavior and media attention cycles
- Automated epidemiological analysis — daily recomputation of CFR trends, growth rates, and search correlations without analyst intervention supports rapid situational awareness
- Open methodology — fully reproducible pipeline on public GitHub with detailed documentation, suitable for adaptation to other outbreak contexts
Current Status
The dashboard is live and updating daily. Case and death data reflect the most recent ECDC publication. The pipeline runs automatically at 08:00 UTC each day and commits updated data to the repository.