Methods
This page explains how Local Health Signal collects, processes, and presents public health data. We believe in transparency — you should know exactly where our numbers come from and how we compute activity levels.
Data Collection
We pull data from multiple CDC surveillance systems using publicly available APIs and data files:
- Flu (ILINet): Influenza-like illness visit percentages from the CDC ILINet network, accessed via the Delphi Epidata API. Updated weekly on Fridays.
- RSV (NREVSS): Lab surveillance data from CDC's National Respiratory and Enteric Virus Surveillance System. Updated weekly.
- COVID-19 (NSSP): Emergency department visit data from CDC's National Syndromic Surveillance Program. Updated weekly.
- Measles: Case counts reported by CDC. Updated as new cases are confirmed.
- MMR Coverage (SchoolVaxView): Kindergarten vaccination coverage rates. Updated annually.
Processing Pipeline
Our automated pipeline runs on a weekly schedule via GitHub Actions:
- Fetch raw data from source APIs for all 50 states plus DC.
- Normalize data into a consistent schema (topic, geography, time series).
- Compute activity levels based on metric thresholds.
- Calculate trends using 3-week moving averages.
- Compare each state to the national average.
- Identify nearby states and their current activity.
- Generate plain-English key takeaways.
- Write processed JSON files to our repository, triggering a site rebuild.
Activity Levels
We classify activity into four levels to make it easy to understand at a glance:
| Level | Meaning | Flu (ILI %) |
|---|---|---|
| Low | Below typical activity | < 2.0% |
| Moderate | Typical seasonal activity | 2.0% – 3.9% |
| High | Above typical activity | 4.0% – 5.9% |
| Very High | Significantly above typical | ≥ 6.0% |
Note: These thresholds are approximate and designed for general informational use. The CDC uses its own activity level indicators which may differ.
Trends
Trends are computed by looking at the direction of change over the most recent 3 weeks of data. If the average week-over-week change is greater than 0.3 percentage points, the trend is "increasing." If it's less than -0.3, it's "decreasing." Otherwise, it's "stable."
Update Schedule
- Flu: Updated every Friday after 6 PM UTC (when CDC publishes FluView data).
- RSV: Updated weekly.
- COVID-19: Updated weekly.
- Measles: Updated as new case counts are published by CDC.
- MMR Coverage: Updated annually when new SchoolVaxView data is released.
Limitations
- Reporting lag: Surveillance data typically has a 1-2 week lag between when illness occurs and when data is available.
- Revision: Early data may be revised as more reports come in. We always show the latest available data.
- Geographic resolution: Currently we show state-level data only. County or metro-level data may be added in the future.
- Thresholds are approximate: Our activity level thresholds are designed for general use and may not match CDC's official activity level indicators.
- Not clinical guidance: This data is for informational purposes only and should not be used for clinical decision-making.