Everything here comes from public state and federal records. This page explains exactly how the map is built, what it claims, what it does not claim, and how to check it. Figures computed 2026-09-03; page built 2026-09-03.
The Minnesota Pollution Control Agency has recorded PFAS above a health standard in groundwater monitoring wells at 95 named facilities — mostly county landfills, across the state.
The Minnesota Department of Health has never tested fish for PFAS in 935 lakes (789,089 acres) or 4,305 river miles in or downstream of those same sub-watersheds, across 60 counties.
209 of those lakes and 139 of those river reaches were sampled — fish were caught, tissue was analyzed, a result was published — for mercury or PCBs. Not for PFAS.
Both datasets are public. Neither agency publishes them joined.
| Dataset | Agency | Used for |
|---|---|---|
| Fish consumption guidance (LakeFinder FCA pages) | MDH via DNR | Per-lake advisories and which contaminants were named |
| Waterbody-specific guidelines: Rivers (PDF) | MDH | River advisories by reach |
| Lake survey reports (LakeFinder API) | DNR | Fish populations, catch per net, DNR normal ranges |
| DNR Hydrography | DNR / MN Geospatial Commons | Lake list, DOW numbers, acreage, coordinates, stream geometry |
| Groundwater Contamination Atlas | MPCA | Monitoring wells, exceedances, contamination area polygons |
| Closed landfills, remediation sites, institutional controls | MPCA | Contamination sources and cleanup status |
| Impaired waters, 303(d), 2024 | MPCA | Fish-tissue impairments for mercury, PCBs, PFOS |
| Watershed Boundary Dataset (HUC12) | USGS | Sub-watershed boundaries and downstream links |
| Toxics Release Inventory | EPA | Facilities reporting chemical releases |
| ECHO enforcement | EPA | Formal actions, penalties, compliance status |
Data as retrieved on the dates shown on each record. Agencies revise these datasets; the map is rebuilt weekly.
exceedance_count > 0) whose exceedance names a PFAS compound.
8,543 wells qualify statewide.tohuc field up to two steps downstream.A lake is treated as already tested for PFAS if MDH's guidance page names any PFAS compound at all, or if MPCA has listed it PFOS-impaired. In practice that usually means a single compound — PFOS — while the PFAS family contains thousands. A lake screened only for PFOS is counted here as tested and is excluded from the finding, even though the compounds MPCA is measuring in groundwater at these sites routinely include PFOA, PFHxS, PFHxA, PFBS and PFNA as well.
That choice makes the count smaller and the claim narrower. It is deliberate: every lake in this finding has had no PFAS compound looked for in its fish.
MPCA's well records carry a derived field, exceedance_pct_max. Despite the
name it is a multiple of the health value, not a percentage, and it is computed
against the most protective value MDH publishes for that compound.
Worked example — Hickory Grove Landfill, well 785553. MPCA reports a PFOA result of 0.143 µg/L and a field value of 18,101.27. MDH's Human Health-Based Water Guidance Table gives two values for PFOA:
| MDH value for PFOA | µg/L | 0.143 ÷ value |
|---|---|---|
| Chronic health-based value | 0.00024 | 596× |
| Cancer health-based value | 0.0000079 | 18,101× |
So MPCA's figure is arithmetically correct and refers to the cancer-based value. A PFOS well at the Lehillier / Mankato site confirms the same pattern: 0.007 µg/L against MDH's chronic PFOS value of 0.0023 µg/L gives 3.04, which is exactly what MPCA reports.
Because a bare multiple does not say which value it is measured against, this site shows the measured concentration first and then both multiples, each labelled. Every figure can be checked against MDH's guidance table without trusting arithmetic in between.
What exceeding a cancer-based value does and does not mean. MDH's cancer health-based value is the concentration in drinking water corresponding to a small additional lifetime cancer risk for someone consuming that water daily over a lifetime. These measurements are from groundwater monitoring wells inside landfill boundaries. They are not drinking water, and they are not measurements of any lake. A well exceeding that value is a statement about contamination at that site — not a statement about anyone's cancer risk, and not a claim that a downstream lake is affected.
An earlier version of this page said MPCA's field was inflated by a factor
of 1,000. That was wrong — it came from working backwards to a standard rather than
reading MDH's published table — and was corrected on 2026-09-03 before publication.
The raw field is retained in the downloadable data as
mpca_exceedance_pct_max_RAW_see_methodology.
MPCA's wells carry a derived field, exceedance_pct_max. This site does
not display it, because for PFAS it is inflated by a factor of 1,000.
The clearest example is Hickory Grove Landfill, well 785553. MPCA reports
exceedance_pct_max = 18101.27 alongside a measured PFOA result of
0.143 µg/L. MDH's health-based value for PFOA is 0.0079 µg/L, so the
result is about 18 times the standard. The figure 18,101 is
0.143 ÷ 0.0000079 — the standard expressed in mg/L divided into a result
reported in µg/L.
For conventional contaminants the same field is computed correctly. At the Lehillier / Mankato site, trichloroethene at 7.6 µg/L against a 0.4 µg/L standard is reported as 19.0, which is right. The field is therefore internally inconsistent, and any PFAS magnitude drawn from it would overstate the exceedance by three orders of magnitude.
So this site reports what MPCA measured — the concentration and its unit,
exactly as published in exceedance_value_list — and relies on MPCA's own
exceedance_count field for whether a standard was exceeded at all. Anyone can
compare a published concentration against MDH's health-based values without trusting
arithmetic in between.
This discrepancy was found while checking this project's own numbers
before publication. It is reported here rather than quietly worked around. MPCA is welcome
to correct the reading; the raw field is retained in the downloadable data as
mpca_exceedance_pct_max_RAW_see_methodology so the difference stays auditable.
MPCA's field is exceedance_pct_max. Despite the name, its values are the
measured concentration divided by the health standard — a multiple,
not a percentage. This site displays them as multiples (×).
MPCA publishes no definition for the field, so it was verified arithmetically against
its own exceedance_value_list column, using trichloroethene wells at the
Lehillier / Mankato site, where the health-based value is 0.4 µg/L:
| Well | Measured | Measured ÷ 0.4 | MPCA field value |
|---|---|---|---|
| 4D | 7.6 µg/L | 19.0 | 19.0 |
| W30R | 1.2 µg/L | 3.0 | 3.0 |
| W28R | 0.66 µg/L | 1.65 | 1.65 |
| 5D | 0.6 µg/L | 1.5 | 1.5 |
A PFOS well at the same site confirms it independently: 0.007 µg/L against a field value of 3.04 implies a standard of 0.0023 µg/L, which is MDH's health-based value for PFOS.
So a well listed at 18,101× carries roughly eighteen thousand times the health standard for the compound in question. Large multiples are not errors: PFAS standards are set in parts per trillion, so even a very large multiple can be an ordinary concentration for landfill leachate. If MPCA's own definition of this field differs from the arithmetic above, write to the corrections address and it will be relabelled.
| Lake | County | Acres | Nearest PFAS exceedance | Measured (MPCA) | Last sampled |
|---|---|---|---|---|---|
| Lake of the Woods (MN) | Lake of the Woods | 305,576 | Lake of the Woods County Landfill | 0.085 ug/L; 0.21 ug/L; 0.18 ug/L | 2020-04-22 |
| Mille Lacs | Mille Lacs | 128,250 | Hickory Grove Landfill | 9.9 ug/L; 110.0 ug/L; 0.143 ug/L; 0.51 ug/L | 2025-05-08 |
| Vermilion | St. Louis | 39,272 | Vermillion Modified Sanitary Landfill | 1200.0 ug/L; 0.00658 ug/L; 0.00234 ug/L | 2025-10-08 |
| East Vermilion | St. Louis | 25,798 | Vermillion Modified Sanitary Landfill | 1200.0 ug/L; 0.00658 ug/L; 0.00234 ug/L | 2025-10-08 |
| Cass | Beltrami | 15,958 | Leech Lake Landfill | 0.0122 ug/L | 2026-06-01 |
| Otter Tail | Otter Tail | 14,079 | Northeast Otter Tail County Landfill | 2.9 ug/L; 34.8 ug/L; 1090.0 ug/L; 0.036 ug/L; 0.0079 ug/L; 0.16 | 2025-03-26 |
| West Vermilion | St. Louis | 11,368 | Vermillion Modified Sanitary Landfill | 1200.0 ug/L; 0.00658 ug/L; 0.00234 ug/L | 2025-10-08 |
| Gull | Cass | 10,010 | Maple Landfill | 9.9 ug/L; 812.0 ug/L; 0.0104 ug/L; 0.144 ug/L; 0.00358 ug/L; 0.0 | 2025-11-06 |
| Whitefish | Crow Wing | 7,714 | Fifty Lakes Landfill | 1290.0 ug/L; 0.008 ug/L | 2023-11-21 |
| West Battle | Otter Tail | 5,615 | Battle Lake Landfill | 45.0 ug/L; 830.0 ug/L; 850.0 ug/L; 0.00524 ug/L; 0.0054 ug/L | 2025-06-03 |
| Woman | Cass | 5,520 | Walker-Hackensack Landfill | 180.0 ug/L; 0.0426 ug/L; 0.00288 ug/L | 2025-05-22 |
| Rush | Otter Tail | 5,276 | Northeast Otter Tail County Landfill | 2.9 ug/L; 34.8 ug/L; 1090.0 ug/L; 0.036 ug/L; 0.0079 ug/L; 0.16 | 2025-03-26 |
Minnesota has 8,628 lakes over 25 acres in the DNR hydrography layer. 1,480 have a fish-tissue result of any kind. 7,148 have none. Separately, DNR has published 21,933 fish population surveys covering 3,321 lakes, and MPCA has 19,599 monitoring wells in its contamination atlas.
If something here is wrong, I want to fix it. Email mnwaterdata@gmail.com with the record and what is incorrect. Corrections are made within 48 hours and noted here. Agencies, facility operators, and anyone else named in this data are welcome to write.
This is an independent project. It is not affiliated with or endorsed by MDH, MPCA, DNR, EPA, USGS, or any company named in the underlying records.