Current pollution risk: low (0%), a modelled estimate from rainfall, live spill data, and nearby outlet proximity — not a measured water sample.
Official classification: Not classified
Regulator: EPA
Last updated: 2026-08-24T17:01:17.743Z
Backed by a matched official water body and live current data.
A screening tool visualising pollution risk from storm overflows (combined sewer overflows, CSOs) at 942 bathing water sites across England, Wales, Scotland, Northern Ireland, and Ireland — the last deliberately not a UK nation, a scope expansion once real open data was confirmed for it, not an oversight. Built on each nation's own live spill-monitoring network where one exists, UK Met Office rainfall data, a real empirically-calibrated per-outlet rainfall threshold, and each site's officially matched water body.
Storm overflows discharge when rainfall exceeds sewer capacity, releasing untreated wastewater into rivers, lakes, and coastal waters. This tool computes a running pollution-risk estimate per bathing site from nearby outlets' historical spill frequency (or, increasingly, a real calibrated rainfall threshold derived from it), live confirmed-spill status where available, and observed/forecast rainfall.
| Source | Provides | Coverage |
|---|---|---|
| EDM (Event Duration Monitor) | Live confirmed spill status | England (8 companies), Scotland |
| Consented Discharges register | Static outlet permits | England |
| EDM annual returns (Rivers Trust) | Real annual spill counts — the input to threshold calibration below | England, Wales |
| EPA urban wastewater discharges | Licensed treatment-plant discharge points, no spill history | Ireland |
| Open-Meteo (UK Met Office model, forecast + archive APIs) | Rainfall + air temperature, both recent (7 days) and 3-year historical | All sites and outlets |
| EA rainfall gauges | 15-min ground-truth rainfall | Where a gauge is nearby (GB only) |
| Catchment Data Explorer (CDE) | Water body classification/geometry, direct ID | England |
| NRW/DataMapWales, SEPA, DAERA, EPA (Ireland) | Water body classification/geometry, matched by point-in-polygon | Wales, Scotland, Northern Ireland, Ireland |
| OS Open Rivers | Stream network + flow direction | Great Britain (England-linked sites only currently — see Lakes & rivers) |
| CMEMS (Copernicus Marine) | Sea currents + temperature | Coastal, all nations, when connected |
Every source above is confirmed live and documented, with exact field names, licensing, and known gaps, in the project's docs/data-sources.md — including the sources that were checked and found not to exist yet (NI Water's spill data licence, Isle of Man's bathing water coordinates), so a missing feature reflects a real, disclosed data gap, not an unexamined one.
For each bathing site, nearby outlets (within 15km, or a real upstream connection via the stream network for lakes/rivers) each contribute a probability of currently discharging, based on:
A site's final score is its single highest-contributing nearby outlet, not a combination of several — because nearby outlets share the same local rainfall, they're correlated, not independent risk events, so treating multiple of them as independently additive would overstate risk at any site with several outlets nearby regardless of actual conditions. Every other nearby outlet's own contribution is still shown for context, just not added into the score.
Every outlet needs an answer to "how much rain does this specific outlet need before it actually spills?" — a flat national assumption badly over- or under-estimates outlets that are genuinely more or less rain-sensitive than average. This is a rebuilt, three-tier model, in priority order:
Where a live EDM feed exists (England's 8 water companies, Scotland), an outlet's real-time reported status can override the rainfall-derived estimate entirely — this only ever adds certainty on top of the calibrated threshold above, never replaces it for outlets with no live feed.
| Live status | Effect on the calibrated rainfall baseline |
|---|---|
| Fresh (<2h) + confirmed spilling | Ignored entirely — probability forced to 100%. A real-time "yes, right now" always wins over any modelled estimate. |
| Fresh (<2h) + confirmed not spilling | Suppressed to 40% of the rainfall-derived baseline, not zeroed — the feed only resolves at ~15min-1hr granularity, so a spill could start moments later. |
| Stale (>2h), offline, or no live feed at all | Ignored — runs purely on the calibrated (or fallback-tier) rainfall baseline, same as Wales/Ireland/Northern Ireland always do. |
The freshness cutoff (2 hours) exists because the underlying data hubs claim spills are published "within an hour" of occurring — a status older than that is treated as untrustworthy rather than as evidence either way, not as a stale "yes" or "no".
Three separate scores are computed per site. A site's overall colour/warning status is the higher of bacterial and viral risk — algae is shown as its own layer and never affects the combined score or warnings.
| Hazard | Basis | Reliability |
|---|---|---|
| 🦠 Bacterial | Rainfall-decay (12h half-life) + calibrated outlet probability model above. Bacteria typically die off within a few days in water, faster in salt water and sunlight. | Moderate-high for the 81% of outlets with a real calibrated threshold; moderate for the rest. |
| 🧬 Viral | Same model, longer decay (24h half-life) — viruses have a protective protein coat and survive markedly longer than bacteria, especially in cold water. | Lower — this build uses one fixed longer half-life rather than a real seasonal, temperature-driven decay curve (no UK/Ireland seasonal water-temperature dataset was available). |
| 🌿 Algae | A separate heuristic: rainfall-driven nutrient loading × a water-temperature gate (algae need both nutrients and warmth). Water temperature comes from CMEMS for coastal sites when connected, or is estimated from air temperature for lakes/rivers. | Low — an intentionally simple, uncalibrated heuristic, not validated against real algal bloom observations. Treat as a rough indicator, not a forecast. |
For CoastalWater/TransitionalWater sites, once CMEMS current data is connected, an outlet's contribution isn't just distance-decayed — it's directionally aware, using the real current vector sampled at the outlet's own position (currents vary across a bay; the site's own position isn't what matters for whether a plume actually reaches it):
Lakes and rivers stay isotropic always — there's no known open-data source of internal lake current direction for any of the five nations.
Where a real stream-network connection exists (OS Open Rivers, Great Britain only), an outlet's contribution decays by actual upstream travel time instead of straight-line distance — real topology beats an approximation of one. Coverage: 29 of 43 Lake/River-type UK sites (67%) resolve a real connection at a 1000m snap tolerance; travel speed itself uses one assumed constant rather than a full per-segment hydraulic calculation, since no UK equivalent of that channel-geometry data was found. Where no connection is found, the site falls back to plain isotropic distance-decay, same as every coastal site does beyond CMEMS' reach.
This layer is currently England-linked-water-body-only — Lake/River water-body type only reaches the flow-graph via England's direct CDE water-body ID; Wales/Scotland/NI/Ireland lake and river sites currently score on isotropic decay even where the underlying OS Open Rivers graph does cover their geography too.
Each site's detail page shows a passive, always-visible summary of recent visitor-submitted reports ("algae seen", "looks fine", etc.) as decay-weighted chips — newer reports weigh more, older ones fade out gradually rather than disappearing abruptly. Submission happens in its own bottom-sheet panel, reachable from the "⭐ Report conditions" button.
Each site's own detail page additionally shows a 7-day/24h rainfall bar chart and a 7-day/30-day risk-history donut pair — both distinct from the map layers above, scoped to that one site.
The five nations genuinely differ in what data actually feeds their score — worth knowing before comparing two sites in different countries directly.
| Nation | Sites | Live spill feed? | Outlets | Water body matched |
|---|---|---|---|---|
| England | 464 | Yes (8 companies) | 19,193 | 464/464 |
| Wales | 112 | No | included in England's 19,193 total (static-annual) | 110/112 |
| Scotland | 90 | Yes | 2,074 | 90/90 |
| Northern Ireland | 33 | N/A — 0 outlets, see below | 0 | 33/33 |
| Ireland | 243 | No | 546 | 241/243 |
Why Northern Ireland has zero outlets: NI Water publishes real per-outfall annual spill data, but it carries no coordinates at all, and their site's own Legal Notice restricts all published data to personal, non-commercial use without prior written approval — not an open licence this tool can use. Every NI site therefore scores on rainfall alone, and its detail page says so explicitly rather than showing a bare "no nearby outlets found".
Why Ireland's outlets never have a real spill-frequency count: no Irish equivalent of the UK's EDM regime was found — Ireland's 546 outlets are licensed treatment-plant discharge points, not individually-monitored storm-overflow outfalls with a spill history, so every one of them ends up on the borrowed calibration tier above.
Full technical detail (exact field names, licence text, what was checked and found not to exist) lives in docs/architecture.md's "Per-country model & data summary" table and docs/data-sources.md.
Not every model here is equally trustworthy — some build on established hydrological theory or real calibration data, others are deliberately simple heuristics built for this tool without external validation. This section collects all of them honestly, rather than presenting one undifferentiated risk score.
| Model | Basis | Reliability |
|---|---|---|
| Bacterial overflow risk | Exponential decay of antecedent rainfall (12h half-life) combined with the outlet's own calibrated threshold — real peak-collapse calibration for 81% of outlets, a frequency heuristic or flat default for the rest. | 🟡 Moderate-high. The decay shape itself is well established in hydrological literature; the exact half-life is a documented, tunable constant, not fitted against real UK/Irish bacterial concentration measurements. The calibrated threshold is validated at the annual level only (dkvand's own lending-validation found ~13.8% median deviation for borrowed thresholds) — no dataset here has dated individual spill events precise enough for anything finer. |
| Viral risk | Same structure as bacterial, with a longer (24h) half-life — viruses survive markedly longer, especially in cold water. | 🟡 Moderate. The relative relationship (viruses outlast bacteria) is well documented; the specific half-life used here is a reasoned estimate, not calibrated against real UK/Irish virus measurements. |
| Outlet threshold calibration (direct) | Peak-collapse against the outlet's own multi-year rainfall history, N = its own known annual spill count — 11,819 outlets. | 🟢 High confidence subset (N≥10): moderate-high overall. Uses real, outlet-specific historical data, not an assumption — but the annual count itself is the reported figure a water company submits, not an independently re-measured one. |
| Outlet threshold calibration (borrowed) | Distance-weighted average of the 3 nearest directly-calibrated outlets — 7,657 outlets, including all of Scotland's and Ireland's. | 🟡 Moderate. A real, disclosed divergence from the Danish original (which borrows by catchment size — no UK/Irish source has that field) — distance is a reasonable but noisier substitute, especially for outlets whose nearest donors are far away (e.g. Ireland's outlets borrowing across the Irish Sea). |
| Live spill override | Real-time reported EDM status, trusted only within a 2-hour freshness window. | 🟢 High where it applies (England, Scotland) — a real confirmed reading, not a model. Doesn't apply at all to Wales, Ireland, or Northern Ireland. |
| Coastal current exclusion | CMEMS current vector at the outlet's own position, a binary upstream/downstream test against the direction to the site. | 🟢 High for the current data itself (a validated oceanographic model), 🟡 moderate for the exclusion logic — a sharp 0/1 cutoff with no gradual weighting, sensitive to measurement noise for near-perpendicular currents, and limited by CMEMS' coastal grid resolution. |
| Lake/river travel-time decay | Real digitized OS Open Rivers flow direction + one assumed constant travel speed (not a per-segment hydraulic calculation). | 🟡 Moderate. Flow direction is authoritative; travel speed is a reasoned approximation. Coverage is also partial — 67% of UK Lake/River sites, England-linked water bodies only. |
| Freshwater temperature estimate | Air-temperature-driven sigmoid (Mohseni-Stefan-style), used for algae risk on lakes/rivers with no CMEMS coverage. | 🟡 Moderate. The model shape is well known in hydrological literature for exactly this purpose; the specific parameters here are generic, not calibrated against real UK/Irish lake/river temperature data. |
| Algae risk | Nutrient-loading proxy (rainfall × recent spill volume) × a water-temperature gate. Never enters the combined score/colour. | 🔴 Low, explicitly uncalibrated. The underlying mechanism (nutrients + warmth drive blooms) is a recognised qualitative pattern in the literature; this specific formula was built for this tool without calibration against real chlorophyll-a or cyanobacteria observations. Treat as a rough directional indicator, not a forecast — which is exactly why it's excluded from the safety-relevant combined score. |