Where the numbers come from. CHATTER does not measure anything itself. Every value on this site is computed from public monitoring records kept by two agencies.
The cancer-risk and other-health-risk pollutants come from the Texas Commission on Environmental Quality’s (TCEQ) automated gas chromatograph (AutoGC) monitors at Beaumont-Downtown and Nederland 17th Street, both in Jefferson County, which measure a fixed list of volatile organic compounds every hour, around the clock. CHATTER downloads the hourly readings from TCEQ’s data export and stitches successive downloads into one record per monitor; where two downloads overlap, the newer one wins, because TCEQ revises readings after the fact.
The EPA criteria pollutants — ozone, fine particles (PM₂.₅), nitrogen dioxide and sulfur dioxide — come from the continuous regulatory monitors at ten sites in Jefferson and Orange counties, whose daily values are retrieved from EPA’s Air Quality System (AQS). No single site measures all four pollutants, so each location card shows only what that site measures. AQS publishes with a lag of weeks to months, so the criteria section usually ends earlier than the AutoGC sections; its column headings say which month the data run through.
How a heatmap cell is calculated. For an AutoGC pollutant, CHATTER takes every valid hourly reading in the period (a calendar year, the year to date, or the last 365 days), averages them, and divides that mean by the pollutant’s EPA screening level — the concentration below which long-term exposure is not expected to raise health concerns. A cell of 1.00x means the average sat exactly at the screening level. The monthly column works the same way one week at a time: each Sunday-to-Saturday week is averaged first, and the month’s cell is the average of its weeks. Cancer-risk cells use the cancer screening level; other-health-risk cells use the non-cancer screening level for the same compound, and a health-effect total adds up the ratios of every pollutant linked to that effect.
For a criteria pollutant the cell is a single-period design value — the particular statistic EPA compares against each National Ambient Air Quality Standard, such as the fourth-highest daily maximum eight-hour ozone concentration or the 98th percentile of daily fine-particle readings — divided by that standard. EPA’s official design values average three years; CHATTER’s are for one period at a time, so they signal where a closer look is warranted rather than declare an area in or out of attainment.
One mark shows when a number rests on thinner ground: an asterisk after a value means that only 60–75 % of the possible hourly readings were available for that period (below 60 % the cell is left blank, and every figure with an asterisk carries a footnote saying so). A criteria site is blank for any period in which it did not report that pollutant.
Every value on this site, in one file. CHATTER_BeaumontPortArthur_values.csv holds one row for every heatmap cell — monitor, pollutant (or health effect, or total), and period — together with the summary statistics it was computed from. It is regenerated from the same code that draws the pages, so a row in the file cannot disagree with a cell on the site. It opens in Excel, R or Python.
Each row carries the group (Cancer Risk, Other Health Risks, EPA Criteria Pollutants), the monitor and its AQS site number, the county, the period and its calendar bounds, and value_shown, the number in the cell. For AutoGC pollutants it adds the mean concentration in ppb, the screening level it was divided by, the number of valid hourly readings behind the mean (for the monthly column, the readings summed over the weeks averaged and how many weeks there were), the resulting completeness and whether the cell carries the asterisk. For criteria pollutants it adds the design value in the standard’s own units, the standard, and the statistic used. Totals are marked as such and carry the displayed sum and the lowest completeness among the cells summed.
How each statistic is defined. CHATTER_statistics_documentation.xlsx is the reference sheet: every statistic that appears on the site, its formula, and where in the code it is computed.
Screening levels. EPA Regional Screening Levels for resident air, expressed in ppb (Standard_Param_v6.csv); cancer values at a one-in-a-million target risk, non-cancer values at a hazard quotient of 1. The table lists nineteen compounds; two of them (benzene and 1,3-butadiene) carry a cancer screening level, and the other-health-risk tabs show the thirteen that the monitors measure and that are linked to a listed health effect.
Data completeness. An AutoGC reports one reading per hour. Completeness for a period is the number of valid hourly readings divided by the hours in the period (a calendar year, or the days elapsed so far for the current year; 168 for a week). A period below 60 % completeness is not summarised and its cell is blank; between 60 % and 75 % it is shown with an asterisk. The same rule applies to the year, the week and the 365-day window; the monthly cell carries the average completeness of its weeks, and a Total row the lowest completeness of the cells it sums. The completeness of every cell is in the download file. TCEQ’s non-numeric quality flags (for example “ST”, “BL”) are not counted as valid readings.
Periods. Calendar years, the year to date, a rolling 365 days, and the most recent complete calendar month, all measured back from the data cutoff — the last day on which both AutoGC monitors have a numeric reading. Weeks run Sunday to Saturday, and the monthly column is the month of the last complete week at the cutoff. Times are Central Standard Time as TCEQ reports them. The criteria section is truncated at the same cutoff, but because AQS lags, its year-to-date, 365-day and monthly columns end on the last day for which any criteria site has data; the month is printed in the column heading.
Statistic displayed. The arithmetic mean of the period’s hourly readings (for the monthly column, the mean of the weekly means). A 95 % upper confidence limit of the mean (Student’s t) is also computed and kept in the working tables but is not displayed.
Criteria pollutants. Daily values from AQS: the 24-hour PM₂.₅ value (parameter 88101), the daily maximum 8-hour ozone average, and the daily 1-hour maxima for NO₂ and SO₂, primary monitors only; where a site runs two instruments for the same pollutant the higher daily value is used. Single-period design values: 98th percentile of the daily values (PM₂.₅ against 35 µg/m³; NO₂ against 100 ppb), 99th percentile (SO₂ against 75 ppb), and the fourth-highest daily maximum (ozone against 0.070 ppm).
Code. The site is a Quarto project; every table is built by one Python module per pollutant group, and the pages only draw them. The file above is written by the same modules.