Public evidence index / NPDES field normalization
State NPDES portfolio field normalization
Put a reviewable EPA source extract behind your permit-ID list
For environmental consulting teams with a qualified reviewer but no spare data-engineering time. We match 25 to 250 public NPDES IDs against one dated EPA ECHO ICIS-NPDES bulk snapshot, preserve every source row, and stop before regulatory interpretation.
Start a scoping request- USD 249list price for one state and snapshot
- 25–250unique public NPDES IDs
- Quote firstfull-list coverage before payment
- 2 business daysdelivery after same-day payment
A scoping request is not checkout. It takes no payment, creates no order, and accepts no permit-ID file.
Who this pack is for
- You are an environmental consulting project manager coordinating permit review work for one state.
- You already have a qualified compliance reviewer who can evaluate records, but no spare data-engineering capacity to process EPA bulk files.
- Your list contains 25 to 250 unique public NPDES IDs, rather than a multi-state portfolio.
- You need a source-bound file that a reviewer can inspect, not a summary that must be taken on faith.
Timeline boundary: this is not a fit if you need delivery sooner than three business days after a syntactically valid file is received.
Price follows the full-list result, not a small sample
The same bulk-file pipeline runs across the entire accepted list before any invoice. You receive the aggregate numerator, denominator, retrieval time, source hashes, and exact quote. You do not receive per-ID facts before payment.
| Exact-match coverage | Price | What happens |
|---|---|---|
| 80% or higher | USD 249 | Full-list quote issued |
| 50% to 79.99% | USD 149 | Reduced quote issued |
| Below 50% | None | Scope declined; no invoice |
Exact means exact. Surrounding whitespace is removed and letters are uppercased before equality is tested against NPDES_ID in ICIS_PERMITS.csv. Duplicates, malformed IDs, mixed state prefixes, and lists outside the cap are rejected before the coverage run. There is no fuzzy matching, partial credit, or silent typo correction.
The quote is bound to the SHA-256 of your exact input file and the source ZIP and CSV hashes. It remains valid for five business days. Changed IDs require a new quote. A later EPA snapshot or another state is a separate purchase.
What you send—and what you never send here
The public scoping form asks for company, state, approximate ID count, deadline, and handling constraints. It does not accept permit IDs, roster rows, files, names, addresses, contacts, credentials, confidential documents, or private data.
We accept or decline that coarse scope within one business day. If accepted, you receive separate upload instructions. Once a syntactically valid ID file arrives, the aggregate quote is due within one business day. If the quote is paid the same day, the pack is delivered no later than the end of the second following business day.
Four files, one closed method
| File | What it contains | What it does not claim |
|---|---|---|
id_coverage.csv | One row per supplied ID, original input position, exact source-row count, and only PRESENT or MISSING. | No permit-status conclusion. |
source_rows.csv | Every matching ICIS_PERMITS source row, every repetition preserved. Fields include NPDES_ID, VERSION_NMBR, EPA status code and description, original issue, effective and printed expiration dates, permit type, and application dates where present. | No row labeled latest, current, controlling, authoritative, or legally effective. |
| Methods and coverage PDF | Exact rules, counts, field-population rates, retrieval time in UTC, source hashes, and EPA limitations. | No interpretation of a blank or repeated field. |
| SHA-256 manifest | A digest for every delivered file. | No claim that the source itself is complete or correct. |
One correction round within 14 days covers transcription, normalization, filtering, matching, row-preservation, count, and manifest errors against the documented method. It does not turn a later source refresh into a free rerun.
How the engagement runs
- Request scope. Submit company, state, approximate count, deadline, and constraints—no IDs and no file.
- Confirm fit. Within one business day, receive an acceptance or decline. An acceptance includes separate upload instructions.
- Pin the input. A valid list of 25 to 250 unique one-state IDs is hashed and run against a retained, dated EPA source snapshot.
- See the quote. Within one business day, receive aggregate exact-match coverage, source retrieval time, hashes, and the price tier. No per-ID output is released yet.
- Choose. The quote is valid for five business days. Payment is not automatic.
- Receive the pack. Same-day payment starts a delivery clock ending on the second following business day.
Check the input shape before you request scope
This browser-local checker makes no network request and stores nothing. It checks line count, duplicate lines, a two-letter state prefix, and the nine-character ID shape. It cannot tell whether an ID exists, whether EPA carries it, whether any field is current, or what coverage tier a real file will reach.
A fictional example
Illustration only. These identifiers, organization, counts, and results are fictional and do not describe a customer or permit.
Suppose Fictional Example Consulting submits 140 unique public IDs for one state. The full-list run finds one or more exact ICIS_PERMITS rows for 118 IDs, so the aggregate coverage is 84.3% and the quote is USD 249. One fictional matched ID has three repeated source rows. All three travel into source_rows.csv; none is selected as controlling. Another fictional ID has no exact row and receives MISSING in id_coverage.csv. That token says only that this exact ID was absent from this exact dated CSV under this exact method.
Method and source rights
Primary-source method reviewed 2026-08-09. The paid quote pins its own later retrieval time and hashes.
The pack uses only the U.S. EPA ECHO ICIS-NPDES national bulk ZIP and its ICIS_PERMITS.csv. It does not use a state permitting portal, state dataset, permit PDF, private vendor, or per-ID lookup API.
EPA documents the download as a subset containing only certain data elements. EPA also warns that repeating data fields can repeat key fields. We preserve every exact matching ICIS_PERMITS row rather than interpreting or collapsing those repetitions.
Every source ZIP and source CSV is hashed at retrieval and named in the delivery manifest. The EPA catalog marks ICIS as public access and links EPA's data-licensing page. That page says EPA-produced data are public domain unless otherwise specified and makes no warranty about accuracy or utility.
Primary sources: EPA ECHO Data Downloads ICIS-NPDES Download Summary and Data Dictionary NPDES Search Criteria Help EPA Data Licensing Information 40 CFR 122.6
Fit and not fit
| Need | Fit | Not a fit |
|---|---|---|
| Stable, hashed EPA bulk-file extract for a defined list | Yes | |
| A reviewer who can interpret source fields | Yes | |
| Every exact source row kept | Yes | |
| A current authorization or expiration decision | No | |
| One supposedly authoritative row per ID | No | |
| State portal data, permit text, names, addresses, or contacts | No | |
| A live per-ID query API or recurring monitor | No |
Frequently asked questions
What does MISSING mean?
MISSING means absent from that dated CSV under the exact rule. It never means no permit, no coverage, or no authorization. A data gap, different identifier, source lag, or an EPA field-selection boundary can produce the same token.
Do repeated source rows get collapsed?
No. Every exact matching ICIS_PERMITS row is retained. The coverage file reports the row count, and the source-row file carries the rows. We do not select a highest version or label any row current.
Can a permit remain in effect after a printed expiration date?
Under 40 CFR 122.6, some EPA-issued permits can continue in force after expiration when the federal rule's conditions are met. Continuation for a state-administered program depends on state law. This pack does not determine whether either applies.
Why does the quote use the whole list?
A small sample can misstate the coverage of a finite portfolio. The full list determines the aggregate quote before payment, while the per-ID result remains part of the paid deliverable.
Who owns the final review decision?
Your qualified compliance reviewer. The pack prepares and binds source fields; it does not replace permit text, the issuing authority, professional judgment, or legal advice.
Read this boundary before requesting scope
This is source-field preparation for a qualified reviewer, not compliance or legal advice. A printed expiration date is a source field, not a conclusion that permit coverage ended.
No claim is made about current authorization, administrative continuation, legal status, renewal deadline, enforcement, completeness, correctness, or recommended action. MISSING means only absent from one dated CSV under the published exact-match rule—never that no permit exists.
40 CFR 122.6 describes circumstances in which some expired EPA permits can continue in force. State-program continuation depends on state law. The source ZIP is a published subset with repeating fields and no warranty. Your reviewer must consult the issuing authority, applicable law, and permit documents for any consequential decision.
Use the free path when it is enough
EPA ECHO permit search supports multiple-ID search and CSV export, and it is free. A technical team can also reproduce this work from EPA's free bulk download and data dictionary. Do not buy this pack if either path meets your need.
The paid value is full-list exact-match accounting, preservation of every source row, a stable client-file schema, source hashes, a manifest, and documented methods. The data are not exclusive.
Request a one-state scope review
Send only company, state, approximate count, deadline, and handling constraints. The form takes no payment, accepts no permit IDs or files, and creates no order.
Request the Field Normalization Pack