Prove every number you file.
We rebuild every number on your DMR from your own records, and block the ones we cannot prove.
- Filed cells agreed, real permits
- 1,186
- Calculation rules
- 16 declared
We rebuild every number on your DMR from your own records, and block the ones we cannot prove.
Every month, factories report how dirty their water was. The numbers come from four separate places: a permit PDF, a lab file, a flow meter, and email. No system holds all four, so the report is assembled by hand.
industrial sites hold a federal water permit. Every month they grade their own water on a form an officer signs under penalty of law.
EPA national compliance initiativeof them were in serious violation in 2023.
EPA national compliance initiativeof those got there by filling the form in wrong. EPA says that is the single biggest cause.
EPA DMR compliance advisoryPick a on the left. The right shows every step to that number, and where it stopped. This data is made up.
BOD5 selected. Chain complete, six of six links.
These are the sums EPA expects a permit holder to get right. Each one is a rule here, and each rule catches a mistake that has been filed before.
6 rules
Built, tested, and re-run against a whole real month. It came out with the number that was actually filed.
| Rule | What it catches | Form |
|---|---|---|
| Arithmetic mean | Wrong sample set, wrong divisor. | (Σx) ÷ n |
| Daily minimum | pH floors read as averages. | min(x) |
| Unit identity | Silent mismatch between lab and permit units. | assert no conversion |
| Revision policy | EX-102. Lab R1 said 41.0 against a 30 mg/L limit; R2 said 14.0. | newest verified supersedes held |
| Qualifier policy | A non-detect flattened to a number, or to zero. | preserve < and the reporting limit |
| Sample alias | EX-108. A real value that belongs to no reported cell. | point → permitted outfall |
10 rules
Built and tested. Not yet re-run against a month a regulator has already accepted.
| Rule | What it catches | Form |
|---|---|---|
| Daily maximum | A single excursion masked by an average. | max(x) |
| Mass loading | Concentration compliant, load in violation. Two limits, one sample. | lb/day = mg/L × MGD × 8.34 |
| Geometric mean | Coliform and E. coli. An arithmetic mean is always wrong here. | exp( (Σ ln x) ÷ n ) |
| Rolling window | A window straddling the month end. Which period owns the sample. | max over all 7 or 30 day windows |
| Percent removal | Unpaired influent and effluent sampling. | (Cin − Cout) ÷ Cin × 100 |
| Net versus gross | Intake credit claimed without permit authority, or not claimed when allowed. | Ceff − Cintake |
| Unit conversion | Thousand-fold errors. The most common catastrophic class. | µg/L ↔ mg/L · GPD ↔ MGD |
| Rounding | 29.95 becomes 30.0 and crosses a 30 mg/L limit. | permit decimal places |
| NODI selection | The wrong code is itself a reporting violation. | no discharge · no sample · below detection |
| Frequency compliance | Too few samples is a violation independent of every value. | required samples vs actual |
Form is the sum itself, written out. Each rule is a small program with a version number: same rows in, same answer out, every time.
Setup happens once: AI reads your paperwork, a person checks it, and the result is locked. Every month after that is arithmetic on locked files, with no AI involved.
AI runs at setup, never when a number is worked out.
Your permit PDF becomes a table. A lab file we have never seen becomes labelled columns, matched to the right .
Nothing is used until a person says yes. Then it is locked.
Nothing on this path is AI.
The sixteen rules above, run on the locked files. Same files, same numbers, every time.
That is why we can re-run your old months and check every one.
You keep the pen. We never sign anything.
When we cannot prove a number, we stop and say so. Someone on your team decides, and we record who chose and why.
Your signatory files it, the same way they do now.
You keep filing the way you do now. We rebuild the same numbers alongside you, and each step has a written pass mark you can hold us to.
Days 0 to 5
Send one permit, a year of lab results, your flow records, and two accepted . Just files. We plug into nothing.
Pass mark Your signatory agrees the permit table is right
Days 6 to 20
We rebuild twelve months you already filed and compare every to what you sent.
Pass mark Every number matches on all twelve months
Days 21 to 27
We run this month's numbers next to yours. Nothing we make goes near a regulator.
Pass mark Done inside 40 hours of your team's time
Days 28 to 30
You decide whether it saved time, and whether you could explain every number to an inspector a year later.
Pass mark You sign for a year, or we stop
These limits are why starting is a file drop and not a year-long IT project.