San Bernardino County, California
114 ZIP codes · Avg score 70/100 · Grade B · Updated 2026-06-04
Across San Bernardino County's 114 ZIP codes, EPA compliance data shows above-average performance — violation rates are minimal, none of the county's systems have triggered health-based MCL exceedances in recent cycles, and the county's scores have stayed above the national baseline across every recent reporting period.
How San Bernardino County Compares
How San Bernardino County Compares
San Bernardino County scores 3 points below the California state average (73/100) and 2 points above the national average (68/100).
Data: EPA SDWIS Last verified: 2026-06-04
ZIP Code Risk Map
Water Quality Map: San Bernardino County, California
Each dot represents a ZIP code. Color indicates water quality grade. Tap a dot for details.
Key Risk Factors
Health risk index: 11.6 (asthma 9.9%, diabetes 12.1%)
Estimated additional annual cost per homeowner: $3,127, driven primarily by wildfire
Infrastructure: 0.337% avg pipe failure probability, 23% of ZIPs at high risk
61.9% of homes built before 1978 (lead paint era)
Violation History (2021–2025)
↑ Worsening trendEPA violation counts by year across San Bernardino County water systems. Health-based shown in red, total in blue.
Peak year: 2024 with 65 violations. Past 5 years: 161 total (161 health-based). Health-based violations are rising versus the prior 2-year window — worth closer monitoring.
Source: EPA SDWIS historical violations. Data may lag 6–12 months for the most recent year.
County Health Indicators vs National Average
Black markers indicate national averages. Source: CDC PLACES, Census ACS.
Infrastructure Overview
Sources: Census ACS (housing age), EPA SDWIS (infrastructure risk model), state bridge inspection data.
Compound Risk Breakdown
Estimated additional annual cost per homeowner: $3,127
Bar widths proportional to share of total annual risk cost. Source: compound risk model (FEMA, EPA, USGS).
Housing Age Distribution
728,806 housing units in San Bernardino County
Source: U.S. Census Bureau ACS B25034 (Year Structure Built).
Water Safety Affordability
How much it costs to fix water issues relative to home values in San Bernardino County
Remediation costs are relatively manageable for most homeowners in San Bernardino County, representing a small fraction of property value.
Remediation includes water filtration, lead abatement, radon mitigation, and flood protection where applicable. Source: Census ACS, EPA SDWIS.
Health Outcomes vs National Average
CDC PLACES data for San Bernardino County residents
Black markers = national averages. Red = above national avg. Green = below. Source: CDC PLACES, Census ACS.
Water Systems with Most Violations
Top 5 systems in San Bernardino County ranked by EPA violation count.
| # | Water System | Population | Violations |
|---|---|---|---|
| 1 | Usmc Nebo (barstow) | 1,126 | 62 |
| 2 | Bar-len Mwc | 126 | 62 |
| 3 | Hi Desert Mwc | 112 | 62 |
| 4 | Golden State Water Company - Barstow | 32,547 | 54 |
| 5 | Clawa | 2,320 | 25 |
113 total water systems serve San Bernardino County.
All ZIP Codes in San Bernardino County
114 ZIP codes tracked in San Bernardino County.
| # | ZIP Code | City | Safety Score | Grade | Violations | Home Value |
|---|---|---|---|---|---|---|
| 1 | 91709 | Chino Hills | 83 | B | 0 | $830K |
| 2 | 91758 | Ontario | 83 | B | 0 | — |
| 3 | 91761 | Ontario | 83 | B | 0 | $590K |
| 4 | 91762 | Ontario | 83 | B | 0 | $569K |
| 5 | 91785 | Upland | 83 | B | 0 | — |
| 6 | 91786 | Upland | 83 | B | 0 | $607K |
| 7 | 91798 | Ontario | 83 | B | 0 | — |
| 8 | 92308 | Apple Valley | 83 | B | 1 | $361K |
| 9 | 92350 | Loma Linda | 83 | B | 1 | — |
| 10 | 92357 | Loma Linda | 83 | B | 1 | — |
| 11 | 92392 | Victorville | 83 | B | 0 | $366K |
| 12 | 92393 | Victorville | 83 | B | 0 | — |
| 13 | 92394 | Victorville | 83 | B | 0 | $340K |
| 14 | 92395 | Victorville | 83 | B | 0 | $336K |
| 15 | 93562 | Trona | 83 | B | 0 | $60K |
| 16 | 93592 | Trona | 83 | B | 0 | — |
| 17 | 91729 | Rancho Cucamonga | 82 | B | 3 | — |
| 18 | 91737 | Rancho Cucamonga | 82 | B | 3 | $844K |
| 19 | 91739 | Rancho Cucamonga | 82 | B | 3 | $860K |
| 20 | 92322 | Cedarpines Park | 82 | B | 0 | $615K |
| 21 | 92286 | Yucca Valley | 81 | B | 1 | — |
| 22 | 92313 | Grand Terrace | 81 | B | 1 | $466K |
| 23 | 91710 | Chino | 79 | B | 2 (1 health) | $645K |
| 24 | 92301 | Adelanto | 79 | B | 15 (1 health) | $316K |
| 25 | 92321 | Cedar Glen | 79 | B | 6 (1 health) | $480K |
| 26 | 92359 | Mentone | 79 | B | 7 (1 health) | $411K |
| 27 | 91708 | Chino | 78 | B | 2 (1 health) | $643K |
| 28 | 91764 | Ontario | 78 | B | 0 | $524K |
| 29 | 91784 | Upland | 78 | B | 0 | $854K |
| 30 | 92307 | Apple Valley | 78 | B | 1 | $397K |
| 31 | 92346 | Highland | 78 | B | 0 | $462K |
| 32 | 92354 | Loma Linda | 78 | B | 1 | $539K |
| 33 | 92363 | Needles | 78 | B | 1 | $139K |
| 34 | 92366 | Mountain Pass | 78 | B | 2 (1 health) | — |
| 35 | 91701 | Rancho Cucamonga | 77 | B | 3 | $719K |
| 36 | 91730 | Rancho Cucamonga | 77 | B | 3 | $595K |
| 37 | 92284 | Yucca Valley | 76 | B | 1 | $315K |
| 38 | 92315 | Big Bear Lake | 76 | B | 1 | $538K |
| 39 | 92358 | Lytle Creek | 76 | B | 0 | $514K |
| 40 | 92305 | Angelus Oaks | 75 | B | 8 (2 health) | $418K |
| 41 | 92316 | Bloomington | 75 | B | 0 | $448K |
| 42 | 92337 | Fontana | 75 | B | 0 | $519K |
| 43 | 92371 | Phelan | 75 | B | 0 | $352K |
| 44 | 92376 | Rialto | 75 | B | 0 | $433K |
| 45 | 92377 | Rialto | 75 | B | 0 | $554K |
| 46 | 92402 | San Bernardino | 75 | B | 0 | — |
| 47 | 92405 | San Bernardino | 75 | B | 0 | $377K |
| 48 | 92408 | San Bernardino | 75 | B | 0 | $407K |
| 49 | 92410 | San Bernardino | 75 | B | 0 | $274K |
| 50 | 92382 | Running Springs | 74 | B | 4 (1 health) | $374K |
| 51 | 92391 | Twin Peaks | 74 | B | 3 | $313K |
| 52 | 92325 | Crestline | 73 | B | 2 (1 health) | $358K |
| 53 | 91763 | Montclair | 72 | B | 0 | $550K |
| 54 | 92278 | Twentynine Palms | 72 | B | 0 | — |
| 55 | 92309 | Baker | 72 | B | 3 | $115K |
| 56 | 92310 | Fort Irwin | 72 | B | 0 | — |
| 57 | 92329 | Phelan | 72 | B | 0 | — |
| 58 | 92331 | Fontana | 72 | B | 0 | — |
| 59 | 92334 | Fontana | 72 | B | 0 | — |
| 60 | 92336 | Fontana | 72 | B | 0 | $605K |
| 61 | 92342 | Helendale | 72 | B | 0 | $340K |
| 62 | 92401 | San Bernardino | 72 | B | 0 | $348K |
| 63 | 92403 | San Bernardino | 72 | B | 0 | — |
| 64 | 92406 | San Bernardino | 72 | B | 0 | — |
| 65 | 92411 | San Bernardino | 72 | B | 0 | $319K |
| 66 | 92412 | San Bernardino | 72 | B | 0 | — |
| 67 | 92413 | San Bernardino | 72 | B | 0 | — |
| 68 | 92414 | San Bernardino | 72 | B | 0 | — |
| 69 | 92415 | San Bernardino | 72 | B | 0 | — |
| 70 | 92418 | San Bernardino | 72 | B | 0 | — |
| 71 | 92423 | San Bernardino | 72 | B | 0 | — |
| 72 | 92424 | San Bernardino | 72 | B | 0 | — |
| 73 | 92427 | San Bernardino | 72 | B | 0 | — |
| 74 | 92314 | Big Bear City | 70 | B | 0 | $413K |
| 75 | 92335 | Fontana | 70 | B | 0 | $434K |
| 76 | 92398 | Yermo | 70 | B | 1 | $186K |
| 77 | 92407 | San Bernardino | 70 | B | 0 | $473K |
| 78 | 92356 | Lucerne Valley | 69 | C | 0 | $239K |
| 79 | 92252 | Joshua Tree | 68 | C | 0 | $291K |
| 80 | 92340 | Hesperia | 67 | C | 4 (1 health) | — |
| 81 | 92344 | Hesperia | 67 | C | 4 (1 health) | $454K |
| 82 | 92374 | Redlands | 67 | C | 5 (4 health) | $494K |
| 83 | 92385 | Skyforest | 67 | C | 0 | $388K |
| 84 | 92345 | Hesperia | 66 | C | 4 (1 health) | $360K |
| 85 | 92277 | Twentynine Palms | 65 | C | 0 | $224K |
| 86 | 92333 | Fawnskin | 65 | C | 3 (1 health) | $400K |
| 87 | 92399 | Yucaipa | 65 | C | 4 (2 health) | $472K |
| 88 | 92404 | San Bernardino | 65 | C | 0 | $384K |
| 89 | 92267 | Parker Dam | 63 | C | 0 | — |
| 90 | 92372 | Pinon Hills | 63 | C | 0 | $419K |
| 91 | 92386 | Sugarloaf | 63 | C | 0 | $447K |
| 92 | 92324 | Colton | 62 | C | 6 | $413K |
| 93 | 92373 | Redlands | 62 | C | 5 (4 health) | $713K |
| 94 | 92317 | Blue Jay | 59 | C | 2 | $549K |
| 95 | 92397 | Wrightwood | 55 | C | 0 | $457K |
| 96 | 92341 | Green Valley Lake | 54 | D | 2 (1 health) | $368K |
| 97 | 92268 | Pioneertown | 53 | D | 0 | $526K |
| 98 | 92285 | Landers | 53 | D | 0 | $222K |
| 99 | 92304 | Amboy | 53 | D | 0 | — |
| 100 | 92318 | Bryn Mawr | 53 | D | 0 | — |
| 101 | 92323 | Cima | 53 | D | 0 | — |
| 102 | 92332 | Essex | 53 | D | 0 | $375K |
| 103 | 92347 | Hinkley | 53 | D | 0 | — |
| 104 | 92352 | Lake Arrowhead | 53 | D | 0 | $627K |
| 105 | 92364 | Nipton | 53 | D | 0 | — |
| 106 | 92368 | Oro Grande | 53 | D | 0 | $314K |
| 107 | 92369 | Patton | 53 | D | 0 | — |
| 108 | 92378 | Rimforest | 53 | D | 0 | $350K |
| 109 | 92338 | Ludlow | 50 | D | 23 (19 health) | — |
| 110 | 92365 | Newberry Springs | 50 | D | 11 (10 health) | $161K |
| 111 | 92311 | Barstow | 45 | D | 31 (24 health) | $218K |
| 112 | 92339 | Forest Falls | 45 | D | 9 (2 health) | $503K |
| 113 | 92312 | Barstow | 39 | F | 31 (24 health) | — |
| 114 | 92327 | Daggett | 17 | F | 21 (18 health) | — |
Recommended Buyer Guides for San Bernardino County
Filtered against EPA monitoring data and CDC lead-exposure guidance, the guides below skip the generic catalog and connect directly to the contaminants and hazards on file here.
- Best Water Filters for Lead — Lead above EPA action level in 4 ZIP codes
- Best Lead Paint Test Kits — 61.9% of homes built before 1978
- Best Under-Sink Reverse Osmosis Systems — Multi-contaminant removal at the kitchen tap
- Best HEPA Air Purifiers for Wildfire Smoke — Wildfire is the top compound risk factor
Deep Dive Reports
Detailed analysis for San Bernardino County, California
Overview
San Bernardino County in California covers 114 ZIP codes with an average Home Safety Score of B (70/100).
43 of 114 ZIP codes have recorded EPA violations. 122 health-based violations have been documented.
← Back to California water quality report
Data Sources
- Water quality: EPA Safe Drinking Water Information System (SDWIS)
- Home values: U.S. Census Bureau ACS (median estimates by ZCTA)
Updated daily.