How to read a water test report: what ND, MDL, MCL and the units mean, and why a passed report can still taste, smell or stain
A passed report means every MCL was met. Iron 0.3 mg/L, manganese 0.05 and pH 6.5 to 8.5 are unenforced secondary standards a lab may not flag.
- Verified
- Updated
- 7 min read
- 9 sources

Short answer
A water test report that says “passed” or “meets all standards” means every line tested cleared its Maximum Contaminant Level (MCL), the enforceable ceiling EPA sets under the National Primary Drinking Water Regulations. It does not mean the water is free of iron, manganese, sulfate or a low pH. Those sit in EPA’s Secondary Drinking Water Standards, which EPA describes as non-mandatory guidelines for taste, color and odor: iron 0.3 mg/L, manganese 0.05 mg/L, sulfate 250 mg/L, pH 6.5 to 8.5 and total dissolved solids 500 mg/L. A basic panel can leave them off entirely, and a lab does not flag an exceedance as a violation. “ND” means below the lab’s reporting limit, not zero. Hardness, hydrogen sulfide and tannins have no federal standard at all, so a clean report says nothing about them. Read the secondary lines against those five numbers first, then route the symptom to the specific contaminant guide.
If your report already shows a line above its MCL, you do not need this page: go straight to the guide for that contaminant, because the vocabulary below only matters when the report looks clean and the water does not.
What does “passed” actually mean?
Most lab and utility reports judge pass or fail against one column, the MCL. The report carries at least four other kinds of number, and each means something different.
| Limit type on the report | What it means | Example on this page |
|---|---|---|
| MCL (Maximum Contaminant Level) | The highest level allowed in drinking water, enforceable, set as close to the MCLG as feasible per EPA’s National Primary Drinking Water Regulations | Nitrate, 10 mg/L as nitrogen |
| MCLG (Maximum Contaminant Level Goal) | The level below which EPA says there is no known or expected risk to health; a goal, not enforceable | Nitrate 10 mg/L; lead and total coliform both zero |
| SMCL (Secondary Maximum Contaminant Level) | Non-mandatory guideline for taste, color and odor per EPA’s Secondary Drinking Water Standards | Iron 0.3 mg/L, manganese 0.05 mg/L, sulfate 250 mg/L, pH 6.5 to 8.5, TDS 500 mg/L |
| Action level | A utility-side trigger at the 90th percentile of sampled homes, not a per-home limit, per EPA’s Lead and Copper Rule | Lead, 15 ppb |
| No federal standard | Not regulated; the report cannot pass or fail it | Hardness, hydrogen sulfide, tannins |
EPA’s secondary standards page covers 15 nuisance parameters and calls every one of them non-mandatory. A public utility can print “compliant” with iron at twice the 0.3 mg/L guideline, because no rule was broken. The full enforceable list with every number is in the EPA drinking water limits table.
What do ND, MDL and RL mean?
ND stands for non-detect. The Minnesota Department of Health lab-results guide says a result printed as “<” followed by a number is below the reporting limit and is treated as non-detect, or zero, for compliance purposes.
The reporting limit (RL) is the lowest concentration the lab must report for that method, which the Minnesota guide describes as generally two to five times the method detection limit. The method detection limit (MDL) is a statistical figure: the minimum concentration the method can distinguish from a blank with 99 percent confidence, per the same guide and EPA’s MDL questions page.
The practical consequence is one comparison. If the printed reporting limit for a contaminant is higher than its MCL, an ND on that line proves nothing, because the test could not have seen an exceedance. A lab that reports lead as “<20 ppb” has not told you whether the 15 ppb action level was crossed.
What do the units mean?
Reports mix five unit systems, and a reader who confuses two of them reads a result a thousand times wrong.
| Unit | Same as | Used for |
|---|---|---|
| mg/L (milligrams per liter) | ppm (parts per million), which EPA’s contaminant table states are equivalent | Nitrate, iron, manganese, sulfate, TDS, hardness |
| µg/L (micrograms per liter) | ppb (parts per billion); one thousandth of a mg/L | Lead, arsenic, uranium (EPA’s Radionuclides Rule sets uranium at 30 µg/L) |
| ppt (parts per trillion) | ng/L; one thousandth of a ppb | PFAS, covered in the PFAS guide |
| pCi/L (picocuries per liter) | A radioactivity rate, not a mass | Gross alpha 15 pCi/L and combined radium 5 pCi/L per EPA’s Radionuclides Rule; see the uranium and radon guide |
| Present / Absent | Not a concentration at all | Total coliform and E. coli, per EPA Region 8 |
| CFU/mL (colony forming units per milliliter) | A bacteria plate count, per the Missouri state laboratory | Heterotrophic plate count; no federal MCL is cited on this page |
| pH (no unit) | A scale, not a concentration | Secondary standard range 6.5 to 8.5 |
The one conversion worth memorising: 0.015 mg/L, 15 µg/L and 15 ppb are the same lead reading. A report that prints lead in mg/L next to an action level quoted in ppb is the most common way a reader misjudges the line by a factor of a thousand.
Why did it pass but still taste, smell or stain?
Because the symptom lives on a line the pass or fail column ignores, or on a line the panel never ran. Match the symptom to the row, then follow the link.
| Symptom despite a clean report | What the report is missing | Where to go |
|---|---|---|
| Metallic taste, rust or orange stains | Iron is an SMCL at 0.3 mg/L, not an MCL; a basic panel may skip it | Iron in well water |
| Black or brown stains, dark film in the toilet tank | Manganese is an SMCL at 0.05 mg/L | Manganese black stains |
| Rotten-egg smell | Hydrogen sulfide has no EPA standard and is rarely on a panel | Rotten-egg smell in well water |
| White scale, spotted glassware, soap will not lather | Hardness has no MCL or SMCL | Hard water and white scale |
| Salty or bitter taste | Sulfate 250 mg/L and TDS 500 mg/L are SMCLs, aesthetic only | Read those two lines directly against 250 and 500 |
| Blue-green stains, pinhole leaks in copper | pH below the 6.5 to 8.5 SMCL range | Blue-green stains and low pH |
| Tea-colored water with iron reading ND | Tannins are not federally regulated | Tannins and tea-colored water |
| Cloudy water with clean chemistry | Turbidity and sediment are separate from dissolved-contaminant lines | Sediment and turbidity |
| “Total coliform: Present” on an otherwise clean report | Not a pass; MCLG is zero and the result is a sanitary breach | Coliform positive well water |
| Lead line under 15 ppb but above zero | The action level is a utility trigger; the MCLG is zero | Lead in tap water |
Three of those rows, hydrogen sulfide, hardness and tannins, can never fail a report, because there is no federal number to fail. A report that omits them is not hiding anything; it was simply never asked.
Before you buy anything
Do not buy a filter off a passed report. Find the iron, manganese, sulfate, pH and hardness lines first; if any of them is missing, that is the test to order, not a treatment system. The well water test panel guide lists which lines a full panel carries, and the water test kit review compares lab packages and strips by what each one actually reports. A secondary standard exceedance is a taste, odor or staining problem with a known treatment class, and that class depends on the number, not on the pass or fail stamp.
What should you do first?
- Find the reporting limit column and check that, for every ND line, the limit printed is below the MCL for that contaminant.
- Read iron, manganese, sulfate, pH and TDS against 0.3, 0.05, 250, 6.5 to 8.5 and 500 mg/L, whatever the pass or fail column says.
- List the lines the panel never ran: hardness, hydrogen sulfide, tannins and, on city water, lead at your own tap.
- Convert every unit to the one the limit is quoted in before comparing; mg/L to µg/L is a factor of 1,000.
- Match the remaining symptom to the routing table above and follow that guide for the treatment class.
Frequently asked questions
What does ND mean on a water test report?
ND, or a less-than sign before a number, means the result was below the laboratory's reporting limit and is treated as non-detect for compliance, per the Minnesota Department of Health lab-results guide. It is not proof the contaminant is at zero. Compare the printed reporting limit to the MCL for that line: a reporting limit above the MCL means the test could not have caught an exceedance.
What is the difference between an MCL and an MCLG?
EPA's National Primary Drinking Water Regulations define the MCLG as the level below which there is no known or expected risk to health, and it is not enforceable. The MCL is the highest level allowed in drinking water, set as close to the MCLG as feasible with the best available treatment technology, and it is the enforceable number. Lead and total coliform both carry an MCLG of zero.
Why does my report say I passed but the water smells or stains?
Pass or fail on most reports is judged against enforceable MCLs only. Iron at 0.3 mg/L and manganese at 0.05 mg/L are EPA Secondary Standards, which EPA describes as non-mandatory guidelines for taste, color and odor, so an exceedance is not a violation and a basic panel may not include those lines at all. Hydrogen sulfide and hardness have no federal standard of any kind.
What does total coliform present mean versus E. coli present?
EPA Region 8 states a sample is total coliform positive when coliform bacteria are found in it; the result is reported as present or absent, not as a concentration, and the MCLG for total coliform is zero. E. coli is a more specific indicator of fecal contamination than the rest of the total coliform group, so an E. coli present line is the more serious result.
Is the lead action level of 15 ppb the same as an MCL?
No. EPA's Lead and Copper Rule sets an action level of 15 ppb that triggers corrective work at the utility when the 90th percentile of its sampled homes exceeds it. It is not a per-home limit and not an MCL; lead's MCLG is zero. A single home reading of 12 ppb is under the action level and still above the goal, which is why both numbers appear on one report.
Fact sheet and how to cite this page
- Answer
- A water test report that says passed means every tested line was below its enforceable EPA Maximum Contaminant Level. Iron (0.3 mg/L), manganese (0.05 mg/L), sulfate (250 mg/L) and pH (6.5 to 8.5) are EPA Secondary Standards that are non-mandatory and often left off a basic panel, so a clean report can still taste, smell or stain. ND means below the lab’s reporting limit, not zero.
- Basis
- EPA National Primary Drinking Water Regulations (MCL, MCLG) and EPA Secondary Drinking Water Standards (iron 0.3 mg/L, manganese 0.05 mg/L, sulfate 250 mg/L, pH 6.5 to 8.5, TDS 500 mg/L, non-mandatory).
- Assumptions
- The report is a US lab or utility report using EPA MCL and SMCL vocabulary; state limits can be stricter
- ND, MDL and RL definitions follow the Minnesota Department of Health lab-results guide; individual labs print their own reporting limits
- Hardness, hydrogen sulfide and tannins carry no federal MCL or SMCL and are not judged by a pass or fail report
- Method
- Limit types, secondary standard values, coliform reporting and radionuclide units read from EPA pages; ND, MDL, RL and PQL definitions from the Minnesota Department of Health guide; CFU from the Missouri state laboratory page, all on 2026-09-14. Nothing was tested.
- Primary source
- EPA, Secondary Drinking Water Standards: Guidance for Nuisance Chemicals (government or regulatory source)
- Facts verified
- Last updated
- Cite as
- OwnerSpec, "How to read a water test report: what ND, MDL, MCL and the units mean, and why a passed report can still taste, smell or stain", https://ownerspec.com/water/guides/how-to-read-a-water-test-report/, facts verified 14 September 2026.
Every figure above also appears, with its source, in the article. All sources · How OwnerSpec verifies numbers
Sources
- EPA, National Primary Drinking Water Regulations (MCL and MCLG definitions) (government or regulatory source)
- EPA, Secondary Drinking Water Standards: Guidance for Nuisance Chemicals (government or regulatory source)
- EPA, Table of Regulated Drinking Water Contaminants (nitrate and total coliform rows) (government or regulatory source)
- EPA Region 8, Addressing Total Coliform Positive or E. coli Positive Sample Results (government or regulatory source)
- EPA, Method Detection Limit: Frequent Questions (government or regulatory source)
- EPA, Lead and Copper Rule (15 ppb action level) (government or regulatory source)
- EPA, Radionuclides Rule (uranium, gross alpha and radium MCLs) (government or regulatory source)
- Minnesota Department of Health, How to Interpret Drinking Water Lab Results (PDF) (government or regulatory source)
- Missouri Department of Health and Senior Services, Heterotrophic Bacteria Plate Counts in Drinking Water (government or regulatory source)