← All docs

Project documentation

View source ↗

Storm Overflow Analysis — Methodology and Findings

DS105 Group Project · LSE · Jack, Steven(Can), Isaac, Alex · 2026


Research Question

Has rainfall caused storm overflow spills across English water companies between 2021 and 2025?

Short answer: Yes — but infrastructure differences between companies dominate annual variation. Rainfall explains 3.5% of EDM spill count variation and 17.4% for Thames Water. Asset type explains 11.3% on top for EDM — the biggest single factor discovered. 58.7% of Thames Water's 2025 spills started below the discharge threshold.


1. Data

1.1 Event Duration Monitoring (EDM)

Annual spill counts and hours per storm overflow site from the Environment Agency's mandatory EDM returns, 2021–2025. After cleaning — normalising spill_hours across four reporting formats and deduplicating on permit_ref × year — we drew a stratified sample of 155 sites across 9 companies using a geographic grid proportional to sewer network length. This gives 730 site-years.

1.2 Thames Water discharge alerts API

Individual-level discharge event records: 76,848 events across 538 monitors, 2022–2025 (2,084 monitor-years). Unlike EDM annual aggregates, this provides event timestamps and durations, enabling event-level tests that the annual data cannot.

1.3 Open-Meteo historical weather archive

Daily precipitation (mm) for all 155 EDM sites and 538 Thames Water monitors, 2020–2026, retrieved from the Open-Meteo free API.


2. Metric Development

2.1 What we tried and abandoned

Sensor matching — We initially attempted to match each EDM discharge site to the nearest EA Water Quality monitoring sensor to test downstream pollution impacts. The median matched distance was 5.86km, with no river flow direction data — an unknown proportion of sensors were upstream of their matched discharge site. EA spot-sampling frequency (a few times per year) was too sparse to detect individual events. Abandoned entirely.

Fixed empirical thresholds — The first version of our discharge condition metric used thresholds derived from Thames Water discharge-day means: rainfall > 6.12mm AND 7-day API > 19.52mm (Spearman r = 0.190). This is defensible for Thames Water's London catchment (~600mm/year) but applies one company's climate to nine others across England.

IHACRES recursive CWI (k=0.93) — We tested the IHACRES Catchment Wetness Index (Jakeman and Hornberger, 1993) as a more theoretically rigorous alternative to the truncated 7-day API (Kohler and Linsley, 1951, k=0.85). With k=0.93 (τ_w = 15 days), the index accumulated too persistently — 51 mean discharge condition days/year vs 33 for k=0.85 — with weaker Spearman r (0.178 vs 0.190). k=0.85 retained.

2.2 Primary metric: dc_1sigma_days

A day qualifies as a discharge condition day if both:

daily rainfall  >  company mean daily rainfall + 1 standard deviation
7-day API       >  company mean daily API + 1 standard deviation

The 7-day Antecedent Precipitation Index (API) is:

API_t = rain_t + 0.85×rain_(t-1) + 0.85²×rain_(t-2) + ... + 0.85⁶×rain_(t-6)

(Kohler and Linsley, 1951). Today's rainfall enters undiscounted — API = 0 means no rain for seven days.

This 1-sigma approach asks "was today anomalously wet for this region?" rather than applying a universal absolute threshold. Company-level thresholds (computed from 2021–2025 data):

CompanyRain threshold (mm)API threshold (mm)
Anglian Water5.8817.54
South West Water6.8828.93
United Utilities8.9829.09
Yorkshire Water7.0621.70
Thames Water9.66 + 9.29 = 18.95(TW-wide)

Mean dc_1sigma_days per site-year: 23.8 (EDM), 21.1 (Thames Water).

Spearman r comparison — EDM spill_count:

Metricr
Annual rainfall (mm)0.197
Rainfall std (mm/day)0.181
dc_1sigma_days0.139
Days with rain > 10mm0.178

The 1-sigma metric achieves r = 0.139 vs 0.190 for the fixed threshold. It is retained as primary on methodological grounds — it does not impose Thames Water's climate on nine other companies. With 30-year climate normals the approach would likely outperform.

On the absence of a legislated threshold: EA permits require discharge "during heavy rainfall when sewer capacity is exceeded" without specifying mm (Environment Agency, 2020). The Government's Storm Overflows Discharge Reduction Plan sets a frequency target (≤10 events/year by 2050) but no rainfall threshold (House of Lords Library, 2022). There is no legislated mm figure against which to validate our threshold.

2.3 Two additional regressors


3. Econometric Approach

This section links to EC1A1 Econometrics methodology.

3.1 OLS and the log transformation

The core model:

log(spill_count + 1)_it = α + β·X_it + ε_it

log(spill_count + 1) is used because spill counts are non-negative integers with a right-skewed distribution — Yorkshire Water sites spill 200+ times/year while some sites spill zero. The log transformation reduces the leverage of extreme values. Coefficients are interpretable as approximate percentage effects: dc_1sigma_days coefficient of 0.045 for Thames Water means each additional 1-sigma day is associated with approximately a 4.5% increase in spill count.

3.2 Fixed effects — the within-estimator (EC1A1)

Adding dummy variables for each company:

log(spill_count + 1)_it = α + β·dc_1sigma_days_it + γ_i + ε_it

Company fixed effects γ_i absorb all time-invariant differences between companies — infrastructure age, pipe capacity, historical investment, catchment characteristics. Without these, rainfall coefficients would be contaminated by the correlation between wetter regions and older infrastructure (omitted variable bias, EC1A1 Week 5). The identification comes from within-company, year-on-year variation.

Year fixed effects were intentionally excluded from the main specification. With only 5 years of EDM data and 4 years of Thames Water data, year dummies would fit 4–3 separate intercepts using most of the available time variation without adding interpretable signal. Instead, a linear year trend (one coefficient) is used for Thames Water to test for directional change.

3.3 Non-rainfall controls (EC1A1 omitted variable bias)

EDM model also tests:

3.4 Clustered standard errors (EC1A1 heteroskedasticity-robust inference)

For Chart D, standard errors are clustered at the monitor/site level:

m.fit(cov_type='cluster', cov_kwds={'groups': df['permit_ref']})

A site that spills heavily in 2021 is likely to do so in 2022 — observations within the same site are not independent across years. Clustering gives wider but correct standard errors (EC1A1 heteroskedasticity-robust inference).

3.5 Weather-adjusted performance: coefficient re-centring

Company coefficients from the full model are re-centred on the sample-weighted national mean and converted to percentage differences:

% difference = (exp(γ_centred) − 1) × 100

This is the standard transformation for log-scale dummy variable coefficients. Zero = "national average after controlling for rainfall and year."

3.6 Identification

This analysis establishes correlation, not causation. Rainfall is plausibly exogenous (companies cannot affect precipitation), which is favourable for a causal reading. However omitted variable bias remains at site level — pipe age and catchment imperviousness both affect spill propensity and likely correlate with regional rainfall patterns. A causal design would require instrumental variables or a difference-in-differences exploiting known infrastructure investment events.


4. Findings

Finding 1: Rainfall clearly drives spills at event level

On days when a Thames Water discharge event started (76,848 events):

Discharge daysNon-discharge days
Mean daily rainfall7.36mm1.95mm (3.8× higher)
Mean 7-day API19.95mm9.31mm (2.1× higher)

The 25th percentile of API on discharge days (12.1mm) exceeds the median API on non-discharge days (6.9mm). Spills are not random — they cluster on days that are both wet today and antecedently saturated. Daily correlation between smoothed API and smoothed events: r = 0.657.

Finding 2: Prior rainfall predicts spill severity

3-day cumulative rainfall correlates with mean discharge duration at r = 0.823. 7-day API is even stronger at r = 0.876. Spills starting after sustained rainfall last roughly twice as long as those on isolated rainy days (~12h vs ~6h). The physical mechanism: saturated ground cannot absorb additional runoff, so the sewer drains back below the overflow threshold much more slowly.

Finding 3: Annual signal is real but weak

At annual resolution, all three metrics are positively correlated with spill counts (Spearman r = 0.14–0.20 across all metrics on EDM). All three are individually significant in M1 regression (p < 0.05). However R² values are small: M1 explains only 3.5% of EDM variation and 17.4% of Thames Water variation. Annual aggregation loses the timing information that drives the strong event-level signal.

Finding 4: Infrastructure dominates EDM variation

FactorEDM R² contribution
Rainfall (3 metrics)3.5%
+ Company fixed effects+4.0%
+ Monitoring compliance+0.02%
+ Asset type (CSO vs STW storm tank)+11.3%
Total18.7%

Company fixed effects add more than rainfall itself (+4.0% vs +3.5%). Asset type adds the most of any single factor (+11.3%) — CSOs and STW storm tanks behave fundamentally differently under the same rainfall conditions. This was the largest discovery of the regression analysis.

Finding 5: Storminess matters more than total volume

Thames Water M1 coefficients (all p < 0.001):

Concentrated storms cause overflows; steady background rainfall does not.

Finding 6: Weather-adjusted company rankings

Company% vs national average
South West Water+91.8%
Yorkshire Water+71.9%
United Utilities+46.8%
Dwr Cymru+20.5%
Thames Water−0.5%
Southern Water−16.6%
Wessex Water−17.2%
Anglian Water−23.8%
Severn Trent Water−24.5%
Northumbrian Water−40.9%

None individually statistically significant (wide CIs, ~20 sites per company). Point estimates consistent across all analyses. South West Water's position (+91.8%) is notably worse than Yorkshire (+71.9%) — both underperform their weather conditions substantially.

Finding 7: 58.7% of Thames Water 2025 spills started below the discharge threshold

API breakdown for 2025 spills (n = 13,464):

API conditionCountShare
API = 0 (no rain, 7 days)1771.3%
API 0–5mm (very dry)1,69012.6%
API 5–10mm (low moisture)1,67312.4%
API 10–19.5mm (building up)4,36832.4%
API > 19.5mm (discharge conditions)5,55641.3%

Only 41.3% of 2025 spills occurred under conditions the 1-sigma metric classifies as anomalously wet. In absolute terms, 1,203 spills (8.9%) started on completely dry days (zero rainfall AND API < 5mm). These represent infrastructure failure with no weather contribution.


5. Limitations

LimitationImpactPotential extension
5-year regional baselines for 1-sigmaUnstable; fixed threshold marginally outperformsUse UKCP18 30-year climate normals
Annual aggregationLoses event timing; attenuates signalMatch EDM to daily EA flow data where available
~20 sites per companyIndividual company CIs too wide for significanceFull EA EDM population (4,700+ sites)
Sensor matching abandonedCannot test downstream water qualityEvent-level EA WQ data if available
OLS on count dataTheoretically misspecified for overdispersed integersNegative Binomial regression
Correlation not causationCannot claim causal effect of rainfallDiD using known Ofwat investment event data
Thames Water year trend identificationCannot distinguish genuine deterioration from monitoring coverage expansionExternal data on active monitor count per year
Asset type as residual controlAsset type may capture geography or company effects not fully absorbed by company FEWithin-company asset-type panel

References