California Air Quality
EPA monitor data through 2025 · Updated August 13, 2026 · Methods
In 2025, California recorded 195 days above an Air Quality Index of 100, the level at which EPA begins warning sensitive groups, out of 365 days with monitoring data. Most of those bad days were driven by ozone. Under the AQI rules that applied before 2013, the same air would have scored 147 days. Since 2000, unhealthy days are 47% lower on a consistent definition.
How to read a statewide figure. The Air Quality Index describes one place at one time. A statewide number is the worst monitor anywhere in the state on each day, so it answers “was the air unhealthy somewhere in California?” — not “what did a typical resident breathe?” In a large state with many monitors it will read high even if most of the state was clean. EPA publishes the AQI for metropolitan areas rather than states for exactly this reason. For what people actually breathed, use the metro pages below.
Unhealthy days by year, scored two ways
EPA changed what an AQI of 100 means in 2013 and again in 2015, so a count published before those changes is not comparable to one published after. Each panel below applies a single fixed rulebook to every year, so each is internally consistent. Why this matters.
Scored by today's rules
Scored by the pre-2013 rules
What 2025 looked like
| Air quality category | Days | Share of monitored days |
|---|---|---|
| Good | 1 | 0% |
| Moderate | 169 | 46% |
| Unhealthy for sensitive groups | 117 | 32% |
| Unhealthy or worse | 78 | 21% |
Median AQI 102 · 90th-percentile AQI 169 · worst day 6180. Scored under current rules.
What drove the unhealthy days
Of the 195 days above 100 in 2025, 114 were driven by ozone and 54 by fine particles, with 27 from another pollutant. The two behave differently. Ozone peaks on hot sunny afternoons; fine particles now spike mainly with wildfire smoke. In the western United States, ozone is a different problem: the floor is rising, with even the cleanest summer days at high elevation now near 40 ppb, and bad years track wildfire seasons. Domestic emission cuts have less room to work against that.
The unhealthy days in 2025
Every day the index passed 100, what it reached, and which pollutant drove it. 48 of these 195 would not have counted as unhealthy under the pre-2013 rules.
| Date | Peak AQI | Driven by | Pre-2013 score |
|---|---|---|---|
| Jan 1 | 166 | Fine particles | 157 |
| Jan 2 | 132 | Fine particles | 116 |
| Jan 3 | 101 | Fine particles | 91 (not unhealthy) |
| Jan 4 | 136 | Fine particles | 119 |
| Jan 7 | 365 | Coarse particles | 374 |
| Jan 8 | 426 | Coarse particles | 433 |
| Jan 9 | 164 | Fine particles | 156 |
| Jan 10 | 163 | Fine particles | 155 |
| Jan 17 | 111 | Fine particles | 98 (not unhealthy) |
| Jan 18 | 109 | Fine particles | 97 (not unhealthy) |
| Jan 19 | 103 | Fine particles | 92 (not unhealthy) |
| Jan 20 | 115 | Coarse particles | 115 |
| Jan 22 | 125 | Fine particles | 110 |
| Jan 23 | 105 | Fine particles | 93 (not unhealthy) |
| Jan 24 | 102 | Fine particles | 91 (not unhealthy) |
| Jan 25 | 135 | Fine particles | 119 |
| Jan 30 | 110 | Fine particles | 97 (not unhealthy) |
| Jan 31 | 107 | Fine particles | 95 (not unhealthy) |
| Feb 1 | 112 | Fine particles | 99 (not unhealthy) |
| Feb 2 | 109 | Fine particles | 97 (not unhealthy) |
| Feb 11 | 185 | Coarse particles | 185 |
| Mar 1 | 174 | Coarse particles | 174 |
| Mar 2 | 112 | Coarse particles | 112 |
| Mar 6 | 142 | Coarse particles | 142 |
| Mar 12 | 115 | Coarse particles | 115 |
| Mar 22 | 101 | Ozone | 87 (not unhealthy) |
| Mar 26 | 120 | Coarse particles | 120 |
| Mar 27 | 127 | Coarse particles | 127 |
| Mar 30 | 114 | Coarse particles | 114 |
| Apr 1 | 171 | Coarse particles | 171 |
| Apr 8 | 122 | Ozone | 104 |
| Apr 9 | 136 | Ozone | 114 |
| Apr 10 | 154 | Ozone | 129 |
| Apr 11 | 143 | Ozone | 119 |
| Apr 16 | 709 | Coarse particles | 688 |
| Apr 17 | 112 | Coarse particles | 112 |
| Apr 18 | 136 | Coarse particles | 136 |
| Apr 20 | 101 | Ozone | 87 (not unhealthy) |
| Apr 21 | 101 | Ozone | 87 (not unhealthy) |
| Apr 22 | 101 | Ozone | 87 (not unhealthy) |
| Apr 25 | 188 | Coarse particles | 188 |
| May 2 | 101 | Ozone | 87 (not unhealthy) |
| May 4 | 116 | Coarse particles | 116 |
| May 8 | 129 | Ozone | 109 |
| May 9 | 154 | Ozone | 129 |
| May 10 | 159 | Ozone | 135 |
| May 11 | 136 | Ozone | 114 |
| May 13 | 187 | Coarse particles | 187 |
| May 17 | 190 | Coarse particles | 190 |
| May 19 | 108 | Ozone | 93 (not unhealthy) |
| May 20 | 156 | Ozone | 132 |
| May 21 | 169 | Ozone | 145 |
| May 22 | 166 | Ozone | 142 |
| May 23 | 126 | Ozone | 106 |
| May 25 | 101 | Ozone | 87 (not unhealthy) |
| May 26 | 105 | Ozone | 90 (not unhealthy) |
| May 27 | 133 | Ozone | 111 |
| May 28 | 122 | Ozone | 104 |
| May 29 | 156 | Ozone | 132 |
| May 30 | 159 | Ozone | 135 |
| May 31 | 164 | Ozone | 140 |
| Jun 1 | 112 | Ozone | 97 (not unhealthy) |
| Jun 4 | 108 | Ozone | 93 (not unhealthy) |
| Jun 5 | 105 | Ozone | 90 (not unhealthy) |
| Jun 6 | 140 | Ozone | 116 |
| Jun 7 | 143 | Ozone | 119 |
| Jun 8 | 133 | Ozone | 111 |
| Jun 9 | 154 | Ozone | 129 |
| Jun 10 | 187 | Ozone | 161 |
| Jun 11 | 179 | Ozone | 154 |
| Jun 12 | 150 | Ozone | 124 |
| Jun 13 | 182 | Ozone | 156 |
| Jun 14 | 164 | Ozone | 140 |
| Jun 15 | 174 | Ozone | 150 |
| Jun 16 | 195 | Ozone | 169 |
| Jun 17 | 207 | Ozone | 192 |
| Jun 18 | 205 | Ozone | 187 |
| Jun 19 | 166 | Ozone | 142 |
| Jun 20 | 122 | Ozone | 104 |
| Jun 21 | 183 | Coarse particles | 183 |
| Jun 25 | 156 | Ozone | 132 |
| Jun 26 | 169 | Ozone | 145 |
| Jun 27 | 151 | Ozone | 127 |
| Jun 28 | 159 | Ozone | 135 |
| Jun 29 | 129 | Ozone | 109 |
| Jun 30 | 105 | Ozone | 90 (not unhealthy) |
| Jul 1 | 161 | Ozone | 137 |
| Jul 2 | 150 | Ozone | 124 |
| Jul 3 | 136 | Ozone | 114 |
| Jul 4 | 151 | Fine particles | 132 |
| Jul 5 | 170 | Fine particles | 161 |
| Jul 6 | 150 | Ozone | 124 |
| Jul 7 | 169 | Ozone | 145 |
| Jul 8 | 166 | Ozone | 142 |
| Jul 9 | 172 | Ozone | 147 |
| Jul 10 | 201 | Ozone | 177 |
| Jul 11 | 169 | Ozone | 145 |
| Jul 12 | 150 | Ozone | 124 |
| Jul 13 | 154 | Fine particles | 140 |
| Jul 14 | 182 | Ozone | 156 |
| Jul 15 | 133 | Ozone | 111 |
| Jul 16 | 112 | Ozone | 97 (not unhealthy) |
| Jul 17 | 108 | Ozone | 93 (not unhealthy) |
| Jul 18 | 133 | Ozone | 111 |
| Jul 19 | 136 | Ozone | 114 |
| Jul 20 | 112 | Ozone | 97 (not unhealthy) |
| Jul 22 | 101 | Ozone | 87 (not unhealthy) |
| Jul 23 | 101 | Ozone | 87 (not unhealthy) |
| Jul 27 | 119 | Ozone | 101 |
| Jul 28 | 136 | Ozone | 114 |
| Jul 29 | 147 | Ozone | 122 |
| Jul 30 | 133 | Ozone | 111 |
| Jul 31 | 136 | Ozone | 114 |
| Aug 1 | 119 | Ozone | 101 |
| Aug 2 | 143 | Ozone | 119 |
| Aug 3 | 161 | Ozone | 137 |
| Aug 4 | 166 | Ozone | 142 |
| Aug 5 | 156 | Ozone | 132 |
| Aug 6 | 190 | Ozone | 164 |
| Aug 7 | 161 | Ozone | 137 |
| Aug 8 | 156 | Ozone | 132 |
| Aug 9 | 166 | Ozone | 142 |
| Aug 10 | 140 | Ozone | 116 |
| Aug 11 | 187 | Ozone | 161 |
| Aug 12 | 192 | Ozone | 166 |
| Aug 13 | 166 | Ozone | 142 |
| Aug 14 | 156 | Ozone | 132 |
| Aug 15 | 140 | Ozone | 116 |
| Aug 18 | 150 | Ozone | 124 |
| Aug 19 | 161 | Ozone | 137 |
| Aug 20 | 182 | Ozone | 156 |
| Aug 21 | 202 | Ozone | 179 |
| Aug 22 | 187 | Ozone | 161 |
| Aug 23 | 126 | Ozone | 106 |
| Aug 24 | 2035 | Coarse particles | 1881 |
| Aug 25 | 6180 | Coarse particles | 5609 |
| Aug 26 | 122 | Ozone | 104 |
| Aug 28 | 113 | Coarse particles | 113 |
| Aug 29 | 151 | Ozone | 127 |
| Aug 30 | 177 | Ozone | 151 |
| Aug 31 | 166 | Fine particles | 158 |
| Sep 1 | 150 | Fine particles | 130 |
| Sep 2 | 119 | Ozone | 101 |
| Sep 3 | 166 | Ozone | 142 |
| Sep 4 | 147 | Ozone | 129 |
| Sep 5 | 101 | Ozone | 87 (not unhealthy) |
| Sep 6 | 145 | Fine particles | 126 |
| Sep 7 | 265 | Fine particles | 240 |
| Sep 8 | 704 | Fine particles | 659 |
| Sep 9 | 229 | Fine particles | 204 |
| Sep 10 | 117 | Fine particles | 104 |
| Sep 14 | 133 | Ozone | 111 |
| Sep 15 | 182 | Ozone | 156 |
| Sep 16 | 122 | Ozone | 104 |
| Sep 17 | 136 | Ozone | 114 |
| Sep 20 | 108 | Ozone | 93 (not unhealthy) |
| Sep 21 | 112 | Ozone | 97 (not unhealthy) |
| Sep 23 | 140 | Ozone | 116 |
| Sep 27 | 108 | Ozone | 93 (not unhealthy) |
| Oct 13 | 181 | Coarse particles | 181 |
| Oct 17 | 107 | Fine particles | 95 (not unhealthy) |
| Oct 18 | 103 | Fine particles | 92 (not unhealthy) |
| Oct 19 | 119 | Ozone | 101 |
| Oct 21 | 119 | Ozone | 101 |
| Oct 22 | 164 | Fine particles | 156 |
| Oct 31 | 102 | Nitrogen dioxide | 102 |
| Nov 1 | 115 | Ozone | 100 (not unhealthy) |
| Nov 2 | 108 | Fine particles | 96 (not unhealthy) |
| Nov 3 | 105 | Fine particles | 94 (not unhealthy) |
| Nov 5 | 154 | Coarse particles | 154 |
| Nov 12 | 105 | Fine particles | 94 (not unhealthy) |
| Nov 13 | 200 | Coarse particles | 200 |
| Nov 21 | 123 | Fine particles | 109 |
| Nov 24 | 101 | Fine particles | 91 (not unhealthy) |
| Nov 26 | 106 | Fine particles | 95 (not unhealthy) |
| Nov 27 | 114 | Fine particles | 102 |
| Nov 30 | 109 | Fine particles | 96 (not unhealthy) |
| Dec 6 | 120 | Fine particles | 107 |
| Dec 7 | 102 | Fine particles | 91 (not unhealthy) |
| Dec 8 | 112 | Fine particles | 99 (not unhealthy) |
| Dec 9 | 117 | Fine particles | 104 |
| Dec 12 | 107 | Fine particles | 95 (not unhealthy) |
| Dec 13 | 151 | Fine particles | 132 |
| Dec 14 | 162 | Fine particles | 155 |
| Dec 15 | 137 | Fine particles | 120 |
| Dec 16 | 118 | Fine particles | 105 |
| Dec 17 | 152 | Fine particles | 134 |
| Dec 18 | 141 | Fine particles | 123 |
| Dec 19 | 109 | Fine particles | 97 (not unhealthy) |
| Dec 20 | 109 | Fine particles | 97 (not unhealthy) |
| Dec 21 | 107 | Fine particles | 95 (not unhealthy) |
| Dec 22 | 105 | Fine particles | 93 (not unhealthy) |
| Dec 23 | 103 | Fine particles | 92 (not unhealthy) |
| Dec 24 | 126 | Ozone | 106 |
| Dec 25 | 129 | Ozone | 109 |
Metro areas in California
Ranked by unhealthy days in their latest year. These are the geographies EPA actually reports the AQI for.
| Metro area | Unhealthy days | Pre-2013 rules | Main driver |
|---|---|---|---|
| Riverside-San Bernardino-Ontario, CA | 136 | 108 | ozone |
| Los Angeles-Long Beach-Anaheim, CA | 99 | 71 | ozone |
| Bakersfield, CA | 63 | 28 | ozone |
| El Centro, CA | 45 | 32 | ozone |
| Visalia-Porterville, CA | 43 | 15 | ozone |
| Fresno, CA | 34 | 18 | ozone |
| San Diego-Carlsbad, CA | 32 | 14 | ozone |
| Bishop, CA | 13 | 7 | ozone |
| Hanford-Corcoran, CA | 11 | 1 | ozone |
| Oxnard-Thousand Oaks-Ventura, CA | 8 | 4 | ozone |
| San Luis Obispo-Paso Robles-Arroyo Grande, CA | 7 | 1 | ozone |
| Sacramento--Roseville--Arden-Arcade, CA | 5 | 4 | ozone |
| Madera, CA | 3 | 1 | ozone |
| Modesto, CA | 3 | 0 | ozone |
| Red Bluff, CA | 1 | 0 | ozone |
| Redding, CA | 1 | 1 | fine particles |
| Sonora, CA | 1 | 0 | ozone |
| Truckee-Grass Valley, CA | 1 | 0 | ozone |
| Chico, CA | 0 | 0 | ozone and fine particles equally |
| Clearlake, CA | 0 | 0 | ozone and fine particles equally |
| Eureka-Arcata-Fortuna, CA | 0 | 0 | ozone and fine particles equally |
| Merced, CA | 0 | 0 | ozone and fine particles equally |
| Napa, CA | 0 | 0 | ozone and fine particles equally |
| Salinas, CA | 0 | 0 | ozone and fine particles equally |
| San Francisco-Oakland-Hayward, CA | 0 | 0 | ozone and fine particles equally |
| San Jose-Sunnyvale-Santa Clara, CA | 0 | 0 | ozone and fine particles equally |
| Santa Cruz-Watsonville, CA | 0 | 0 | ozone and fine particles equally |
| Santa Maria-Santa Barbara, CA | 0 | 0 | ozone and fine particles equally |
| Santa Rosa, CA | 0 | 0 | ozone and fine particles equally |
| Stockton-Lodi, CA | 0 | 0 | ozone and fine particles equally |
| Ukiah, CA | 0 | 0 | ozone and fine particles equally |
| Vallejo-Fairfield, CA | 0 | 0 | ozone and fine particles equally |
| Yuba City, CA | 0 | 0 | ozone and fine particles equally |
The full series
| Year | Unhealthy days, current rules | Pre-2013 rules | Days monitored |
|---|---|---|---|
| 2000 | 291 | 275 | 366 |
| 2001 | 323 | 310 | 365 |
| 2002 | 319 | 303 | 365 |
| 2003 | 302 | 280 | 365 |
| 2004 | 300 | 269 | 366 |
| 2005 | 259 | 237 | 365 |
| 2006 | 264 | 239 | 365 |
| 2007 | 297 | 272 | 365 |
| 2008 | 274 | 251 | 366 |
| 2009 | 261 | 230 | 365 |
| 2010 | 236 | 210 | 365 |
| 2011 | 271 | 240 | 365 |
| 2012 | 274 | 236 | 366 |
| 2013 | 265 | 228 | 365 |
| 2014 | 276 | 235 | 365 |
| 2015 | 256 | 218 | 365 |
| 2016 | 254 | 216 | 366 |
| 2017 | 269 | 236 | 365 |
| 2018 | 241 | 198 | 365 |
| 2019 | 214 | 172 | 365 |
| 2020 | 248 | 220 | 366 |
| 2021 | 259 | 227 | 365 |
| 2022 | 271 | 234 | 365 |
| 2023 | 216 | 182 | 365 |
| 2024 | 210 | 182 | 366 |
| 2025 | 195 | 147 | 365 |
Sources
- EPA AirData daily monitor files, recomputed under both breakpoint tables. Methods and validation.
- Download the full dataset for every state and metro.