About the Data
What EPA ECHO is, what Parley normalizes, and how the data stays fresh.
What is EPA ECHO?
EPA ECHO (Enforcement and Compliance History Online) is the U.S. Environmental Protection Agency's public database of environmental compliance information. It tracks regulated facilities across the country — whether they're in compliance, what violations they've had, and what enforcement actions have been taken against them.
The dataset covers 3M+ active facilities regulated under four major environmental statutes. Every facility that holds an air emissions permit, discharges to waterways, handles hazardous waste, or operates a public water system appears in ECHO.
ECHO data is public record. Parley sources it directly from EPA's weekly CSV exports and normalizes it into a developer-friendly format.
The Four Programs
EPA regulates facilities under four major environmental statutes. Each facility may be subject to one or more programs.
Clean Air Act
Regulates air emissions from stationary sources like power plants, refineries, and factories. Tracks air permits, emissions limits, and compliance with National Ambient Air Quality Standards.
Clean Water Act
Governs discharges to surface waters through NPDES permits. Covers wastewater treatment plants, industrial dischargers, and stormwater facilities.
Resource Conservation and Recovery Act
Regulates hazardous waste from generation to disposal. Tracks waste handlers, treatment/storage/disposal facilities, and corrective actions.
Safe Drinking Water Act
Oversees public water systems and sets standards for drinking water quality. Monitors contaminant levels, treatment requirements, and health-based violations.
What Parley Normalizes
Raw EPA data is spread across multiple CSV exports with 130+ columns, inconsistent date formats, program-specific compliance codes, and no geospatial capabilities. Parley transforms all of this into a clean, consistent schema.
Every facility gets a normalized status: "in_violation", "no_violation", or "unknown" — regardless of which program flagged it.
Program-specific violation flags (HPV, SNC, FRV) are mapped to three tiers: HIGH, SIGNIFICANT, and MINOR across all programs.
A computed 0–100 score based on violation recency, frequency, penalty severity, active violations, and inspection gaps.
See scoring methodology →Latitude and longitude are indexed as PostGIS geography points, enabling radius and bounding-box facility searches.
Facilities are unified by FRS ID (Facility Registry Service), so a single facility query returns data across all four programs.
Dates, currency amounts, ZIP codes, and industry codes are all parsed into proper types — no more dollar signs in strings or dates in three different formats.
Data Freshness
Every API response includes a last_synced_at timestamp showing when the record was last refreshed from EPA.
Data Limitations
Parley sources data directly from EPA's published records. While we normalize and enrich the data, we inherit certain limitations from the upstream source. We believe in being transparent about what the data can and cannot tell you.
EPA does not track compliance status for all facilities. Smaller facilities, certain program types, and facilities that have never been inspected may show an “unknown” compliance status. This does not mean the facility is non-compliant — it means EPA has no compliance determination on record.
EPA's penalty data does not include a specific penalty assessment date. Parley derives the penalty date from the associated enforcement case's settlement or filing date. This is the closest available approximation but may not reflect the exact date the penalty was assessed.
EPA records violations using program-specific codes and flags (HPV, SNC, FRV) that differ across the four environmental programs. Parley maps these to a unified three-tier scale (HIGH, SIGNIFICANT, MINOR) using documented EPA definitions. The original program-specific flags are preserved in the source data.
A small number of facilities in EPA's database do not have latitude/longitude data. These facilities are searchable by name, state, and FRS ID, but will not appear in geospatial (radius or bounding box) queries.
ECHO data depends on self-reporting by facilities and inspection activity by EPA and state agencies. Facilities that are rarely inspected may appear compliant simply due to lack of oversight. The compliance score accounts for inspection gaps, but the underlying data is only as complete as EPA's records.
Some enforcement cases in EPA's records lack a status or outcome description, particularly older cases or cases still in progress. These will appear without a status badge in API responses.
Parley's compliance scores and data are provided for informational purposes only and do not constitute legal, regulatory, or compliance advice. Always verify critical findings against EPA's official records for regulatory or legal use.
EPA ECHO Direct vs. Parley
You can query EPA ECHO directly, but the developer experience has significant friction. Here's what Parley changes:
| Feature | EPA ECHO API | Parley |
|---|---|---|
| Authentication | QID-based sessions | API key header |
| Response format | Inconsistent XML/JSON | Consistent JSON |
| Schema | 130+ columns, program-specific | Unified normalized schema |
| Geospatial search | Not available | Radius + bounding box |
| Compliance scoring | Not available | 0-100 computed score |
| Pagination | Complex QID flow | Cursor + offset pagination |
| Webhook alerts | Not available | Real-time notifications |
| Rate limits | Undocumented | Transparent, per-tier limits |