How we check the data
Every number on this site comes from a public record, and every number is traced back to the exact line in the original report before it's published.
Where the data comes from
- Utility water quality reports (Consumer Confidence Reports). Every community water system must publish one each year. This is our main source for PFAS, lead and hardness.
- EPA's Safe Drinking Water Information System, for the list of water systems and who buys water from whom.
- EPA's fifth Unregulated Contaminant Monitoring Rule (UCMR 5), nationwide testing for 29 PFAS and lithium.
- U.S. Census Bureau geography and population estimates, to match ZIP codes and water systems to towns, and the American Community Survey for the age of each town's homes and what households pay for water and sewer.
- New Jersey Department of Environmental Protection: its map of public water service areas, its radon tier report and its Known Contaminated Sites List.
- Water utilities' service line maps (Veolia Water New Jersey and New Jersey American Water), for the number of lead service lines in each town.
How each number is checked
We use an AI model (Claude, made by Anthropic) to read each report and pull out the values we publish. For every value, the model must also return the exact passage of the report it came from.
A script then checks that each passage appears word for word in the original document. Any value we can't match to the report isn't published. Reports whose tables are images can't be matched this way, so we check those by hand.
A word-for-word match confirms that a number is in the report, not that it came from the right column. A lead value can match the report and still be the legal action level rather than the measured result. So we also compare PFAS values with EPA's UCMR 5 test results, flag lead values that equal a legal limit, and check every flagged value by hand against the report. Each value we correct or confirm by hand is recorded with its source in the report and the date we checked it.
We don't rely on EPA's records alone to say where a town's water comes from. In our checks, those records sometimes list a system as buying most of its water when the utility's own report says it runs its own wells. Where they disagree, we follow the utility's report.
Which limits we compare against
We show two limits side by side. New Jersey's limits are the ones utilities must meet today: 14 ppt for PFOA and 13 ppt for PFOS. EPA's national limits, set in 2024, are stricter: 4 ppt for PFOA and 4 ppt for PFOS. A report that says a system is "in compliance" is usually measuring against New Jersey's limits.
EPA kept its 4 ppt limits for PFOA and PFOS. Utilities must meet them by 2029; EPA has proposed letting systems request until 2031. In May 2026, EPA proposed withdrawing its national limits for PFNA, PFHxS, GenX (HFPO-DA) and a combined limit for PFAS mixtures. The proposal isn't final yet; EPA plans to decide in 2026. New Jersey's own PFNA limit is unaffected. We'll update these pages when EPA decides. (Status as of November 2026.)
Water system pages also list four substances where New Jersey's standards go beyond the federal ones, when the system's report includes them. Arsenic: New Jersey's limit is 5 ppb, the federal limit 10 ppb. 1,2,3-Trichloropropane: New Jersey's limit is 0.03 ppb, and there is no federal limit. Sodium and chloride: New Jersey has recommended upper limits of 50 ppm and 250 ppm, which aren't enforceable; EPA has a secondary standard for chloride (250 ppm, also not enforceable) and none for sodium. We show the value as the report prints it, with the report's name for it (for example "highest compliance result"), and we use only the tables for the system itself, not those for systems it buys water from. (Federal limits as of November 2026.)
What we don't know
Utility reports describe water across a whole system. Your own tap can differ, especially for lead, which usually comes from pipes inside or leading to the home. Towns served by more than one water system are marked on their pages.
Local factors on town pages
Each town page ends with local information that is about the town, not about its water system. We show a block only when the source has a usable value for that town; otherwise it's left out. Towns are matched by Census and state municipal codes, not by name, because several New Jersey towns share a name.
Age of homes
The share of homes built before 1980 comes from the Census Bureau's American Community Survey (5-year estimates, table B25034, which counts housing units by the decade they were built). Lead solder was banned in plumbing in 1986, and EPA notes that lead pipes are more likely to be found in homes built before 1986. The survey groups years by decade, so a "before 1986" share can't be calculated; 1980 is the nearest cutoff. This is a measure of a town's housing, not a lead test. The utility's water quality report describes water leaving the system, not the plumbing inside a home.
Survey figures are estimates with a margin of error. We combine the margins of the decade groups using the Census Bureau's formulas, and each town page gives the margin next to the town's share, so a difference from the county or state figure can be read against it. If the margin is large relative to the share (a coefficient of variation above 30%), the page also says "about"; above 50%, we don't show the figure.
Lead service lines
A service line is the pipe between the water main and a building. New Jersey's 2021 lead service line law requires public water systems to inventory their service lines and to replace lead service lines, including the part on private property. Veolia Water New Jersey and New Jersey American Water publish their inventories as interactive maps, and Veolia's water quality report points customers to its map.
For each town whose main water system is on one of these maps, we count the service lines the map places inside the town's boundary (New Jersey Office of GIS municipal boundaries), grouped by the material the utility records for its side and for the property owner's side. We count lines; we don't download addresses. Each line is counted once: as lead if either side is lead; otherwise as galvanized if either side is galvanized steel; otherwise as unidentified if the material on either side isn't known yet. Only lines on the town's main water system are counted, and we don't show the block when fewer than 100 lines are counted. Utilities update their maps as they identify and replace lines, so the counts are for the date shown and can differ from the totals a utility files with NJDEP. A lead service line on the map is a record of pipe material, not a lead measurement; the utility's water quality report gives the system's lead test results. Towns on other water systems don't have this block yet. The counts for every town are compared on lead service lines by town.
Radon
Radon is a radioactive gas that comes from the soil and can collect indoors. New Jersey DEP assigns every municipality a radon tier from indoor tests reported to it: Tier 1 (high potential) when 25% or more of tested homes are at or above 4 picocuries per liter, Tier 2 (moderate) for 5 to 24%, Tier 3 (low) for under 5%, with at least 25 homes tested. Once a town is in Tier 1, NJDEP doesn't lower it, and some towns are Tier 1 because of their geology. The figures come from NJDEP's 2015 Radon Tier Assignment Report; NJDEP's current municipal tier list on its website shows the same figures. Where NJDEP reports two towns together (for example Washington Borough and Washington Township), we can't tell which figures belong to which town, so we show neither. NJDEP recommends testing every home, whatever its town's tier. Homes on private wells can also get radon from well water. The tier describes indoor air, not tap water.
Known contaminated sites
NJDEP's Known Contaminated Sites List covers places where soil or groundwater contamination has been confirmed at or above state standards. Cleanup at these sites may be under way, not yet started, or finished with restrictions such as a deed notice. We count the sites NJDEP's map layer places in each town; a few sites without map coordinates aren't in the layer. We show the count and the date of the list, and we don't rank towns or divide the count by population. A listed site doesn't mean the public water supply is contaminated: public water systems are tested and treated separately. People with private wells near a listed site can ask their county health department about testing.
Water and sewer bills
The American Community Survey asks households what they pay for water and sewer over a year (table B25134, Annual Water and Sewer Costs). Homes where water and sewer aren't charged or are included in rent or other fees are counted separately. We show the share of occupied homes that pay a separate charge and, among them, the share reporting $1,000 or more for the year, next to the county and state figures. These are survey estimates of what households report, including sewer, not a utility's rates. The margin-of-error rules are the same as for the age of homes.
Open data
The first release of our open dataset (v1.1, October 2026) covers 41 New Jersey municipalities, the 12 public water systems that serve them, and the PFAS results those systems reported in their 2025 water quality reports. Every measurement in it went through the checks described above. The site now covers 142 towns on 16 water systems; the towns and systems added since that release aren't in the dataset yet.
A summary of the PFAS results, one row per water system, is on the PFAS results by water system page.
Download the dataset from Zenodo. It's released under CC BY 4.0, so you can reuse and adapt it as long as you credit the source.
Cite it as:
Sertbaş, Y. (2026). New Jersey Tap Water Sources and PFAS Results by Town (2025 reports) [Data set]. Source & Tap. Zenodo. https://doi.org/10.5281/zenodo.23045751
Writing about the data? Our notes for journalists and researchers cover how to credit it and what to check before comparing a value with a limit.
Corrections
If you see a number that doesn't match your utility's report, tell us. We check it against the source, correct the page and list the change on our corrections page.