Why you can trust the numbers

No AI reads or interprets your results. Here's what actually happens to your report, and why the comparison is reliable.

Your file stays on your device

Your lab report is read directly in your browser. Nothing is uploaded. Only the matched readings, the specific numbers, ever reach our server.

Each reading is matched, not interpreted

Labs label the same test differently from one report to the next, "Nitrate as N," "NO3-N," "Nitrate-Nitrogen." We match each line to the contaminant it's reporting and pull the number next to it. It's a lookup against a known list, not a model guessing at meaning, so the same input always gives the same result.

Every match is checked against a published EPA number

Each reading is compared to its EPA Maximum Contaminant Level, Lead and Copper Rule action level, Secondary Standard, or Health Advisory. See the full table on reference levels, with citations on sources.

When a line isn't recognized

A label format we haven't seen yet shows up as "unmatched," never as a silent skip or a guess. Send it through contact and we can usually add it within a day.

What this is, and isn't

This reads a document you already have and flags which numbers sit above a published federal reference point. It isn't a certified lab, a test kit, or medical advice. A result that concerns you, especially bacteria, nitrate, arsenic, or lead, is worth a confirmatory test from a state-certified lab. See where to get tested.

Want the full technical detail, library names, matching logic, and all? It's documented on sources.