Flow & compliance
Plant comparison
One row per treatment plant across the full reporting window. Excursion counts identify days where reported effluent values cleared the SPDES permit envelope (pH outside 6.0–9.0; settleable solids above 0.1 mL/L). Censored (“<0.1”) settleable readings are treated as 0.05 mL/L for charting and excursion-detection purposes. Implausibly large settleable readings (> 5 mL/L, traced to extractor errors against the March 2025 DMR) are filtered out before counting excursions.
| Plant | Days | Median flow (MGD) | Max flow (MGD) | Mean effluent pH | BOD5 sample days | SS sample days | pH excursions | Settleable excursions |
|---|---|---|---|---|---|---|---|---|
| 30 | — | — | 7.67 | 2 | 1 | 0 | 0 | |
| Red Hook Commons | 456 | 0.006 | 0.056 | 7.68 | 23 | 17 | 0 | 8 |
| Village WWTP | 509 | 0.031 | 0.066 | 7.47 | 20 | 15 | 0 | 0 |
Daily flow with compliance events overlay
Daily average flow per plant (left axis, MGD) and precipitation (right axis, inches; reversed). Vertical red dashed lines mark DEC notices of violation, inspections, noncompliance reports, consent-order issuances, and other compliance-action filings — so you can see at a glance which flow events triggered which agency response.
Showing 19 dated compliance events. Source documents below — click any line label or recent-events list to open the filing.
Most recent 8 compliance documents
- 2026-02-26DEC compliance action2026 02 26 NYSDEC NOV
- 2025-12-16DEC compliance actionNYSDEC Inspection 2025 12 16
- 2025-11-01DEC compliance actionNovember 2025 Sewer Report
- 2025-08-01DEC compliance action2025 08 01 Date of Noncompliance Report 2025 09 28
- 2025-07-25DEC consent order20250725 DEC Consent Order Ver 2
- 2025-07-15DEC compliance actionNYSDEC Inspection 2025 07 15
- 2025-07-02DEC consent order20250702 DEC Consent Order
- 2025-06-27DEC compliance actionUpdate 6 27 25
Permit-excursion timeline
One row per compliance parameter; one dot per day a reported value cleared the SPDES limit. Useful for spotting clusters (e.g. multiple excursions in a single week) without scrolling through the daily series. BOD5 and suspended-solids permit limits are not yet wired in — those rows are placeholder and will populate once the SPDES permit numeric limits are added to PERMIT_LIMITS.
Daily flow with precipitation
Same flow series as above, without the compliance overlay, for cleaner visual reading of wet-weather inflow events. Wet-weather inflow shows up as flow spikes following rain bars — a leading indicator of inflow & infiltration into the collection system and a sizing input for any Phase II expansion.
Gaps in the lines mean no DMR row was filed for that plant on that date (not a zero). Precipitation is reported in the same DMR; when both plants’ filings carry a value we take the larger of the two.
Operator-reported precip vs NOAA — record-keeping credibility
Every analytical chart on this page that involves rainfall uses NOAA observations from station US1NYDT0024(RED HOOK 1.2 NNE, 1.4 mi from the Village). The operator's gauge readings on the DEC monthly forms are kept around for this credibility check only — they are not the basis of any of the wet-weather analyses below. This chart is the comparison.
Each point is one day where both sources reported. Perfect agreement would put every point on the dashed y = x line. Off-diagonal points (red, > 0.5″ disagreement) are days where one source recorded a major storm and the other missed it entirely — almost always because the operator did not read the gauge on that day. Days where only one source reported are tallied at the bottom; the operator-side shortfall is the larger one.
137 dates have NOAA data but no operator reading — show first 5
- 2024-09-01: NOAA recorded 0.00″
- 2024-09-02: NOAA recorded 0.00″
- 2024-09-03: NOAA recorded 0.00″
- 2024-09-04: NOAA recorded 0.00″
- 2024-09-05: NOAA recorded 0.00″
Stormwater memory (antecedent rain → flow)
For each candidate window, total rainfall over the last N days vs same-day plant flow, expressed as Pearson r. The highest-correlated window per plant is that plant's effective stormwater memory — how far back rainfall is still visibly affecting today's flow.
A peak at 1–2 days means rainfall mostly enters through open inflow points (cross-connected catch basins, leaky manhole covers) and clears quickly. A peak at 5–14 days means stormwater enters through subsurface infiltration and the soil-saturated pipes keep delivering elevated flow for a week-plus after the storm. Single-day cross-correlation is too noisy to use here because most days have zero rain — the cumulative-window approach is the standard I&I framing.
Rainfall-window response surface (by operator era)
Each cell shows the Pearson correlation between "cumulative rain over days [d − start, d − end]" and today's plant flow. The 1D antecedent-window chart above is just the bottom-left column (end = 0); this view also shows what happens when you exclude the most recent days from the window. Each plant gets two panels — before and after the April 1, 2025 contract-operator handoff — using identical color scales so the eye can compare directly where the "hot zone" of rainfall response sits in each era.
All-time pattern (using NOAA observations): Red Hook Commons' hot cells cluster along the bottom row at wide cumulative windows — peak r ≈ 0.16 at the full 14-day cumulative window, consistent with groundwater-driven infiltration. Village WWTP shows essentially no rainfall–flow correlation at any window (peak |r| < 0.05). If the hot zone moves between eras, that's evidence either the collection-system leakage profile changed, or the way flow is being measured / reported shifted across the boundary.
Caveat: peak |r| even on the all-time data tops out at ~0.16 (Commons). Rainfall explains a small share of daily flow variance — most variance is operational and below the resolution of monthly DMR data. A sub-daily flow study would be needed to characterise the response further. Per-era cells with fewer than n=30 paired observations are omitted (gray). The earlier version of this chart used operator-reported precip and showed a weak Village fast-inflow signal that turned out to be a record-keeping artifact — see the validation chart above for why we switched to NOAA.
Red Hook Commons
Before 2025-04-01— peak window: last 3d, r=0.17
Hover any cell for details. Cells below n=30 are omitted. The bottom row (end = 0) is "cumulative rain ending today"; the diagonal (start = end) is "single-day rain at lag k".
On/after 2025-04-01— peak window: 5–14d ago, r=-0.09
Hover any cell for details. Cells below n=30 are omitted. The bottom row (end = 0) is "cumulative rain ending today"; the diagonal (start = end) is "single-day rain at lag k".
Village WWTP
Before 2025-04-01— peak window: last 13d, r=0.33
Hover any cell for details. Cells below n=30 are omitted. The bottom row (end = 0) is "cumulative rain ending today"; the diagonal (start = end) is "single-day rain at lag k".
On/after 2025-04-01— peak window: 12–14d ago, r=0.12
Hover any cell for details. Cells below n=30 are omitted. The bottom row (end = 0) is "cumulative rain ending today"; the diagonal (start = end) is "single-day rain at lag k".
Wet-weather sensitivity at each plant's preferred window (by operator era)
Daily flow versus cumulative rainfall over the window the heatmap above identified as each plant's strongest rainfall response — same window for both eras, so the comparison is apples-to-apples on the x dimension. Three regressions overlaid per plant: all-time (neutral), pre- April 2025 (gray dashed), and post-April 2025 (plant color, solid).
Reading the comparison: a materially flatter post slope on the same window means either the system's wet-weather sensitivity actually decreased (sewer rehabilitation, different storm frequency), or the way flow is being measured / reported changed across the operator handoff. A steeper post slope would suggest the opposite. The slope value (MGD/in) and R² for each fit appear in the legend.
Red Hook Commons— x = cumulative rain over days 1–4 ago
Village WWTP— x = cumulative rain over the last 15 days
Pump-out days vs typical days: was it rainier than usual?
For each QuickBooks "sludge removal" pump-out date, we compute cumulative rainfall over the days preceding it. We compare that to the same statistic for every non-pump-out day in the same date range. If pump-outs are functionally rainwater removal, pump-out days should sit in the wetter tail of the rainfall distribution; if not, the two distributions overlap.
The Mann–Whitney U test reported below the chart is a rank-based comparison of medians — robust to the small event sample and the skewed shape of the rainfall distribution. Two windows are shown to check whether the answer is window-sensitive: 7 days (matches the fast-inflow signal in the wet-weather sensitivity charts above) and 14 days (matches the slow-infiltration signal). Same-date pump-outs are aggregated. We can't reliably tell which plant is being pumped from the QuickBooks memos, so we treat all events together — village-level rainfall is the same input either way.
7-day window
14-day window
Caveat: events whose lookback window crossed a missing precip day are excluded. The biggest gap is November 2025, where the operator left the precip column blank on the source DMRs (verified across 4 independent extraction sources). A NOAA backfill is the obvious next data improvement.
Capacity headroom
Distribution of daily average flow per plant (0.005 MGD bins). Vertical dashed lines mark each plant’s SPDES design capacity (0.050 MGD for the Village WWTP via sub-outfall 01A; 0.025 MGD for Red Hook Commons via sub-outfall 01B). Days that sit to the right of the line are days the plant ran above its permitted monthly-average design flow.
Design-flow values from the 2025 Engineering Report responding to the DEC consent order (wwtp::2670, §2.3.9 / §2.3.12). Outfall 001 combined design flow is 0.075 MGD = sub-outfall 01A (0.050 MGD) + sub-outfall 01B (0.025 MGD).
Monthly average flow
Mean of daily flow (MGD) computed over the FULL number of days in the month, not just the days with reported data. A month with the plant offline for half the month reads as half its operating average — surfaces outages instead of hiding them. The “days” column shows how many days actually reported data so partial months are easy to spot. Deduped by (date, plant) to avoid double-counting overlapping filings.
| Month | Village WWTP avg (MGD) | days | Red Hook Commons avg (MGD) | days |
|---|---|---|---|---|
| 2024-10 | 0.0091 | 31/31 | 0.0009 | 31/31 |
| 2024-11 | 0.0386 | 30/30 | 0.0100 | 30/30 |
| 2024-12 | 0.0367 | 31/31 | 0.0055 | 31/31 |
| 2025-01 | 0.0057 | 5/31 | 0.0055 | 31/31 |
| 2025-02 | 0.0361 | 28/28 | 0.0045 | 28/28 |
| 2025-03 | 0.0396 | 31/31 | 0.0052 | 30/31 |
| 2025-04 | 0.0363 | 27/30 | — | — |
| 2025-05 | 0.0200 | 18/31 | — | — |
| 2025-06 | 0.0286 | 30/30 | — | — |
| 2025-07 | 0.0333 | 31/31 | 0.0101 | 31/31 |
| 2025-08 | 0.0310 | 31/31 | 0.0057 | 31/31 |
| 2025-09 | 0.0301 | 30/30 | 0.0063 | 30/30 |
| 2025-10 | 0.0316 | 31/31 | 0.0072 | 31/31 |
| 2025-11 | 0.0330 | 30/30 | 0.0080 | 30/30 |
| 2025-12 | 0.0276 | 31/31 | 0.0066 | 31/31 |
| 2026-01 | 0.0247 | 31/31 | 0.0080 | 31/31 |
| 2026-02 | 0.0268 | 28/28 | 0.0073 | 28/28 |
| 2026-03 | 0.0273 | 31/31 | 0.0073 | 31/31 |
WWTP sludge removal volume
Monthly gallons hauled from the WWTP, parsed from the Village's QuickBooks transaction report (account ES8130.43, exported 2026-03-20). The dashed red line is the budgeted routine baseline (26 hauls × 4,000 gal ÷ 12 months ≈ 8,667 gal/mo). Months materially above the line reflect emergency hauling or EQ-tank pump-downs — i.e. plant influent the treatment train couldn't process within capacity. Treat elevated bars as a plant-dysfunction indicator, not routine production.
| Month | Gallons hauled | vs budget | txns | unaccounted | $ billed |
|---|---|---|---|---|---|
| 2025-06 | 4,980 | 0.6× | 1 | — | $1,610 |
| 2025-07 | 32,000 | 3.7× | 4 | — | $7,269 |
| 2025-08 | 17,000 | 2.0× | 4 | — | $4,626 |
| 2025-09 | 15,000 | 1.7× | 3 | — | $3,201 |
| 2025-10 | 18,000 | 2.1× | 2 | — | $4,399 |
| 2025-11 | 25,000 | 2.9× | 2 | — | $6,654 |
| 2025-12 | 33,000 | 3.8× | 4 | — | $10,005 |
| 2026-01 | 27,500 | 3.2× | 5 | — | $7,878 |
| 2026-02 | 26,500 | 3.1× | 3 | — | $7,415 |
| 2026-03 | 1,320 | 0.2× | 1 | — | $427 |
Treatment efficiency over time
Per-sample-day percent removal for BOD5 and suspended solids: (influent − effluent) / influent. Sample days are roughly weekly; gaps are normal. The dashed red line marks 85% removal — a typical secondary-treatment performance floor; the actual SPDES permit floor is still TBD until the BOD5/SS limits are pulled in.
Sludge tank operations & emergency hauls (Village WWTP)
Mixed Liquor Suspended Solids (MLSS) is the standing biomass in the aeration tank; Waste Activated Sludge (WAS) is how aggressively the operator is pulling biomass out. Together they describe how the operator is managing sludge inventory. Vertical red lines on both charts mark dates of emergency sludge hauls invoiced via QuickBooks; green dashed lines mark routinehauls. Only the in-house plant DMR form (Apr–Jul 2025) carried these fields; the contract-operator forms before April 2025 and the H2O Innovations forms after September 2025 omit them, so the chart goes dark exactly when emergencies escalated.
MLSS over time
WAS minutes per day
Reading the story.The Village WWTP form lists a target MLSS of 3,000 mg/L. From April through June 2025, MLSS climbed from ~500 mg/L to ~3,000 mg/L — biology was being grown — but WAS stayed at zero for nearly the entire quarter (no biomass was being wasted). When the operator finally ramped WAS to ~780 min/day starting July 1, MLSS briefly spiked to 4,200–5,080 mg/L (the red overload band) before the form changed and reporting stopped on Aug 1. Vertical red lines mark dates of emergency sludge hauls (per QuickBooks). The first emergency haul (June 26) falls just before the wasting ramp-up, suggesting the operator recognized biomass over-accumulation as the cause. After September 2025, MLSS / WAS reporting disappeared entirely, while emergency hauls continued at an elevated rate.
Note: the alternation between low (~900 mg/L) and target-range (~3,000 mg/L) MLSS values reflects real biological cycling, not extraction noise. Per the May 2025 Delaware Engineering report (wwtp::2053), the Purestream treatment unit cannot retain biomass above 35 gpm forward flow — storms or wet weather flush the biology out ("washout"). MLSS reported on 109 village days and WAS on 103 village days, all between April and July 2025. The DEC form template still has MLSS and WAS columns under H2O Innovations, but they’ve been left blank since August 2025 — see Are sludge-process fields being reported?.
Cumulative volume treated
Running cumulative volume (MG) per plant per Village fiscal year (June–May). Useful as a billing rate-base anchor since utility billing is volumetric: total MG actually treated sets the floor on any per-MG charge that recovers fixed operating cost. Lines reset at each fiscal-year boundary; partial fiscal years are shown only as far as the data extends.
Effluent pH against permit envelope
Daily minimum (solid) and maximum (dashed) effluent pH for each plant. Green band marks the SPDES permit envelope (pH 6.0–9.0); red dashed lines mark the limits. Per-day values that touch or cross either limit indicate a potential reportable excursion.
Settleable solids against permit limit
Daily settleable-solids reading per plant. The 0.1 mL/L permit ceiling is shown as a dashed red line; the green band is the in-spec range. Below-detection readings (“<0.1”) are plotted at 0.05 mL/L (mid-point); the original reported string is shown in tooltips. Implausibly large readings traced to extractor errors against the March 2025 DMR (values > 5 mL/L) are dropped — these were a different mg/L column getting mis-mapped into settleable_solids.
Influent vs. effluent temperature
Daily influent (solid) and effluent (dashed) temperatures for each plant. Treatment is essentially passive thermally; this is a sanity-check view that confirms the data series tracks the seasonal cycle and that influent and effluent move together.
Sample-day removal — BOD5 and suspended solids
BOD5and suspended-solids samples are pulled on permit-defined sample days only (roughly weekly). Each point is one sampling event: x-axis is influent concentration, y-axis is the matched effluent concentration. The dashed diagonal is “no removal” (y = x); points well below the diagonal mean treatment is reducing the parameter.
BOD5 (n = 38 pairs)
Suspended solids (n = 26 pairs)
Document inventory by month
Count of sewer-department documents filed per calendar month, stacked by category. NOVs and consent orders cluster around the worst operational windows; routine sewer-department reports show the cadence of internal reporting. A spike with no NOV is unusual — it usually means the operator pre-empted DEC with a noncompliance report or implementation-schedule response.
Recent daily detail — Village WWTP
last 60 reported daysOne row per day, deduped to the most-complete filing. BOD5 and suspended-solids samples are pulled on permit-defined sample days only and appear blank otherwise. Settleable solids reported as “<0.1” were below the lab’s detection limit.
| Date | Flow avg (MGD) | Temp inf/eff (°F) | pH influent | pH effluent | Settleable (mg/L) | Precip (in) | Source |
|---|---|---|---|---|---|---|---|
| 2026-03-31 | 0.027 | 57 / 59 | 6.6 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-30 | 0.026 | 57 / 55 | 7.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-29 | 0.025 | 55 / 57 | 6.7 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-28 | 0.029 | 51 / 53 | 6.7 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-27 | 0.029 | 54 / 55 | 6.6 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-26 | 0.030 | 56 / 61 | 6.6 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-25 | 0.027 | 55 / 54 | 6.7 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-24 | 0.025 | 57 / 53 | 6.7 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-23 | 0.029 | 53 / 53 | 7.0 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-22 | 0.031 | 55 / 56 | 6.4 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-21 | 0.031 | 52 / 53 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-20 | 0.032 | 49 / 50 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-19 | 0.027 | 51 / 52 | 6.6 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-18 | 0.023 | 58 / 58 | 6.8 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-17 | 0.027 | 52 / 54 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-16 | 0.026 | 54 / 55 | 6.6 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-15 | 0.025 | 50 / 53 | 6.4 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-14 | 0.028 | 51 / 53 | 6.5 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-13 | 0.028 | 49 / 52 | 6.6 | 7.0 | <0.1 | 0.00 | DMR |
| 2026-03-12 | 0.027 | 57 / 62 | 6.7 | 7.0 | <0.1 | 0.20 | DMR |
| 2026-03-11 | 0.029 | 55 / 55 | 6.8 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-10 | 0.025 | 50 / 53 | 6.7 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-09 | 0.022 | 49 / 56 | 6.6 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-08 | 0.036 | 54 / 54 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-07 | 0.026 | 50 / 52 | 6.6 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-06 | 0.029 | 52 / 54 | — | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-05 | 0.027 | 49 / 53 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-04 | 0.026 | 51 / 53 | 6.7 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-03 | 0.024 | 49 / 51 | 6.6 | 7.2 | <0.1 | 0.00 | DMR |
| 2026-03-02 | 0.023 | 51 / 54 | 6.6 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-03-01 | 0.026 | 55 / 51 | 6.5 | 7.1 | <0.1 | 0.00 | DMR |
| 2026-02-28 | 0.025 | 53 | 7.2 | 7.2 | <0.1 | — | DMR |
| 2026-02-27 | 0.027 | 56 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-26 | 0.027 | 52 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-25 | 0.025 | 54 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-24 | 0.025 | 51 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-23 | 0.022 | 58 | 7.2 | 7.2 | <0.1 | — | DMR |
| 2026-02-22 | 0.028 | 60 | 6.7 | 6.7 | <0.1 | — | DMR |
| 2026-02-21 | 0.024 | 54 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-20 | 0.025 | 54 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-19 | 0.026 | 52 | 6.9 | 6.9 | <0.1 | — | DMR |
| 2026-02-18 | 0.028 | 51 | 6.6 | 6.6 | <0.1 | — | DMR |
| 2026-02-17 | 0.026 | 54 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-16 | 0.024 | 53 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-15 | 0.029 | 59 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-14 | 0.033 | 56 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-13 | 0.030 | 58 | 7.2 | 7.2 | <0.1 | — | DMR |
| 2026-02-12 | 0.023 | 52 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-11 | 0.028 | 54 | 6.8 | 6.8 | <0.1 | — | DMR |
| 2026-02-10 | 0.028 | 56 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-09 | 0.030 | 61 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-08 | 0.028 | 56 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-07 | 0.026 | 51 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-06 | 0.029 | 56 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-05 | 0.026 | 52 | 7.2 | 7.2 | <0.1 | — | DMR |
| 2026-02-04 | 0.028 | 56 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-03 | 0.026 | 54 | 7.1 | 7.1 | <0.1 | — | DMR |
| 2026-02-02 | 0.027 | 51 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-02-01 | 0.026 | 58 | 7.0 | 7.0 | <0.1 | — | DMR |
| 2026-01-31 | 0.018 | 49 | 7.0 | 7.0 | <0.1 | 0.00 | DMR |
Source documents
Every row in the daily series above was extracted from one of the 35 monthly DEC Discharge Monitoring Report filings listed first. The 104 sewer-department documents (NOVs, consent orders, inspections, monthly reports, operator agreements) feeding the compliance overlay and inventory chart follow underneath.
DEC Discharge Monitoring Reports (35)
Sewer-department documents (104)
Source.NY DEC NPDES Discharge Monitoring Reports filed monthly by the Village for SPDES permit outfalls covering the Village WWTP and Red Hook Commons treatment plants, plus sewer-department correspondence and DEC compliance filings scraped from the Village’s document archive.
Extraction. Daily values were extracted from the DMR tables via analysis/extract_dec_wastewater_series.py using a structured-output LLM pass over each report. Numeric fields are reproduced as filed; settleable-solids values below the laboratory detection limit are kept as the original <0.1 string.
Latest available date. Tue, Mar 31, 2026.