US counties by share of days with good air quality (US EPA AQI)
Abbeville County had the highest share of days with good air quality (US EPA AQI) of 1006 counties in 2017, at 100%. San Bernardino County had the lowest, at 2.5%. The median was 75.2%. Source: EPA.
Map of counties, 2017
Top 40 counties, 2017
Full ranking
| Rank | Counties | 2017 (%) | Change on 2016 |
|---|---|---|---|
| 1 | Abbeville County | 100 | +8.4 pts |
| 1 | Aleutians East Borough | 100 | +1.7 pts |
| 1 | Alexandria city | 100 | +3.3 pts |
| 1 | Carroll County | 100 | 0 pts |
| 1 | Chaffee County | 100 | +35.8 pts |
| 1 | Columbiana County | 100 | 0 pts |
| 1 | Fredericksburg city | 100 | 0 pts |
| 1 | Fremont County | 100 | 0 pts |
| 1 | Grady County | 100 | 0 pts |
| 1 | Hopewell city | 100 | 0 pts |
| 1 | Kenai Peninsula Borough | 100 | 0 pts |
| 1 | Pitkin County | 100 | 0 pts |
| 1 | San Juan County | 100 | 0 pts |
| 1 | Winchester city | 100 | 0 pts |
| 15 | Denali Borough | 99.7 | 0 pts |
| 15 | Georgetown County | 99.7 | +0.7 pts |
| 17 | Putnam County | 99.4 | -0.6 pts |
| 17 | Yalobusha County | 99.4 | +1.3 pts |
| 19 | Alamosa County | 99.2 | +0.9 pts |
| 19 | Gilmer County | 99.2 | +2.7 pts |
| 21 | Cerro Gordo County | 99.1 | +0.2 pts |
| 21 | Delta County | 99.1 | +0.8 pts |
| 21 | Lincoln County | 99.1 | +2.6 pts |
| 21 | Los Alamos County | 99.1 | -0.9 pts |
| 25 | Custer County | 99 | -0.2 pts |
| 26 | Apache County | 98.9 | 0 pts |
| 26 | Ford County | 98.9 | +0.5 pts |
| 26 | Franklin County | 98.9 | +2.5 pts |
| 26 | Horry County | 98.9 | -1.1 pts |
| 26 | Meade County | 98.9 | +2.2 pts |
| 31 | Herkimer County | 98.7 | +1.6 pts |
| 32 | Ashland County | 98.6 | +3.1 pts |
| 32 | Liberty County | 98.6 | +1.2 pts |
| 34 | Jackson County | 98.3 | -0.8 pts |
| 34 | Kauai County | 98.3 | 0 pts |
| 34 | Mohave County | 98.3 | +4.7 pts |
| 34 | Prowers County | 98.3 | +0.3 pts |
| 34 | Sherman County | 98.3 | +15.5 pts |
| 34 | Socorro County | 98.3 | -0.7 pts |
| 40 | Wayne County | 98.2 | -1.8 pts |
| 41 | Muskogee County | 98.1 | -0.5 pts |
| 41 | Stutsman County | 98.1 | -0.3 pts |
| 43 | Lauderdale County | 98 | +2.2 pts |
| 44 | Elmore County | 97.8 | +6.3 pts |
| 45 | Franklin County | 97.7 | -2 pts |
| 45 | Prince Edward County | 97.7 | +1.7 pts |
| 47 | Windham County | 97.5 | +0.3 pts |
| 48 | Polk County | 97.4 | -1.2 pts |
| 48 | Routt County | 97.4 | 0 pts |
| 50 | Greenup County | 97.3 | +5.5 pts |
| 51 | Fauquier County | 97.1 | +4.6 pts |
| 52 | Luzerne County | 97 | +5.2 pts |
| 52 | Washington County | 97 | -1.4 pts |
| 54 | Carteret County | 96.8 | +2.6 pts |
| 55 | Chattooga County | 96.7 | +7 pts |
| 55 | Lake County | 96.7 | -0.8 pts |
| 55 | Merrimack County | 96.7 | +0.6 pts |
| 58 | Stafford County | 96.6 | +12.7 pts |
| 59 | Catron County | 96.5 | +0.2 pts |
| 59 | Macon County | 96.5 | +3.5 pts |
| 61 | Caddo County | 96.4 | -1.4 pts |
| 61 | Clark County | 96.4 | -2.5 pts |
| 61 | Lee County | 96.4 | +2.3 pts |
| 64 | Aiken County | 96.3 | +6.6 pts |
| 64 | Hughes County | 96.3 | -0.6 pts |
| 64 | Mille Lacs County | 96.3 | -0.4 pts |
| 64 | Saratoga County | 96.3 | +2.6 pts |
| 68 | Anderson County | 96.2 | +2.4 pts |
| 68 | Morgan County | 96.2 | +12 pts |
| 70 | DeKalb County | 96.1 | +2.1 pts |
| 70 | Flagler County | 96.1 | +0.5 pts |
| 70 | Oswego County | 96.1 | +3.9 pts |
| 73 | Tompkins County | 96 | +4.3 pts |
| 74 | Columbia County | 95.9 | +6.6 pts |
| 74 | Keweenaw County | 95.9 | -2.4 pts |
| 76 | Middlesex County | 95.8 | +1.6 pts |
| 77 | Sheridan County | 95.6 | -1 pts |
| 77 | St. James Parish | 95.6 | +0.8 pts |
| 79 | Baker County | 95.5 | +2.2 pts |
| 79 | Highlands County | 95.5 | -0.1 pts |
| 81 | Tucker County | 95.4 | +3.8 pts |
| 82 | Elk County | 95.3 | +2.5 pts |
| 82 | Hamilton County | 95.3 | -0.1 pts |
| 82 | Knox County | 95.3 | +0.8 pts |
| 82 | Lincoln County | 95.3 | -3.9 pts |
| 86 | Dutchess County | 95.2 | +3.4 pts |
| 87 | Greenbrier County | 95 | +3.7 pts |
| 87 | Kennebec County | 95 | +0.8 pts |
| 87 | Monmouth County | 95 | +8.6 pts |
| 87 | Osceola County | 95 | +1.6 pts |
| 87 | Sumter County | 95 | +6 pts |
| 92 | Choctaw County | 94.8 | |
| 92 | Jefferson County | 94.8 | +2.3 pts |
| 92 | Nye County | 94.8 | -0.6 pts |
| 92 | Thomas County | 94.8 | -4.3 pts |
| 96 | Hyde County | 94.7 | +4.9 pts |
| 96 | Martin County | 94.7 | +0.8 pts |
| 98 | Cook County | 94.6 | -2.6 pts |
| 99 | Big Horn County | 94.5 | -3.4 pts |
| 99 | Caswell County | 94.5 | +2.4 pts |
| 99 | Okaloosa County | 94.5 | 0 pts |
| 99 | Pointe Coupee Parish | 94.5 | -0.3 pts |
| 99 | Trigg County | 94.5 | +5.1 pts |
| 104 | Berkeley County | 94.4 | -0.5 pts |
| 104 | Luna County | 94.4 | +0.5 pts |
| 104 | Roosevelt County | 94.4 | -1.8 pts |
| 104 | Wexford County | 94.4 | +1.7 pts |
| 108 | Goodhue County | 94.3 | -0.1 pts |
| 108 | Wythe County | 94.3 | +2.5 pts |
| 110 | Claiborne County | 94.2 | +0.9 pts |
| 110 | Leavenworth County | 94.2 | +2.2 pts |
| 110 | Lycoming County | 94.2 | +2.7 pts |
| 110 | Monroe County | 94.2 | -2.2 pts |
| 110 | Scioto County | 94.2 | +6.5 pts |
| 110 | Somerset County | 94.2 | +3.4 pts |
| 110 | Tuscola County | 94.2 | +2 pts |
| 117 | Lincoln County | 94.1 | +11.6 pts |
| 117 | Marathon County | 94.1 | +2.4 pts |
| 117 | Morgan County | 94.1 | +3.4 pts |
| 117 | Putnam County | 94.1 | +5.1 pts |
| 117 | St. Lucie County | 94.1 | +0.2 pts |
| 122 | Bolivar County | 94 | +3 pts |
| 122 | Culberson County | 94 | -4.2 pts |
| 122 | Hunt County | 94 | -1.9 pts |
| 125 | Wayne County | 93.8 | +2.3 pts |
| 126 | Dukes County | 93.6 | -1 pts |
| 127 | Jo Daviess County | 93.5 | -1.1 pts |
| 128 | Adams County | 93.4 | +0.8 pts |
| 128 | Giles County | 93.4 | +1.9 pts |
| 130 | Boone County | 93.3 | +5.3 pts |
| 130 | Chaves County | 93.3 | -3.3 pts |
| 130 | Victoria County | 93.3 | -1 pts |
| 133 | Cherokee County | 93.2 | +0.3 pts |
| 133 | Grand County | 93.2 | +7 pts |
| 133 | Honolulu County | 93.2 | +3 pts |
| 133 | Manatee County | 93.2 | -0.5 pts |
| 133 | Rowan County | 93.2 | +6.3 pts |
| 133 | Taos County | 93.2 | -3.2 pts |
| 139 | Caroline County | 93.1 | +5.2 pts |
| 139 | Delaware County | 93.1 | +8.7 pts |
| 139 | Gregg County | 93.1 | +1.3 pts |
| 139 | St. John the Baptist Parish | 93.1 | -2 pts |
| 139 | Suffolk city | 93.1 | +2.4 pts |
| 144 | Bremer County | 92.9 | +0.9 pts |
| 144 | Huron County | 92.9 | +3.8 pts |
| 144 | Shelby County | 92.9 | +8.9 pts |
| 144 | Steuben County | 92.9 | +4.5 pts |
| 148 | Alexander County | 92.8 | +4.3 pts |
| 148 | Simpson County | 92.8 | +3.5 pts |
| 150 | Barnstable County | 92.7 | +0.4 pts |
| 150 | Darlington County | 92.7 | +1.4 pts |
| 150 | Huntington County | 92.7 | +6 pts |
| 153 | Callaway County | 92.6 | -0.9 pts |
| 153 | Dawson County | 92.6 | +4.1 pts |
| 153 | Newton County | 92.6 | +0.5 pts |
| 153 | Norfolk County | 92.6 | +3.3 pts |
| 153 | Rockbridge County | 92.6 | +2.1 pts |
| 158 | Wilson County | 92.4 | +9.7 pts |
| 159 | Norfolk city | 92.3 | -2.7 pts |
| 159 | Smith County | 92.3 | -1.7 pts |
| 161 | Jessamine County | 92.2 | +6.9 pts |
| 161 | Pike County | 92.2 | +6.7 pts |
| 161 | Potter County | 92.2 | -3.4 pts |
| 161 | Rockwall County | 92.2 | +0.3 pts |
| 161 | Vilas County | 92.2 | 0 pts |
| 166 | Hillsborough County | 92.1 | +3.6 pts |
| 167 | Ascension Parish | 92 | -0.3 pts |
| 167 | Niagara County | 92 | +2.5 pts |
| 169 | Cass County | 91.8 | +0.3 pts |
| 169 | Lake County | 91.8 | +2.3 pts |
| 169 | Lenoir County | 91.8 | +3.2 pts |
| 172 | Hendricks County | 91.7 | +11.9 pts |
| 172 | Washington County | 91.7 | +0.9 pts |
| 174 | Carter County | 91.6 | +3.1 pts |
| 174 | Clearfield County | 91.6 | +1.4 pts |
| 174 | Mayes County | 91.6 | +1.8 pts |
| 174 | St. Martin Parish | 91.6 | +1.8 pts |
| 174 | Williamson County | 91.6 | +1.8 pts |
| 179 | Carlton County | 91.5 | -1.1 pts |
| 179 | Fond du Lac County | 91.5 | +4.2 pts |
| 179 | Prince William County | 91.5 | +3.2 pts |
| 179 | Trego County | 91.5 | +0.2 pts |
| 183 | Elko County | 91.4 | -7.2 pts |
| 184 | Fayette County | 91.3 | +3.5 pts |
| 184 | Montrose County | 91.3 | -2 pts |
| 186 | Belmont County | 91.2 | +3.8 pts |
| 186 | Jackson County | 91.2 | +11.4 pts |
| 186 | Maui County | 91.2 | +2.7 pts |
| 189 | Manitowoc County | 91.1 | +6 pts |
| 189 | Pickens County | 91.1 | +8.9 pts |
| 189 | York County | 91.1 | +1.7 pts |
| 192 | Knox County | 91 | +3.8 pts |
| 192 | Knox County | 91 | +8.8 pts |
| 192 | Wabash County | 91 | +2 pts |
| 195 | Lawrence County | 90.9 | -0.9 pts |
| 195 | Paulding County | 90.9 | +48.9 pts |
| 195 | Person County | 90.9 | +1.2 pts |
| 198 | Avery County | 90.8 | +4.8 pts |
| 198 | Hood County | 90.8 | -2.1 pts |
| 198 | Parker County | 90.8 | -0.4 pts |
| 201 | Indian River County | 90.7 | -2.2 pts |
| 202 | Kitsap County | 90.6 | -6 pts |
| 203 | Carroll County | 90.5 | +9.7 pts |
| 203 | Indiana County | 90.5 | +3.2 pts |
| 203 | Kent County | 90.5 | +3.8 pts |
| 203 | Schoolcraft County | 90.5 | +1.9 pts |
| 203 | Taney County | 90.5 | +1.1 pts |
| 208 | Lake County | 90.4 | -4.4 pts |
| 208 | Pueblo County | 90.4 | -4.1 pts |
| 210 | Door County | 90.3 | +6.3 pts |
| 210 | Hanover County | 90.3 | +6.2 pts |
| 210 | Johnson County | 90.3 | +4 pts |
| 210 | Livingston County | 90.3 | +5.3 pts |
| 214 | Licking County | 90.2 | +9.8 pts |
| 215 | Custer County | 90.1 | +1.3 pts |
| 215 | Walworth County | 90.1 | +4.5 pts |
| 217 | Lake County | 90 | -7.5 pts |
| 217 | Platte County | 90 | +2.3 pts |
| 219 | Jefferson County | 89.9 | -6.7 pts |
| 219 | Knox County | 89.9 | -2.4 pts |
| 221 | Forest County | 89.8 | -3.1 pts |
| 222 | Pasco County | 89.7 | +0.1 pts |
| 223 | York County | 89.6 | -1.2 pts |
| 224 | Blaine County | 89.5 | +3.7 pts |
| 225 | Boone County | 89.4 | +10.4 pts |
| 225 | Boone County | 89.4 | -3.1 pts |
| 225 | Washington County | 89.4 | +1.1 pts |
| 228 | Bullitt County | 89.3 | +3.7 pts |
| 228 | Macoupin County | 89.3 | -0.4 pts |
| 230 | Ward County | 89.2 | |
| 231 | Bryan County | 89.1 | |
| 232 | Columbia County | 89 | +0.6 pts |
| 232 | Hancock County | 89 | -0.1 pts |
| 232 | Jasper County | 89 | +0.6 pts |
| 232 | Skagit County | 89 | -1.4 pts |
| 236 | Kewaunee County | 88.9 | +2.7 pts |
| 236 | Weston County | 88.9 | +0.9 pts |
| 238 | Brown County | 88.8 | -0.3 pts |
| 238 | Rockingham County | 88.8 | +1.4 pts |
| 240 | Clinton County | 88.7 | +9.7 pts |
| 240 | Creek County | 88.7 | -1.4 pts |
| 242 | Hancock County | 88.6 | +6 pts |
| 242 | Mason County | 88.6 | +1.4 pts |
| 242 | Wood County | 88.6 | +9.2 pts |
| 245 | Adams County | 88.5 | -9.5 pts |
| 245 | Becker County | 88.5 | -1.3 pts |
| 245 | Benzie County | 88.5 | +2.6 pts |
| 245 | Billings County | 88.5 | -7.9 pts |
| 245 | Brown County | 88.5 | +1.1 pts |
| 250 | Columbia County | 88.4 | -8.7 pts |
Other periods
About this ranking
Days with a daily Air Quality Index of 0 to 50 (good) as a percentage of the days of the year with an AQI in a US county. Calculated by Invokely from the day counts in the EPA AirData annual summaries; both counts are stored with each value.
United States counties with air quality monitors only, about 1,000 of some 3,100 in recent years; a county without monitors has no value. The number of days with an AQI differs between counties because some monitors run only in the ozone season.
Every value in the ranking comes from the same publisher and the same period, so the counties are compared on one definition. 492 counties with data in other periods have no value for 2017 and are left out rather than filled from another source. Equal values share a rank.
How to cite
U.S. Environmental Protection Agency, Air Quality System, AirData. EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Retrieved 2026-10-12.
Citation styles
APA 7
U.S. Environmental Protection Agency. (2026). EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts (US counties by share of days with good air quality (US EPA AQI), 2017) [Data set]. Retrieved October 12, 2026, from https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual
MLA 9
EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts, US counties by share of days with good air quality (US EPA AQI), 2017. U.S. Environmental Protection Agency, 13 July 2026, https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Invokely, https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017. Accessed 12 Oct. 2026.
Chicago (author-date)
U.S. Environmental Protection Agency. 2026. EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts. US counties by share of days with good air quality (US EPA AQI), 2017. Dataset. Accessed October 12, 2026. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Also distributed by Invokely, https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017.
Harvard
U.S. Environmental Protection Agency (2026) EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts, US counties by share of days with good air quality (US EPA AQI), 2017 [Dataset]. Available at: https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual, via Invokely: https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017 (Accessed: 12 October 2026).
BibTeX
@misc{environmental_us_counties_by_share_2017,
author = {{U.S. Environmental Protection Agency}},
title = {{EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts: US counties by share of days with good air quality (US EPA AQI), 2017}},
year = {2026},
howpublished = {Data set},
url = {https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual},
urldate = {2026-10-12},
note = {Accessed via Invokely, https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017. Publisher attribution: U.S. Environmental Protection Agency, Air Quality System, AirData. EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts. https://aqs.epa.gov/aqsweb/airdata/download\_files.html\#Annual. Retrieved 2026-10-12.},
}
RIS
TY - DATA
AU - U.S. Environmental Protection Agency
TI - EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts: US counties by share of days with good air quality (US EPA AQI), 2017
PY - 2026
DA - 2026/07/13
PB - U.S. Environmental Protection Agency
DB - Invokely
UR - https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual
L2 - https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017
Y2 - 2026/10/12
N1 - Accessed via Invokely, https://invokely.ai/rankings/good-air-quality-days-share/us-counties?period=2017.
N1 - Publisher attribution: U.S. Environmental Protection Agency, Air Quality System, AirData. EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Retrieved 2026-10-12.
ER -
Use this data in your AI agent
Invokely serves this figure to AI assistants through MCP and to code through a REST API, with the source and citation attached. Ask your assistant:
Rank US counties by share of days with good air quality (US EPA AQI) using official data, and cite the source.
rank_places {"indicator":"aqi_good_days_share","level":"province","within":"United States","limit":10}
GET https://invokely.ai/api/v1/rank?indicator=aqi_good_days_share&level=province&within=United%20States&limit=10
Questions
Which county has the highest share of days with good air quality (US EPA AQI)?
Abbeville County, with 100% in 2017, according to EPA.
Which county has the lowest share of days with good air quality (US EPA AQI)?
San Bernardino County, with 2.5% in 2017.
Where does this ranking come from?
Every value comes from one source and one period, so the places are comparable: U.S. Environmental Protection Agency, EPA AirData annual AQI by county: good days as a share of days with an AQI, calculated with stored counts. Retrieved 2026-10-12. 492 counties have no value for 2017 and are not ranked.