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: Weekly hospitalization admissions from CDC NHSN Hospital Respiratory Data. Updated weekly.
  • COVID-19: Weekly hospitalization admissions from CDC NHSN Hospital Respiratory Data. Updated weekly.
  • Measles: CDC national totals and formal outbreak counts, paired with an explicitly approximate state-detail view from the Johns Hopkins measles tracking repository. State and local health departments remain the authority for current exposure guidance.
  • MMR Coverage (SchoolVaxView): Kindergarten vaccination coverage rates. Updated annually.

Processing Pipeline

Our automated pipeline runs on a weekly schedule via GitHub Actions:

  1. Fetch raw data from source APIs for all 50 states plus DC.
  2. Normalize data into a consistent schema (topic, geography, time series).
  3. Compute activity levels based on metric thresholds.
  4. Calculate trends using 3-week moving averages.
  5. Compare each state to the national average.
  6. Identify nearby states and their current activity.
  7. Generate plain-English key takeaways.
  8. 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:

LevelMeaningFlu (ILI %)
LowBelow typical activity< 2.0%
ModerateTypical seasonal activity2.0% – 3.9%
HighAbove typical activity4.0% – 5.9%
Very HighSignificantly 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: Refreshed weekly from CDC national surveillance and the current Johns Hopkins state-detail tracker view.
  • 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: Most disease surveillance signals are national or statewide. City pages label that scope clearly and add city-specific routing or slower community context without presenting state surveillance as neighborhood-level disease counts. Selected water-quality pages use curated local official sources.
  • 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.

Related