Methods and limits
This page exists so you can disagree with us precisely. Every threshold below is a choice, and every choice is visible.
What is compared
Three public records: hourly SO2 from EPA monitors, hourly wind (measured at the monitor where it exists, modelled where it does not), and the emission events facilities file with the state. All three are put on one UTC clock before anything is compared, because the three sources use three different time conventions and a wrong offset would silently break every match.
Episodes
A run of hours at or above the higher of 5 ppb and this monitor’s own 99th percentile, with gaps of up to 3 hours absorbed into one episode. The threshold is per-monitor because a reading that is ordinary at one site is extraordinary at another.
Whether a facility was upwind
The wind must arrive from the facility’s direction, allowing for the width of the plant itself and for the uncertainty of the wind reading: 15° when measured on site, 25° when modelled, and 45° when the wind is lighter than 1.5 m/s. Hours below 0.5 m/s carry no direction at all and are excluded rather than counted as a miss.
Verdicts
| MATCHED | time, direction and pollutant all agree with a filed report |
| WEAK MATCH | a report overlaps but the fit is partial or indirect |
| UNEXPLAINED | no filed report matches this episode |
| REGIONAL | other monitors were high at the same time, so the cause is not local |
Verdicts come from explicit rules, not from a score and not from a model, so they can be explained to a resident and argued with by a regulator. The confidence score only ranks candidate reports against each other.
What the monitor saw of each report
| SEEN | the monitor recorded an episode matching this report |
| FAINT | a bump above background, below the episode threshold |
| UNSEEN WIND TOWARD | no bump, though the monitor was downwind for part of it |
| UNSEEN WIND AWAY | no bump, and the wind was not blowing toward the monitor |
| UNSEEN UNKNOWN | no bump, and the facility has no reliable coordinates |
| NO DATA | the monitor was not reporting for enough of the window |
What this cannot tell you
- No matching report does not mean an illegal release. Releases below the reportable quantity, permitted emissions in poor dispersion, mobile sources and sources outside the searched counties all look the same here.
- Hourly averages blur short releases. A sharp fifteen-minute plume and a slow three-hour build can produce the same hourly number.
- One monitor only sees what the wind brings it. “Unseen” often means “not downwind”, which is a statement about where monitors are placed.
- Releases from a flare or a tall stack go up. A large release can pass over a nearby ground monitor and barely register there.
- The direction pattern shows direction, not distance. Several facilities can sit along the same bearing.
- Facilities placed only by geocoding a street address cannot reach a matched verdict here: a mailing address is not a plant centroid.
Sources
| Source | Used for | Licence |
|---|---|---|
| EPA AQS pre-generated hourly data files | hourly SO2 and on-site wind | US public domain |
| TCEQ Air Emission Event Reports | self-reported emission events | Texas public records |
| Open-Meteo historical weather API | modelled hourly wind where no on-site wind exists | CC BY 4.0 |
| EPA FRS and ECHO | facility coordinates, joined on the TCEQ RN number | US public domain |
| OpenStreetMap via Overpass | industrial footprint polygons where available | ODbL |
Data built 2026-09-18 with pipeline 0.1.0, covering 2021 to 2025.