Determine which stormwater permit governs a site
determine_permitDetermine which NPDES stormwater permit governs a construction or industrial site, and what that permit requires of it. Returns coverage ("required", "not_required" or "verify") with the reason, the governing permit and the version the answer was computed against, the jurisdiction and its permitting authority, the permit's eligibility screens, the requirements that attach to THIS site (each with the permit section it came from and a because explaining why it applies here rather than in general), the step-by-step derivation, and notices. ALWAYS surface notices verbatim to the user: it carries the preparer-credential warning, any coverage gap, and the fact that we do not perform the physical site inspections the permit requires. Deterministic, no model in the path. Requirements come back ONLY where we hold the governing permit's rules; where a state permit is identified but unread, requirements is empty and a notice says so rather than substituting the federal permit's numbers, so never treat an empty list as "nothing required". Free, no API key needed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| acres | No | Alias for disturbedAcres. | |
| state | Yes | Two-letter state, territory or DC code, e.g. "CA". | |
| endDate | No | ISO yyyy-mm-dd. Recorded on the determination. | |
| activity | Yes | Required. Construction and industrial sites are governed by different permits and neither is assumed. "industrial" returns coverage "verify": EPA's Multi-Sector General Permit expired on 28 February 2026 and new operators cannot currently obtain coverage. | |
| startDate | No | ISO yyyy-mm-dd. Recorded on the determination. | |
| sectorCode | No | MSGP industrial sector code. Industrial sites only. | |
| aridClimate | No | Arid, semi-arid or drought-stricken area, which may allow a reduced inspection frequency during the seasonally dry period. | |
| onTribalLand | No | EPA retains NPDES authority in Indian country even inside a state that runs its own programme. | |
| disturbedAcres | No | TOTAL acres the project will disturb over its life. This is what the 1-acre coverage threshold is measured against. `acres` is accepted as an alias. | |
| federalFacility | No | EPA's permit covers federal facilities in some delegated states. | |
| partOfLargerPlan | No | Whether the project is part of a larger common plan of development or sale. Defaults to false. Send it explicitly: a half-acre lot inside a 40-acre subdivision IS covered, and this is the most commonly missed trigger in the permit. | |
| dischargesToTier2Water | No | Discharges to a Tier 2, 2.5 or 3 water. Same tri-state handling as dischargesToImpairedWater. | |
| dischargesToImpairedWater | No | Discharges to a sediment or nutrient impaired water. OMIT IT if you do not know: it is never assumed false, and the determination reports the answer as unknown instead. It changes both the inspection frequency and the stabilisation deadline. | |
| maxDisturbedAcresAtOneTime | No | Greatest acreage disturbed AT ANY ONE TIME. A different quantity from disturbedAcres, and the one the stabilisation deadline actually turns on (2022 CGP Table 2): a project over five acres in total still gets the longer 14-day deadline if it phases the work so no more than five acres are open at once. OMIT IT if you do not know, and the determination assumes an unphased site and says so, rather than asserting phasing it was not told about. |