EnviroNearby

Contra Costa County, California air quality history

Daily Air Quality Index summaries from EPA monitors in Contra Costa, California, 1980–2024.

54%
Good days in 2024
48
Median daily AQI, 2024
0
Days above 100 in 2024
363
Days with an AQI in 2024 (of 366)

In 2024, EPA reported a daily Air Quality Index (AQI) for Contra Costa, California on 363 days. 195 of those days (54%) were in the Good range, and the median daily AQI was 48. That median is about the same as the typical monitored county in California (median 46.5 across 52 counties), and higher than the typical monitored U.S. county (41). The main pollutant was fine particles (PM2.5) on 351 days. Across the years with fuller monitoring, the share of Good days fell: an average of 66% in 1980–1982 versus 50% in 2022–2024.

The most recent year with data for this county is 2024; EPA's files for 2025–2025 contain no row for it, which usually means its monitors stopped reporting.

How the days broke down each year

Each bar is one year. The colored segments show the share of monitored days that fell in each AQI category.

Share of monitored days in each AQI category, by year0%25%50%75%100%1980: Good 229 of 366 days1980: Moderate 105 of 366 days1980: Unhealthy for Sensitive Groups 24 of 366 days1980: Unhealthy 7 of 366 days1980: Very Unhealthy 1 of 366 days19801981: Good 248 of 365 days1981: Moderate 88 of 365 days1981: Unhealthy for Sensitive Groups 21 of 365 days1981: Unhealthy 8 of 365 days1982: Good 242 of 365 days1982: Moderate 102 of 365 days1982: Unhealthy for Sensitive Groups 14 of 365 days1982: Unhealthy 6 of 365 days1982: Very Unhealthy 1 of 365 days1983: Good 262 of 365 days1983: Moderate 80 of 365 days1983: Unhealthy for Sensitive Groups 14 of 365 days1983: Unhealthy 9 of 365 days1984: Good 239 of 366 days1984: Moderate 94 of 366 days1984: Unhealthy for Sensitive Groups 23 of 366 days1984: Unhealthy 9 of 366 days1984: Very Unhealthy 1 of 366 days1985: Good 251 of 365 days1985: Moderate 97 of 365 days1985: Unhealthy for Sensitive Groups 12 of 365 days1985: Unhealthy 5 of 365 days19851986: Good 241 of 365 days1986: Moderate 103 of 365 days1986: Unhealthy for Sensitive Groups 18 of 365 days1986: Unhealthy 3 of 365 days1987: Good 236 of 365 days1987: Moderate 90 of 365 days1987: Unhealthy for Sensitive Groups 26 of 365 days1987: Unhealthy 13 of 365 days1988: Good 241 of 366 days1988: Moderate 104 of 366 days1988: Unhealthy for Sensitive Groups 16 of 366 days1988: Unhealthy 5 of 366 days1989: Good 210 of 365 days1989: Moderate 136 of 365 days1989: Unhealthy for Sensitive Groups 13 of 365 days1989: Unhealthy 6 of 365 days1990: Good 261 of 365 days1990: Moderate 93 of 365 days1990: Unhealthy for Sensitive Groups 6 of 365 days1990: Unhealthy 5 of 365 days19901991: Good 262 of 365 days1991: Moderate 89 of 365 days1991: Unhealthy for Sensitive Groups 12 of 365 days1991: Unhealthy 2 of 365 days1992: Good 288 of 366 days1992: Moderate 68 of 366 days1992: Unhealthy for Sensitive Groups 8 of 366 days1992: Unhealthy 2 of 366 days1993: Good 274 of 365 days1993: Moderate 75 of 365 days1993: Unhealthy for Sensitive Groups 15 of 365 days1993: Unhealthy 1 of 365 days1994: Good 298 of 365 days1994: Moderate 57 of 365 days1994: Unhealthy for Sensitive Groups 8 of 365 days1994: Unhealthy 2 of 365 days1995: Good 290 of 365 days1995: Moderate 57 of 365 days1995: Unhealthy for Sensitive Groups 12 of 365 days1995: Unhealthy 4 of 365 days1995: Very Unhealthy 2 of 365 days19951996: Good 285 of 366 days1996: Moderate 59 of 366 days1996: Unhealthy for Sensitive Groups 17 of 366 days1996: Unhealthy 5 of 366 days1997: Good 335 of 365 days1997: Moderate 25 of 365 days1997: Unhealthy for Sensitive Groups 5 of 365 days1998: Good 317 of 365 days1998: Moderate 28 of 365 days1998: Unhealthy for Sensitive Groups 12 of 365 days1998: Unhealthy 7 of 365 days1998: Very Unhealthy 1 of 365 days1999: Good 253 of 365 days1999: Moderate 87 of 365 days1999: Unhealthy for Sensitive Groups 17 of 365 days1999: Unhealthy 6 of 365 days1999: Very Unhealthy 2 of 365 days2000: Good 212 of 366 days2000: Moderate 131 of 366 days2000: Unhealthy for Sensitive Groups 22 of 366 days2000: Unhealthy 1 of 366 days20002001: Good 221 of 365 days2001: Moderate 118 of 365 days2001: Unhealthy for Sensitive Groups 20 of 365 days2001: Unhealthy 6 of 365 days2002: Good 207 of 365 days2002: Moderate 124 of 365 days2002: Unhealthy for Sensitive Groups 23 of 365 days2002: Unhealthy 11 of 365 days2003: Good 223 of 365 days2003: Moderate 125 of 365 days2003: Unhealthy for Sensitive Groups 17 of 365 days2004: Good 253 of 366 days2004: Moderate 95 of 366 days2004: Unhealthy for Sensitive Groups 17 of 366 days2004: Unhealthy 1 of 366 days2005: Good 259 of 365 days2005: Moderate 99 of 365 days2005: Unhealthy for Sensitive Groups 7 of 365 days20052006: Good 236 of 365 days2006: Moderate 109 of 365 days2006: Unhealthy for Sensitive Groups 16 of 365 days2006: Unhealthy 4 of 365 days2007: Good 260 of 365 days2007: Moderate 94 of 365 days2007: Unhealthy for Sensitive Groups 11 of 365 days2008: Good 250 of 366 days2008: Moderate 102 of 366 days2008: Unhealthy for Sensitive Groups 12 of 366 days2008: Unhealthy 2 of 366 days2009: Good 244 of 365 days2009: Moderate 114 of 365 days2009: Unhealthy for Sensitive Groups 6 of 365 days2009: Unhealthy 1 of 365 days2010: Good 288 of 365 days2010: Moderate 68 of 365 days2010: Unhealthy for Sensitive Groups 8 of 365 days2010: Unhealthy 1 of 365 days20102011: Good 264 of 365 days2011: Moderate 94 of 365 days2011: Unhealthy for Sensitive Groups 7 of 365 days2012: Good 277 of 366 days2012: Moderate 85 of 366 days2012: Unhealthy for Sensitive Groups 3 of 366 days2012: Unhealthy 1 of 366 days2013: Good 117 of 365 days2013: Moderate 245 of 365 days2013: Unhealthy for Sensitive Groups 3 of 365 days2014: Good 150 of 365 days2014: Moderate 210 of 365 days2014: Unhealthy for Sensitive Groups 5 of 365 days2015: Good 193 of 365 days2015: Moderate 164 of 365 days2015: Unhealthy for Sensitive Groups 8 of 365 days20152016: Good 210 of 366 days2016: Moderate 153 of 366 days2016: Unhealthy for Sensitive Groups 3 of 366 days2017: Good 131 of 365 days2017: Moderate 222 of 365 days2017: Unhealthy for Sensitive Groups 8 of 365 days2017: Unhealthy 4 of 365 days2018: Good 111 of 365 days2018: Moderate 236 of 365 days2018: Unhealthy for Sensitive Groups 7 of 365 days2018: Unhealthy 8 of 365 days2018: Very Unhealthy 3 of 365 days2019: Good 238 of 365 days2019: Moderate 123 of 365 days2019: Unhealthy for Sensitive Groups 4 of 365 days2020: Good 192 of 366 days2020: Moderate 156 of 366 days2020: Unhealthy for Sensitive Groups 7 of 366 days2020: Unhealthy 10 of 366 days2020: Very Unhealthy 1 of 366 days20202021: Good 195 of 365 days2021: Moderate 165 of 365 days2021: Unhealthy for Sensitive Groups 5 of 365 days2022: Good 175 of 365 days2022: Moderate 188 of 365 days2022: Unhealthy for Sensitive Groups 2 of 365 days2023: Good 173 of 365 days2023: Moderate 190 of 365 days2023: Unhealthy for Sensitive Groups 2 of 365 days2024: Good 195 of 363 days2024: Moderate 168 of 363 days2024
  • Good
  • Moderate
  • Unhealthy for Sensitive Groups
  • Unhealthy
  • Very Unhealthy
  • Hazardous

Typical and high-end AQI over time

The median is the middle day of the year. The 90th percentile is the level that only the highest 10% of days exceeded.

Median and 90th-percentile daily AQI, by year0501001501980: 90th percentile AQI 1001981: 90th percentile AQI 901982: 90th percentile AQI 791983: 90th percentile AQI 871984: 90th percentile AQI 1001985: 90th percentile AQI 791986: 90th percentile AQI 871987: 90th percentile AQI 1011988: 90th percentile AQI 891989: 90th percentile AQI 811990: 90th percentile AQI 711991: 90th percentile AQI 791992: 90th percentile AQI 611993: 90th percentile AQI 711994: 90th percentile AQI 671995: 90th percentile AQI 671996: 90th percentile AQI 741997: 90th percentile AQI 491998: 90th percentile AQI 671999: 90th percentile AQI 862000: 90th percentile AQI 902001: 90th percentile AQI 862002: 90th percentile AQI 962003: 90th percentile AQI 842004: 90th percentile AQI 892005: 90th percentile AQI 712006: 90th percentile AQI 852007: 90th percentile AQI 712008: 90th percentile AQI 772009: 90th percentile AQI 792010: 90th percentile AQI 672011: 90th percentile AQI 722012: 90th percentile AQI 672013: 90th percentile AQI 732014: 90th percentile AQI 712015: 90th percentile AQI 702016: 90th percentile AQI 632017: 90th percentile AQI 762018: 90th percentile AQI 742019: 90th percentile AQI 642020: 90th percentile AQI 752021: 90th percentile AQI 692022: 90th percentile AQI 672023: 90th percentile AQI 642024: 90th percentile AQI 631980: Median AQI 471981: Median AQI 441982: Median AQI 461983: Median AQI 441984: Median AQI 431985: Median AQI 461986: Median AQI 471987: Median AQI 471988: Median AQI 471989: Median AQI 471990: Median AQI 441991: Median AQI 441992: Median AQI 401993: Median AQI 431994: Median AQI 411995: Median AQI 391996: Median AQI 401997: Median AQI 371998: Median AQI 371999: Median AQI 432000: Median AQI 472001: Median AQI 462002: Median AQI 472003: Median AQI 452004: Median AQI 412005: Median AQI 412006: Median AQI 442007: Median AQI 422008: Median AQI 442009: Median AQI 422010: Median AQI 402011: Median AQI 412012: Median AQI 412013: Median AQI 552014: Median AQI 532015: Median AQI 482016: Median AQI 462017: Median AQI 542018: Median AQI 552019: Median AQI 432020: Median AQI 492021: Median AQI 472022: Median AQI 512023: Median AQI 512024: Median AQI 481980198519901995200020052010201520202024
  • Median daily AQI
  • 90th-percentile daily AQI

Main pollutant by day, 2024

On each monitored day, the AQI reflects whichever measured pollutant had the highest index. This counts how many days each pollutant set the AQI. A pollutant that was not measured here cannot appear.

PollutantDays as main pollutantShare of monitored days
Fine particles (PM2.5)35197%
Ozone123%

Year-by-year data

Annual AQI summary by year
YearDays with AQIGoodModerateUnhealthy for Sensitive GroupsUnhealthyVery UnhealthyHazardousMedian AQI90th pct.Max AQIMain pollutant
20243631951680000486399PM2.5
202336517319020005164110PM2.5
202236517518820005167129PM2.5
202136519516550004769150PM2.5
2020366192156710104975221PM2.5
201936523812340004364129PM2.5
201836511123678305574270PM2.5
201736513122284005476175PM2.5
201636621015330004663143PM2.5
201536519316480004870147PM2.5
201436515021050005371133PM2.5
201336511724530005573115PM2.5
20123662778531004167154Ozone
20113652649470004172131Ozone
20103652886881004067154Ozone
200936524411461004279172Ozone
2008366250102122004477161Ozone
200736526094110004271136Ozone
2006365236109164004485169Ozone
20053652599970004171134Ozone
200436625395171004189164Ozone
2003365223125170004584150Ozone
20023652071242311004796177Ozone
2001365221118206004686192Ozone
2000366212131221004790172Ozone
199936525387176204386218Ozone
199836531728127103767204Ozone
19973653352550003749136Ozone
199636628559175004074187Ozone
199536529057124203967209Ozone
19943652985782004167179Ozone
199336527475151004371177Ozone
19923662886882004061166Ozone
199136526289122004479156Ozone
19903652619365004471200Ozone
1989365210136136004781179Ozone
1988366241104165004789174Ozone
19873652369026130047101200Ozone
1986365241103183004787166Ozone
198536525197125004679195NO2
1984366239942391043100212NO2
198336526280149004487190Ozone
1982365242102146104679203NO2
198136524888218004490179Ozone
19803662291052471047100219NO2

What this data can and can’t tell you

It is a county-level summary. EPA reports one AQI per day for the county, based on the monitors operating there. Air at a particular street, school or home can differ, especially near roads, industry or wildfire smoke.

It is not a health assessment. The AQI is EPA’s scale for communicating daily air quality. A county’s history can’t tell you what the health risk is for any particular person. For daily conditions and health guidance, see AirNow.

Rules change over time. EPA has revised AQI breakpoints, most recently for fine particles in 2024, so some year-to-year change can reflect the scale rather than the air.

Counties in California with a similar median AQI in 2024

All monitored counties in California

Source: U.S. EPA AirData, “Annual AQI by County” files for 1980–2024 (EPA download page). EPA file dates: 2026-06-26. Imported into EnviroNearby November 5, 2026. How we use this data · Report a problem