US counties by median Air Quality Index (US EPA), 2019

San Bernardino County had the highest median Air Quality Index (US EPA) of 1000 counties in 2019, at 81. Harrison County had the lowest, at 2. The median was 40. Source: the U.S. Environmental Protection Agency.

Median401000 counties

Top 40 counties, 2019

San Bernardino County: 81 indexSan Bernardino County81Riverside County: 77 indexRiverside County77Los Angeles County: 72 indexLos Angeles County72Kern County: 69 indexKern County69Maricopa County: 67 indexMaricopa County67Tulare County: 67 indexTulare County67San Diego County: 66 indexSan Diego County66Fresno County: 63 indexFresno County63Pinal County: 63 indexPinal County63Imperial County: 61 indexImperial County61Allegheny County: 59 indexAllegheny County59Clark County: 58 indexClark County58Cook County: 58 indexCook County58Jefferson County: 58 indexJefferson County58Kings County: 58 indexKings County58Marion County: 58 indexMarion County58Salt Lake County: 58 indexSalt Lake County58Wayne County: 58 indexWayne County58El Paso County: 57 indexEl Paso County57Hamilton County: 57 indexHamilton County57Montgomery County: 57 indexMontgomery County57Cuyahoga County: 56 indexCuyahoga County56Harris County: 56 indexHarris County56Bernalillo County: 55 indexBernalillo County55Bexar County: 55 indexBexar County55Fulton County: 55 indexFulton County55Madison County: 55 indexMadison County55Denver County: 54 indexDenver County54Doña Ana County: 54 indexDoña Ana County54Floyd County: 54 indexFloyd County54Jefferson County: 54 indexJefferson County54St. Louis city: 54 indexSt. Louis city54Uintah County: 54 indexUintah County54Bergen County: 53 indexBergen County53Calcasieu Parish: 53 indexCalcasieu Parish53Clark County: 53 indexClark County53Franklin County: 53 indexFranklin County53Henderson County: 53 indexHenderson County53Jefferson County: 53 indexJefferson County53Orange County: 53 indexOrange County53
index. Source: EPA, EPA AirData annual AQI by county: median daily AQI. Retrieved 2026-10-12.

Full ranking

RankCounties2019
index
Change on 2018
1San Bernardino County81-8
2Riverside County77-10
3Los Angeles County72-6
4Kern County69-15
5Maricopa County67-4
5Tulare County67-12
7San Diego County66-1
8Fresno County63-12
8Pinal County63-4
10Imperial County61-3
11Allegheny County59+1
12Clark County58-5
12Cook County58-1
12Jefferson County58+2
12Kings County58-12
12Marion County58+3
12Salt Lake County58-3
12Wayne County58+1
19El Paso County57-2
19Hamilton County570
19Montgomery County570
22Cuyahoga County56+3
22Harris County560
24Bernalillo County55-2
24Bexar County55+6
24Fulton County55+3
24Madison County55+2
28Denver County540
28Doña Ana County54-4
28Floyd County54+2
28Jefferson County540
28St. Louis city54-1
28Uintah County54+3
34Bergen County530
34Calcasieu Parish530
34Clark County53+1
34Franklin County53+6
34Henderson County53+4
34Jefferson County53-2
34Orange County53-1
34Pulaski County53+1
34Wake County53+1
34Weld County53-1
44Cameron County52+1
44Clarke County52+6
44Cleveland County520
44Dallas County520
44Davidson County520
44DeKalb County52+3
44Dougherty County52+13
44Gwinnett County520
44Hinds County520
44Lake County52-2
44Lancaster County520
44Madera County52-6
44McHenry County52+6
44Mecklenburg County52+1
44Missoula County52-2
44Mobile County52+8
44Montgomery County52+3
44Oklahoma County520
44Richmond County52+5
44Sacramento County52-6
44Scott County52-4
44Shelby County52+6
44St. Bernard Parish52+3
44Stanislaus County52-7
44Stark County52+1
44Travis County520
44Union County520
44Vigo County52+2
72Bowie County51+4
72Butte County51-8
72Camden County51-1
72Cumberland County51+3
72Delaware County51-5
72Duval County510
72Forsyth County51+1
72Hamilton County51+3
72Houston County51+5
72Lafourche Parish51+12
72Macon County51-1
72Merced County51-5
72Tarrant County51-2
72Ventura County51-6
72Washington County51-1
72Will County51+2
72Yakima County51-1
89Adams County50-4
89Alameda County50-7
89Beaver County50-2
89Boulder County50+1
89Chaffee County50-8
89East Baton Rouge Parish50-1
89Garland County50+8
89Hidalgo County50-1
89Larimer County50-3
89Mariposa County50-3
89McCracken County500
89Park County50-1
89Tulsa County50-6
89Webb County50+6
103Allen County49-1
103Benewah County49-4
103Bolivar County49+2
103Centre County49+5
103Clinton County49-3
103District of Columbia49-3
103Fairfax County49+1
103Hall County49+8
103Hennepin County49-2
103Hillsborough County49-2
103Jackson County49+5
103Jefferson County49-4
103Madison County490
103McLean County49-3
103Nueces County49+5
103Philadelphia County49-5
103Pima County49-3
103Placer County49+3
103San Juan County49+2
103San Luis Obispo County49-4
103St. Louis County49-2
103Walker County49+2
103Winnebago County49+13
126Clayton County48+4
126Duchesne County48+1
126DuPage County48-5
126Garfield County480
126Gila County48+1
126King County48+2
126Lea County48-2
126Lincoln County48-7
126Livingston Parish48+2
126Preble County48-2
126Russell County480
126Santa Clara County48-5
126Summit County480
126Sutter County48-10
126Utah County48-2
126Washington County480
126Washoe County48-3
143Albany County47-1
143Arapahoe County47+1
143Benton County47n/a
143Broward County47-2
143Clear Creek County47-4
143Comanche County47+3
143Crittenden County470
143Cumberland County47+6
143Davidson County47-2
143Douglas County47-2
143Durham County47-1
143Eddy County47-1
143Essex County47+4
143Hamilton County470
143Hamilton County47+2
143Harrison County47+2
143Holmes County47+4
143Hudson County47-2
143Inyo County47-2
143Kay County47-4
143Lowndes County47-2
143Madison County47-1
143Mesa County47-2
143Milwaukee County47-2
143Muscogee County47+8
143New Castle County47-1
143Pinellas County47+1
143Rio Blanco County470
143San Joaquin County47-12
143St. Clair County47-5
143Warren County47-1
143West Baton Rouge Parish47+1
143York County47+8
143Yuma County47-2
177Baltimore city46-5
177Baltimore County460
177Bibb County46+4
177Blair County46+4
177Blount County46-2
177Bronx County46+2
177Cache County46-2
177Carbon County460
177Carter County46+5
177Chatham County46+2
177Chester County46+2
177Cochise County46+1
177Columbia County46+5
177Daviess County460
177DeSoto County46-3
177Edmonson County46+3
177El Paso County46-1
177Fayette County46-2
177Forrest County46-3
177Greenville County46+2
177Gunnison County46-1
177Jackson County46-1
177Jefferson County460
177Jersey County46-1
177Johnson County46-4
177Johnston County46+2
177Knox County46-4
177Lafayette Parish46-1
177Lebanon County46-1
177Leon County460
177Mahoning County46+3
177Marshall County46-6
177Montezuma County46+2
177New York County46-5
177Pittsburg County460
177Providence County46-1
177St. Joseph County46-5
177Sublette County46-1
177Suffolk County46-7
177Sweetwater County46-2
177Union County46-3
177Vanderburgh County46-2
219Adams County45+1
219Anne Arundel County45+3
219Bell County45+9
219Cambria County45+1
219Champaign County45-2
219Clark County45+8
219Coconino County450
219Davis County45-4
219Fremont County45-1
219Gilpin County45n/a
219Grand County45-2
219Harford County45+3
219Haywood County45+1
219Jackson County45+4
219Mercer County45+2
219Morgan County45+1
219Neosho County45+5
219Nevada County450
219Nowata County45-3
219Ottawa County45-7
219Prince George's County45+3
219Queens County450
219Rock Island County45-1
219San Miguel County45-1
219Sangamon County45-4
219Santa Barbara County45-6
219Shawnee County45-5
219Solano County45-5
219Spartanburg County45+1
219Union County45+1
219Washington County45+1
219Waukesha County45-1

Showing the top 250 of 1000. The Excel download has every row.

Other periods

About this ranking

Median of the daily Air Quality Index (AQI) values of a US county over the days of the year with an AQI, from the EPA AirData annual summaries. The daily county AQI is the highest AQI among the monitors and pollutants reported that day (ozone, PM2.5, PM10, carbon monoxide and nitrogen dioxide). Lower is cleaner: 0 to 50 is good, 51 to 100 moderate and above 100 unhealthy for sensitive groups.

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. 498 counties with data in other periods have no value for 2019 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: median daily AQI. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Retrieved 2026-10-12.

Citation styles

The publisher is the author. Invokely is named only as the place the figures were read, where a style asks for it.

APA 7

U.S. Environmental Protection Agency. (2026). EPA AirData annual AQI by county: median daily AQI (US counties by median Air Quality Index (US EPA), 2019) [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: median daily AQI, US counties by median Air Quality Index (US EPA), 2019. U.S. Environmental Protection Agency, 13 July 2026, https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Invokely, https://invokely.ai/rankings/median-air-quality-index/us-counties. Accessed 12 Oct. 2026.

Chicago (author-date)

U.S. Environmental Protection Agency. 2026. EPA AirData annual AQI by county: median daily AQI. US counties by median Air Quality Index (US EPA), 2019. Dataset. Accessed October 12, 2026. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Also distributed by Invokely, https://invokely.ai/rankings/median-air-quality-index/us-counties.

Harvard

U.S. Environmental Protection Agency (2026) EPA AirData annual AQI by county: median daily AQI, US counties by median Air Quality Index (US EPA), 2019 [Dataset]. Available at: https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual, via Invokely: https://invokely.ai/rankings/median-air-quality-index/us-counties (Accessed: 12 October 2026).

BibTeX
@misc{environmental_us_counties_by_median_2019,
  author = {{U.S. Environmental Protection Agency}},
  title = {{EPA AirData annual AQI by county: median daily AQI: US counties by median Air Quality Index (US EPA), 2019}},
  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/median-air-quality-index/us-counties. Publisher attribution: U.S. Environmental Protection Agency, Air Quality System, AirData. EPA AirData annual AQI by county: median daily AQI. 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: median daily AQI: US counties by median Air Quality Index (US EPA), 2019
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/median-air-quality-index/us-counties
Y2  - 2026/10/12
N1  - Accessed via Invokely, https://invokely.ai/rankings/median-air-quality-index/us-counties.
N1  - Publisher attribution: U.S. Environmental Protection Agency, Air Quality System, AirData. EPA AirData annual AQI by county: median daily AQI. https://aqs.epa.gov/aqsweb/airdata/download_files.html#Annual. Retrieved 2026-10-12.
ER  - 
Embed this chart

Paste this code into a web page or a blog post. The chart shows the latest figures as they are published, with the source and a link back to this page.

Sites that read oEmbed links, such as WordPress, can show the chart when you paste the link to this page.

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 median Air Quality Index (US EPA) using official data, and cite the source.
rank_places {"indicator":"aqi_median","level":"province","within":"United States","limit":10}
GET https://invokely.ai/api/v1/rank?indicator=aqi_median&level=province&within=United%20States&limit=10

Connect Claude, ChatGPT or Cursor in one step. The trial answers 25 calls a day without an account.

Questions

Which county has the highest median Air Quality Index (US EPA)?

San Bernardino County, with 81 in 2019, according to the U.S. Environmental Protection Agency.

Which county has the lowest median Air Quality Index (US EPA)?

Harrison County, with 2 in 2019.

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: median daily AQI. Retrieved 2026-10-12. 498 counties have no value for 2019 and are not ranked.

Median Air Quality Index (US EPA): other rankings

US counties: more rankings