How we calculate

TapCheck CA is designed to turn public drinking-water concepts into a ZIP-level snapshot you can understand at your own pace.

Data status: Contaminant numbers come from the California State Water Resources Control Board SDWIS / EDT Library (recent community-system detections). ZIP → utility matching prefers official CA service-area boundaries (SABL) via ZIP-centroid point-in-polygon, then HQ address, then county-constrained city expansion. Overlapping service areas show a utility chooser.

What a report shows

  • Utility name matched to the ZIP (prefer SABL service-area boundary; fallback HQ ZIP, then county-constrained city). Confidence badge + “confirm on your bill” chooser when multiple systems overlap or confidence is medium/low.
  • Shareable choice — selecting a utility adds ?pwsid= to the report URL so share links keep the same system.
  • Detected level — average of recent detected samples for curated contaminants (non-detects omitted).
  • EPA MCL — Maximum Contaminant Level, the federal legal limit for regulated contaminants.
  • CA PHG — California health guideline (OEHHA Public Health Goal), a health-based guideline that is often much stricter than the MCL (not a legal limit).
  • CA notification level (NL) — When no PHG exists yet, we may show California’s notification level as the health-guidelines comparison. An NL is not a PHG; the UI labels it “California notification level.”
  • Plain-English blurb and a suggested filter type (activated carbon or reverse osmosis).

Match confidence

  • High — unique SABL polygon hit for the ZIP centroid among systems we cover.
  • Multi — two or more SABL service areas cover the same ZIP centroid; use the chooser.
  • Medium — HQ address ZIP fallback (no usable SABL hit among covered systems).
  • Low — city-level estimate within the same county.

Status labels

  • Within legal limit — detected value at or below the EPA MCL (or no MCL exceeded).
  • Elevated vs health guidelines — still legal in our rules, but high relative to the MCL band and/or far above a CA PHG.
  • Above legal limit — average of detections exceeds the EPA MCL (or action level).

These labels are educational heuristics, not regulatory determinations or compliance findings.

How we refresh data

Pipeline scripts live in scripts/:

  • scripts/download_sdwis.sh — download SDWIS tab zips + water-system tables + SABL crosswalk
  • scripts/build_sabl_crosswalk.py — CA service-area polygons → ZIP→PWS map
  • scripts/process_water_data.py — stream/aggregate into data/water-data.json

We currently use SDWIS4 (2023–2025) + SDWIS5 (2026–present), community systems, detected results only, for a curated contaminant list with EPA MCLs and CA PHGs.

Still approximate: ZIP centroids near polygon edges, unverified SABL boundaries, HQ/city fallbacks where no polygon hit exists, and templated plain-English blurbs.

Current matching snapshot (build 2026-09-28): 2,429 ZIPs covered — 1,937 unique high-confidence SABL matches, 73 multi-utility SABL matches, 378 medium-confidence HQ ZIP fallbacks, and 41 low-confidence city fallbacks. Counts change when data is rebuilt.

Disclaimers

  • Not a lab test of your faucet. Home plumbing (especially lead), point-of-use devices, and sampling dates all matter.
  • Not medical advice. Talk to a clinician about health concerns.
  • Not EWG and not affiliated with any utility, EPA, or state agency.
  • Not a guarantee that filtration will remove every contaminant in your home.

Search a ZIP