The Enforcement and Compliance History Online (ECHO) system provides a compendium of the effluent parametric limits that are identified in the NPDES permits issued to entities (municipal, federal, and commercial facilities) that discharge pollutants into the navigable waters of the United States. These limits identify what pollutants can be discharged and how much of each pollutant can be discharged as well as certain water conditions such as pH and dissolved oxygen content that must be maintained at the locations where the discharges occur. At EPA, the official source of NPDES limit data is stored in the Office of Enforcement Compliance Assurance, Integrated Compliance Information System (ICIS), where it is extracted by ECHO.
The national permit limit dataset is comprised of all permit limit information in ICIS-NPDES until the present day. The zip file contains one CSV file named NPDES_LIMITS.csv. Users also have the option of downloading permit data for a specific federal fiscal year and jurisdiction.
The file is updated each week, according to the ECHO refresh schedule.
The data contained in the download file is comprised of selected data columns from the following ICIS tables:
|Element Name||Data Type||Length|
The following is an alphabetical list of the data elements that appear in the NPDES Permit Limit dataset.
ACTIVITY_ID - The unique identifier for an activity performed at or related to a particular site.
APR - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
AUG - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
DEC - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
EXTERNAL_PERMIT_NMBR - The unique identifier for a permit.
FEB - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
JAN - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
JUL - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
JUN - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
LIMIT_BEGIN_DATE - The date on which a limit starts being in effect for a particular parameter in a limit set.
LIMIT_END_DATE - The date on which a limit stops being in effect for a particular parameter in a limit set.
LIMIT_FREQ_OF_ANALYSIS_CODE - The frequency with which the permittee must analyze the sampled data. The general format is XX/YY, where XX=number of times sampled and YY=Period of time sampled. For a list of all codes and descriptions, download the Frequency of Analysis Reference Table (CSV) (4.8 K).
Note: When opening the file in Excel, values may display as dates due to the formatting (E.g., "01/30" describes monthly frequency sampling, but may display in Excel as "30-Jan".). Values should display correctly when opening as a text file.
LIMIT_ID - The unique identifier for a limit parameter record.
LIMIT_SAMPLE_TYPE_CODE - The sampling method required by the permit to be used to provide values on the DMR for the limit. For a list of all codes and descriptions, download the Sample Type Reference Table (CSV) (1.7 K).
LIMIT_SEASON_ID - A number to indicate one of four subdivisions of the year. It is used to differentiate seasonal limits for the same parameter within a single limit begin and end date. The default value is 0.
LIMIT_SET_DESIGNATOR - The alphanumeric field that is used to designate a particular grouping of parameters within a limit set.
LIMIT_SET_ID - The system-generated unique identifier for a limit set.
LIMIT_SET_SCHEDULE_ID - The system-generated unique identifier of the Limit Set Schedule.
LIMIT_SET_STATUS_FLAG - The status flag indicating whether the Limit Set is Active (A) or Inactive (I). For example, for the current version of the permit (VERSION_NMBR = 0), if the Limit Set Status flag is Active, then limits or monitoring requirements with that flag are active and ICIS-NPDES is expecting that data to be reported. If it is Inactive, then those limits or monitoring requirements are no longer in effect.
LIMIT_TYPE_CODE - The unique code that indicates whether a limit is an enforceable limit (ENF) or an alert limit (ALR). Alert limits do not receive effluent violations.
LIMIT_UNIT_CODE - The code representing the unit of measure applicable to quantity or concentration limits and measurements as entered by the user.
LIMIT_UNIT_DESC - The short description of the unit of measure applicable to limit or DMR values.
LIMIT_VALUE_ID - The system-generated unique identifier for the Limit Value.
LIMIT_VALUE_NMBR - The actual limit value number from the permit or Enforcement Action Final Order.
LIMIT_VALUE_QUALIFIER_CODE - The unique code identifying the limit value operator (e.g., <, >, =, T, E). For more information on qualifier code definitions see table below.
|<=||Less Than or Equal To|
|>=||Greater Than or Equal To|
|T||Too Numerous to Count|
LIMIT_VALUE_STANDARD_UNITS - The limit value expressed in standard units as calculated by the system.
LIMIT_VALUE_TYPE_CODE - The indication of the limit value type (e.g., Quantity 1, Concentration 2).
MAR - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
MAY - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
MONITORING_LOCATION_CODE - The code that the monitoring location at which the monitoring requirement (and effluent limit if limited) applies. One parameter may have several monitoring location requirements pertaining to the same permitted feature. Valid code values are:
|3||Intake Public Water|
|4||Pretreatment, Process Complete|
|7||Intake from Stream|
|8||Other Treatment, Process Complete|
|9||Phosphate Removal, Process Complete|
|A||Disinfection, Process Complete|
|B||Prior to Disinfection|
|C||Nitrogen, Removal Complete|
|D||Tertiary/Advanced Process Complete|
|E||Secondary/Biological Process Complete|
|F||Primary/Preliminary Process Complete|
|G||Raw Sewage Influent|
|I||Intake from Well|
|J||Intermediate Treatment, Process Complete|
|N||In Aeration Unit|
|X||End of Chlorine Contact Chamber|
|Y||Effluent Gross (Supplementary)|
|IM||Internal Monitoring Point|
|PI||Prior to Irrigation|
|PR||Prior to Reuse|
|LA||Land Application Soil|
NMBR_OF_SUBMISSION - The attribute stores the number of months for submitting the DMRs for the limit set (e.g., monthly = 1, quarterly = 3, semi-annually = 6). This data element will be blank for Unscheduled Limit Sets. Must be greater than or equal to NMBR_OF_REPORT and be divisible by NMBR_OF_REPORT.
NMBR_OF_REPORT - The number of months in the monitoring period covered by the DMR (e.g., monthly = 1, quarterly = 3, semi-annually = 6).
NOV - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
OCT - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
OPTIONAL_MONITORING_FLAG - The flag allowing users to indicate that monitoring is optional but not required (i.e., effluent violation generation will be suppressed for optional columns).
PARAMETER_CODE - The unique code identifying the parameter being limited and/or monitored.
PARAMETER_DESC - The description of the parameter code.
Download the Parameter Reference Table (CSV) (218 K) for a complete list of parameter codes and descriptions and corresponding pollutant codes. Additional fields in this table include:
- SNC_FLAG - The flag indicating whether the parameter is within significant noncompliance (SNC) group 1 or 2 or blank for purposes of calculating RNC.
- PERCENT_REMOVAL_FLAG - The flag indicating whether the parameter is a percent removal parameter for determining the formula to use for calculating the percent exceedance for the parameter.
- PERCENT_EXCEEDENCE_FLAG - The flag indicating whether percent exceedance can be calculated for the parameter.
PERM_FEATURE_ID - The unique system identifier of a permitted feature.
PERM_FEATURE_NMBR - The identifier assigned for each location at which permit conditions are being applied.
PERM_FEATURE_TYPE_CODE - The code indicating the type of permitted feature (e.g., External Outfall, Sum). Valid code values are:
|ARW||Receiving Water (Ambient)|
|DOF||Discharge to Offsite Facility|
|LAS||Land Application Site|
|SDS||Surface Disposal Site|
SEP - A "Y" indicates the permit limit applies during this calendar month. See also ALL_MONTHS_LIMIT.
STANDARD_UNIT_CODE - The code representing the standard unit of measure applicable to quantity or concentration limits and measurements as entered by the user.
STANDARD_UNIT_DESC - The short description of the standard unit of measure applicable to limit or DMR values.
STATISTICAL_BASE_CODE - The code representing the unit of measure applicable to the limit and DMR values entered by the user (e.g., 30-day average, daily maximum). For a list of all codes and descriptions, download the Statistical Base Code Reference Table (CSV) (10 K).
STATISTICAL_BASE_TYPE_CODE - The code indicating whether the statistical base code is a minimum, average, or maximum for purposes of calculating compliance against the limit value. For a list of all codes and descriptions, download the Statistical Base Code Reference Table (CSV) (10 K).
STAY_TYPE_CODE - The unique identifier of the type of stay applied to a limit (e.g., X, Y, Z), which indicates whether the limits do not appear on the DMR at all, are treated as monitor only, or have a stay value in effect during the period of the stay. States and Regions use this when a facility is subject to interim limits due to being under the terms of a compliance schedule. The temporary interim limit is entered in STAY_VALUE_NMBR.
|X||Suppress Effluent Violations|
|Y||Suppress DMR Non-Receipt Violations|
|Z||Use Stay Value|
STAY_VALUE_NMBR - The numeric limit value imposed during the period of the stay for the limit; if entered, during the stay period, the system will use this limit value for calculating compliance rather than the actual limit value.
VERSION_NMBR - The version of the permit when a modification or reissuance is applied to the permit. The current permit version is indicated by "0" and previous version by "1".