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

A scoping request is not checkout. It takes no payment, creates no order, and accepts no permit-ID file.

Who this pack is for

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 coveragePriceWhat happens
80% or higherUSD 249Full-list quote issued
50% to 79.99%USD 149Reduced quote issued
Below 50%NoneScope 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

FileWhat it containsWhat it does not claim
id_coverage.csvOne row per supplied ID, original input position, exact source-row count, and only PRESENT or MISSING.No permit-status conclusion.
source_rows.csvEvery 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 PDFExact rules, counts, field-population rates, retrieval time in UTC, source hashes, and EPA limitations.No interpretation of a blank or repeated field.
SHA-256 manifestA 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

  1. Request scope. Submit company, state, approximate count, deadline, and constraints—no IDs and no file.
  2. Confirm fit. Within one business day, receive an acceptance or decline. An acceptance includes separate upload instructions.
  3. 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.
  4. 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.
  5. Choose. The quote is valid for five business days. Payment is not automatic.
  6. 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.

Nothing has been checked. Your entries stay in this browser.

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

NeedFitNot a fit
Stable, hashed EPA bulk-file extract for a defined listYes
A reviewer who can interpret source fieldsYes
Every exact source row keptYes
A current authorization or expiration decisionNo
One supposedly authoritative row per IDNo
State portal data, permit text, names, addresses, or contactsNo
A live per-ID query API or recurring monitorNo

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