Riverside-San Bernardino-Ontario, CA Air Quality
EPA monitor data through 2025 · Updated August 13, 2026 · Methods
In 2025, Riverside-San Bernardino-Ontario, CA recorded 136 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 108 days. Since 2000, unhealthy days are 41% lower on a consistent definition.
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
Ozone since 1990
The index counts above only start in 2000, because nationwide fine-particle monitoring did not exist before 1999 and an index without it would measure the monitoring network rather than the air. Ozone does have a 35-year record. This is Riverside-San Bernardino-Ontario, CA's, from EPA's long-running trend monitors: 153 ppb in 1990 to 101 ppb in 2024, 34% lower.
Peak ozone, 1990 to 2024
What 2025 looked like
| Air quality category | Days | Share of monitored days |
|---|---|---|
| Good | 27 | 7% |
| Moderate | 202 | 55% |
| Unhealthy for sensitive groups | 83 | 23% |
| Unhealthy or worse | 53 | 15% |
Median AQI 87 · 90th-percentile AQI 161 · worst day 365. Scored under current rules.
What drove the unhealthy days
Of the 136 days above 100 in 2025, 107 were driven by ozone and 14 by fine particles, with 15 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. 28 of these 136 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 4 | 136 | Fine particles | 119 |
| Jan 7 | 365 | Coarse particles | 374 |
| Jan 8 | 119 | Coarse particles | 119 |
| Feb 1 | 112 | Fine particles | 99 (not unhealthy) |
| Feb 2 | 109 | Fine particles | 97 (not unhealthy) |
| Feb 11 | 164 | Coarse particles | 164 |
| Mar 1 | 174 | Coarse particles | 174 |
| Mar 6 | 142 | Coarse particles | 142 |
| 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 8 | 122 | Ozone | 104 |
| Apr 9 | 136 | Ozone | 114 |
| Apr 10 | 154 | Ozone | 129 |
| Apr 11 | 143 | Ozone | 119 |
| Apr 16 | 112 | Coarse particles | 112 |
| 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) |
| 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 | 150 | Ozone | 124 |
| May 11 | 108 | Ozone | 93 (not unhealthy) |
| May 13 | 146 | Coarse particles | 146 |
| May 17 | 158 | Coarse particles | 158 |
| May 19 | 108 | Ozone | 93 (not unhealthy) |
| May 20 | 136 | Ozone | 114 |
| May 21 | 169 | Ozone | 145 |
| May 22 | 166 | Ozone | 142 |
| May 23 | 126 | Ozone | 106 |
| May 25 | 101 | Ozone | 87 (not unhealthy) |
| May 27 | 133 | Ozone | 111 |
| May 28 | 105 | Ozone | 90 (not unhealthy) |
| May 29 | 156 | Ozone | 132 |
| May 30 | 159 | Ozone | 135 |
| May 31 | 118 | Fine particles | 105 |
| 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 | 161 | Ozone | 137 |
| 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 |
| Jul 1 | 161 | Ozone | 137 |
| Jul 2 | 150 | Ozone | 124 |
| Jul 3 | 136 | Ozone | 114 |
| Jul 4 | 108 | Ozone | 93 (not unhealthy) |
| Jul 5 | 153 | Fine particles | 136 |
| 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 | 151 | Ozone | 127 |
| Jul 14 | 182 | Ozone | 156 |
| Jul 15 | 133 | Ozone | 111 |
| Jul 16 | 112 | Ozone | 97 (not unhealthy) |
| Jul 17 | 101 | Ozone | 87 (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 | 140 | Ozone | 116 |
| Aug 3 | 161 | Ozone | 137 |
| Aug 4 | 166 | Ozone | 142 |
| Aug 5 | 156 | Ozone | 132 |
| Aug 6 | 190 | Ozone | 164 |
| Aug 7 | 159 | Ozone | 135 |
| Aug 8 | 156 | Ozone | 132 |
| Aug 9 | 147 | Ozone | 122 |
| 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 | 179 | Ozone | 154 |
| Aug 25 | 115 | Ozone | 100 (not unhealthy) |
| Aug 26 | 105 | Ozone | 90 (not unhealthy) |
| Aug 29 | 143 | Ozone | 119 |
| Aug 30 | 177 | Ozone | 151 |
| Aug 31 | 147 | Ozone | 122 |
| Sep 1 | 129 | Ozone | 109 |
| Sep 3 | 166 | Ozone | 142 |
| Sep 4 | 147 | Ozone | 122 |
| Sep 14 | 133 | Ozone | 111 |
| Sep 15 | 129 | Ozone | 109 |
| Sep 16 | 115 | Ozone | 100 (not unhealthy) |
| Sep 17 | 101 | Ozone | 87 (not unhealthy) |
| Sep 23 | 112 | Ozone | 97 (not unhealthy) |
| Oct 19 | 119 | Ozone | 101 |
| Nov 2 | 108 | Fine particles | 96 (not unhealthy) |
| Nov 12 | 105 | Fine particles | 93 (not unhealthy) |
| Nov 30 | 109 | Fine particles | 96 (not unhealthy) |
| Dec 13 | 147 | Fine particles | 128 |
| Dec 14 | 162 | Fine particles | 155 |
| Dec 15 | 137 | Fine particles | 120 |
| Dec 17 | 118 | Fine particles | 105 |
| Dec 21 | 105 | Fine particles | 93 (not unhealthy) |
Statewide context
Riverside-San Bernardino-Ontario, CA sits in California.
The full series
| Year | Unhealthy days, current rules | Pre-2013 rules | Days monitored |
|---|---|---|---|
| 2000 | 204 | 183 | 366 |
| 2001 | 220 | 195 | 365 |
| 2002 | 203 | 180 | 365 |
| 2003 | 186 | 164 | 365 |
| 2004 | 189 | 164 | 366 |
| 2005 | 174 | 143 | 365 |
| 2006 | 164 | 139 | 365 |
| 2007 | 203 | 172 | 365 |
| 2008 | 169 | 152 | 366 |
| 2009 | 166 | 134 | 365 |
| 2010 | 161 | 130 | 365 |
| 2011 | 171 | 141 | 365 |
| 2012 | 182 | 136 | 366 |
| 2013 | 157 | 123 | 365 |
| 2014 | 175 | 135 | 365 |
| 2015 | 169 | 133 | 365 |
| 2016 | 161 | 129 | 366 |
| 2017 | 174 | 144 | 365 |
| 2018 | 173 | 136 | 365 |
| 2019 | 145 | 116 | 365 |
| 2020 | 176 | 153 | 366 |
| 2021 | 166 | 142 | 365 |
| 2022 | 150 | 129 | 365 |
| 2023 | 140 | 116 | 365 |
| 2024 | 164 | 146 | 366 |
| 2025 | 136 | 108 | 365 |
Sources
- EPA AirData daily monitor files, recomputed under both breakpoint tables. Methods and validation.
- Download the full dataset for every state and metro.