Air Quality Data Downloads
EPA monitor data through 2025 · Updated August 13, 2026
Two files: annual air quality index counts for every U.S. state and metro area, scored twice: once under EPA's current rules and once under the rules in force before EPA's 2013 and 2015 revisions. Only part of this is ours. The current-rules metro numbers come from EPA and are better taken from EPA directly if that is all you need. What you cannot get anywhere else is the second scoring, and the state-level rollup.
What EPA already publishes, and where
If you want current-rules air quality counts by metro or county, go to the source:
EPA AirData pre-generated files.
EPA's annual_aqi_by_cbsa_YYYY.zip and annual_aqi_by_county_YYYY.zip give days
with an index, all six category counts, and the maximum, 90th-percentile and median index for each year.
That is authoritative, free, and updated before we are. EPA ships one file per year; the only thing we do
to it is stack the years into one file.
EPA publishes no state-level file. Its summaries stop at metro and county.
What is actually ours
- The pre-2013 scoring (every
*_2011column). EPA has never published it and it cannot be derived from EPA's summary files. It requires recomputing the index from raw daily monitor concentrations under the older breakpoint table. This is the reason the files exist. Why the two scorings differ. - The state rollup, which EPA does not publish, with the caveat below.
- Pollutant attribution for unhealthy days only. EPA's “Days Ozone” and
“Days PM2.5” count days where each pollutant set the index at any level. Our
gt100_by_…columns count only days above 100, which is a different question.
The files
| File | Rows | Covers |
|---|---|---|
| air-quality-by-state.csv | 1,352 | 52 states and territories, 2000–2025 |
| air-quality-by-metro.csv | 11,415 | 456 metro areas, 2000–2025 |
Columns
| Column | Meaning | Source |
|---|---|---|
area, year | State or EPA metropolitan area name, calendar year | EPA |
days_with_aqi | Days with enough monitor data to compute an index. Below about 300, treat the year as not comparable. | EPA equivalent |
gt100_current | Days above index 100 under today's rules | EPA equivalent |
gt100_2011, good_2011, median_2011, p90_2011, max_2011 |
The same monitor data scored under the pre-2013 rules | Ours |
good_current, moderate_current, usg_current, unhealthy_current, veryunhealthy_current, hazardous_current |
Days in each category under today's rules | EPA equivalent |
median_current, p90_current, max_current |
Median, 90th-percentile and worst daily index | EPA equivalent |
gt100_by_o3_8hr_current, gt100_by_pm25_current, and the rest |
Of the days above 100, how many each pollutant drove | Ours |
“EPA equivalent” means EPA publishes the same quantity for metros and counties; our figure reproduces it for 94–98% of areas exactly. Small differences remain, so for current-rules work cite EPA rather than us.
Read the state file carefully. A statewide index is the worst monitor anywhere in the state on a given day, so it describes whether air was unhealthy somewhere, not what a typical resident breathed. Large states with many monitors read high. EPA reports the index for metropolitan areas rather than states, and this is very likely why. We publish the rollup because it is genuinely useful for “did this state have bad-air days” questions, but the metro file is the right one for anything about exposure.
How the second scoring was produced
Recomputed from EPA's raw daily monitor records under both breakpoint tables — 40 CFR part 58 Appendix G as printed in the 7-1-2011 CFR edition, and the current table. The calculation reproduces EPA's own published metro counts for 94–98% of areas exactly, which is how we know it is right. Full method, validation record and limitations.
Citation
The underlying monitor data is public domain from the U.S. Environmental Protection Agency and should be credited to EPA. If you use the pre-2013 scoring or the state rollup, cite “Energy Factbook, air quality scored under both current and pre-2013 EPA rules, derived from EPA AirData daily monitor files,” with the page URL.