US county air-quality exposure intelligence (annual, 2023-2025)
Annual county-level air-quality exposure panel built from the EPA Air Quality System (AQS) daily AQI-by-county bulk files. Per county and year: reported-day coverage, AQI max/p90, day counts by EPA category, unhealthy-plus (AQI>100) day counts, longest unhealthy streak, Jun-Aug wildfire-season smoke days, dominant pollutant, PM2.5/ozone shares, year-over-year change, a fixed-cut burden tier, and a 0-100 composite burden score. Covers ~990 counties with EPA monitors (50 states + DC). Joins on ISO date + county FIPS for demand-disruption modeling, seasonal staffing, and territory planning.
- Rows
- 2,945
- Columns
- 29
- Source cadence
- Yearly
- Last refreshed
- Sep 30, 2026
- Theme
- environment
| Column | Type | Description |
|---|---|---|
| snapshot_date | string | Date this snapshot was built (ISO). |
| vintage_year | integer | Calendar year of the EPA annual file. (unit: year) |
| county_fips | string | 5-digit county FIPS (state 2-digit + county 3-digit). |
| county_name | string | County name as published by EPA AQS. |
| state_code | string | USPS postal abbreviation. |
| state_name | string | State name as published by EPA AQS. |
| country_code | string | ISO alpha-3 country code (always USA). |
| n_days_reported | integer | Days with at least one EPA monitor reporting AQI. (unit: days) |
| coverage_pct | float | n_days_reported / days in year * 100. (unit: percent) |
| aqi_max | integer | Highest daily AQI recorded in the county that year. (unit: AQI) |
| aqi_max_date | string | Date of the highest daily AQI (first on ties). |
| aqi_p90 | float | 90th percentile of daily AQI values. (unit: AQI) |
| n_good | integer | Days with AQI 0-50 (EPA 'Good'). (unit: days) |
| n_moderate | integer | Days with AQI 51-100 (EPA 'Moderate'). (unit: days) |
| n_unhealthy_sensitive | integer | Days with AQI 101-150. (unit: days) |
| n_unhealthy | integer | Days with AQI 151-200. (unit: days) |
| n_very_unhealthy | integer | Days with AQI 201-300. (unit: days) |
| n_hazardous | integer | Days with AQI 301+. (unit: days) |
| n_unhealthy_plus | integer | Days with AQI > 100 (all unhealthy bands). (unit: days) |
| unhealthy_plus_pct | float | n_unhealthy_plus / n_days_reported * 100. (unit: percent) |
| longest_unhealthy_streak | integer | Longest run of consecutive calendar days with AQI > 100. (unit: days) |
| summer_smoke_days | integer | Jun-Aug days with AQI > 100 (wildfire-season exposure window). (unit: days) |
| dominant_parameter | string | Most frequent EPA defining parameter (usually PM2.5 or Ozone). |
| pm25_share_pct | float | Share of reported days driven by PM2.5. (unit: percent) |
| ozone_share_pct | float | Share of reported days driven by Ozone. (unit: percent) |
| yoy_change_unhealthy_plus | float | Year-over-year change in unhealthy-plus days vs prior vintage (null for 2023). (unit: days) |
| burden_tier | string | Fixed-cut tier on n_unhealthy_plus: minimal (0), low (1-3), moderate (4-8), high (9-20), very_high (>20). |
| aqi_burden_score | float | 0-100 composite: 100*(0.5*minmax(n_unhealthy_plus) + 0.3*minmax(aqi_p90) + 0.2*minmax(longest_unhealthy_streak)); min-max across counties within the vintage year. (unit: score 0-100) |
| row_hash | string | sha256('AQI|<county_fips>|<year>')[:16], unique row id. |
First 10 sample rows — a preview, not the complete dataset.
| snapshot_date | vintage_year | county_fips | county_name | state_code | state_name | country_code | n_days_reported | coverage_pct | aqi_max | aqi_max_date | aqi_p90 | n_good | n_moderate | n_unhealthy_sensitive | n_unhealthy | n_very_unhealthy | n_hazardous | n_unhealthy_plus | unhealthy_plus_pct | longest_unhealthy_streak | summer_smoke_days | dominant_parameter | pm25_share_pct | ozone_share_pct | yoy_change_unhealthy_plus | burden_tier | aqi_burden_score | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-09-30 | 2,023 | 01003 | Baldwin | AL | Alabama | USA | 347 | 95.07 | 90 | 2023-05-03 | 59.4 | 236 | 111 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PM2.5 | 68.9 | 31.1 | — | minimal | 10 | f07b5a4d98c6ba9f |
| 2026-09-30 | 2,024 | 01003 | Baldwin | AL | Alabama | USA | 355 | 96.99 | 90 | 2024-10-13 | 57.6 | 278 | 77 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PM2.5 | 64.2 | 35.8 | 0 | minimal | 10 | 361610dae23f62ee |
| 2026-09-30 | 2,025 | 01003 | Baldwin | AL | Alabama | USA | 355 | 97.26 | 87 | 2025-04-10 | 55 | 268 | 87 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PM2.5 | 61.7 | 38.3 | 0 | minimal | 10 | b4ef618e9ec88e98 |
| 2026-09-30 | 2,023 | 01027 | Clay | AL | Alabama | USA | 327 | 89.59 | 85 | 2023-03-22 | 60.4 | 221 | 106 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PM2.5 | 100 | 0 | — | minimal | 10 | bb8edca031b712b9 |
| 2026-09-30 | 2,024 | 01027 | Clay | AL | Alabama | USA | 354 | 96.72 | 75 | 2024-03-21 | 52 | 307 | 47 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | PM2.5 | 100 | 0 | 0 | minimal | 10 | a236d12061bdec10 |
| 2026-09-30 | 2,025 | 01027 | Clay | AL | Alabama | USA | 354 | 96.99 | 133 | 2025-01-26 | 54.7 | 287 | 66 | 1 | 0 | 0 | 0 | 1 | 0.28 | 1 | 0 | PM2.5 | 100 | 0 | 1 | low | 10 | 590023896dfc5aa1 |
| 2026-09-30 | 2,023 | 01049 | DeKalb | AL | Alabama | USA | 365 | 100 | 133 | 2023-06-07 | 65.6 | 212 | 151 | 2 | 0 | 0 | 0 | 2 | 0.55 | 1 | 2 | PM2.5 | 55.6 | 44.4 | — | low | 10 | 4164b62a00e1ebc3 |
| 2026-09-30 | 2,024 | 01049 | DeKalb | AL | Alabama | USA | 366 | 100 | 87 | 2024-08-27 | 57 | 277 | 89 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Ozone | 33.9 | 66.1 | -2 | minimal | 10 | dc99fd6b7e216fe4 |
| 2026-09-30 | 2,025 | 01049 | DeKalb | AL | Alabama | USA | 365 | 100 | 93 | 2025-03-12 | 56 | 282 | 83 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Ozone | 36.2 | 63.8 | 0 | minimal | 10 | b4695b7cdf561127 |
| 2026-09-30 | 2,023 | 01051 | Elmore | AL | Alabama | USA | 238 | 65.21 | 90 | 2023-06-08 | 49 | 221 | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | Ozone | 0 | 100 | — | minimal | 10 | 51656003e197fcba |
- Current
20260930T125429Z-42e631335af4 · sha256 42e631335af4…
2,945 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/us_county_aqi_intel/us_county_aqi_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/us_county_aqi_intel/us_county_aqi_annual").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/us_county_aqi_intel/us_county_aqi_annual
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260930T125429Z-42e631335af4 and its content hash, so readers get exactly the data you used.
. (2026). US county air-quality exposure intelligence (annual, 2023-2025) [Data set, snapshot 20260930T125429Z-42e631335af4, sha256 42e631335af4]. Datazimuts. Retrieved 2026-09-30, from https://datazimuts.com/en/datasets/us_county_aqi_intel/us_county_aqi_annual?snapshot=20260930T125429Z-42e631335af4
@misc{dz_us_county_aqi_intel_us_county_aqi_annual_42e63133,
title = {{US county air-quality exposure intelligence (annual, 2023-2025)}},
author = {{}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/us_county_aqi_intel/us_county_aqi_annual?snapshot=20260930T125429Z-42e631335af4}},
note = {Snapshot 20260930T125429Z-42e631335af4, sha256 42e631335af4f5a99106a76618154fe3bd7000af7fa2cdaef6cc9d892f3ea3a4; accessed 2026-09-30}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=us_county_aqi_intel%2Fus_county_aqi_annual&lang=en&theme=auto&snapshot=20260930T125429Z-42e631335af4&x=snapshot_date&y=vintage_year&agg=avg" title="US county air-quality exposure intelligence (annual, 2023-2025)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.