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 crosswalkscripts/build_sabl_crosswalk.py— CA service-area polygons → ZIP→PWS mapscripts/process_water_data.py— stream/aggregate intodata/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.