# HomeRiskIQ AQI calendar evidence

Three retrospective article packages use the latest full-year bulk source available when checked October 30, 2026: EPA's 2025 archive, index dated June 25, 2026. The source is full-year but each headline calendar uses May 1–September 30, 153 dates. This is not a 2026 forecast. All county selections contain all 153 seasonal dates; annual coverage differs and is reported separately where used.

## Reproduce

Use Python 3 with pandas, numpy and matplotlib. From this directory run `python reproduce.py`, then `MPLCONFIGDIR=/tmp/hri-aqi-mpl python make_charts.py`. Raw files are preserved under raw; URL, retrieval date, size and SHA256 appear in source_manifest.json. No live API key is required. The charts were generated from the exported evidence and visually inspected as PNGs on October 30, 2026.

## Definitions

The canonical daily county AQI is an area maximum, not an average. Strict `AQI > 100` includes Unhealthy for Sensitive Groups or worse. Reindex to all calendar dates; missing values are not qualifying dates and break streaks. A weekend is a Saturday and its following Sunday, both within the window and both observed; qualifying means at least one date above 100. This window has 22 complete pairs.

Monitor sensitivity uses the seven daily files: ozone 44201, PM10 81102, PM2.5 88101/88502, CO 42101, SO2 42401, NO2 42602. Retain Event Type values None or Included, and nonblank AQI; do not sum duplicate standards or durations. Maximize across rows to site/date, then county/date. Fixed-site panels require some nonblank AQI at that site on all 153 dates. Fixed-monitor panels require each site+parameter+POC to have nonblank AQI on all 153 dates, not unchanged physical instruments. A blank daily AQI does not imply no measurements or no pollution. Event-inclusive data are not smoke attribution. Neither filter confers certification.

## Evidence files

county_full_year.csv and county_season.csv retain EPA fields. summary.csv, runs.csv and weekends.csv contain exact headline calculations. monitor_selected_records.csv preserves seven-file selected rows, including blank-AQI and excluded-event rows for inspection. monitor_site_daily.csv, monitor_site_inventory.csv and monitor_inventory.csv preserve panel denominators. sensitivity.csv contains threshold, parameter and complete-panel alternatives. daily_summary_mismatches.csv preserves 24 exact disagreements, all concordant at the strict above-100 threshold. site_metrics.csv checks individual-site persistence. chart CSVs are the plotting inputs.

## Limits that travel with the figures

The counties were selected after exploratory inspection, not as a representative national sample. No national ranking, trend, statistical significance, pollutant-source attribution, individual exposure, indoor-air, health, real-estate-price or property-risk inference is made. Full county date coverage does not establish full pollutant coverage. County and daily pollutant-summary exact values do not universally agree; the county archive remains canonical and no exact algorithmic reconstruction is claimed.

## Primary methodological sources

- EPA bulk source index: https://aqs.epa.gov/aqsweb/airdata/download_files.html
- EPA area maxima explanation: https://www.epa.gov/outdoor-air-quality-data/airdata-tile-plot
- File fields and site/parameter/POC definitions: https://aqs.epa.gov/aqsweb/airdata/FileFormats.html
- Category and pollutant descriptions: https://www.epa.gov/outdoor-air-quality-data/about-airdata-reports
- Current AQI technical guidance: https://www.airnow.gov/publications/air-quality-index/technical-assistance-document-for-reporting-the-daily-aqi/

Public-clean materials are articles, charts, this README, reproducible scripts, numeric source manifest, raw data and evidence CSVs. Private-only files are pitches, novelty_and_contacts.md, RECONCILIATION_AND_READINESS.md and package_manifest.json. Nothing was published or sent.
