Carrick — Scotland

Current pollution risk: low (0%), a modelled estimate from rainfall, live spill data, and nearby outlet proximity — not a measured water sample.

Official classification: Excellent

Regulator: SEPA

Last updated: 2026-08-24T16:56:23.606Z

Backed by a matched official water body, live spill monitoring at nearby outlets and live current data.

Outlets contributing to this site's score

Location

Get directions →

Other bathing sites in Scotland

🌊

British Islands Bathing Water Alert

Loading ukwater data…
Confirmed active spill nearby
Bathing sites right now
Low
Medium
High
Very High
Current warnings0
No active warnings
About

British Islands Bathing Water Alert · ukwater

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.

Purpose

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.

ukwater is a screening tool. Risk scores are modelled estimates, not measured pollution concentrations — they do not replace official Environment Agency, Natural Resources Wales, SEPA, DAERA, or EPA (Ireland) bathing water classifications or advisories.

Data sources

SourceProvidesCoverage
EDM (Event Duration Monitor)Live confirmed spill statusEngland (8 companies), Scotland
Consented Discharges registerStatic outlet permitsEngland
EDM annual returns (Rivers Trust)Real annual spill counts — the input to threshold calibration belowEngland, Wales
EPA urban wastewater dischargesLicensed treatment-plant discharge points, no spill historyIreland
Open-Meteo (UK Met Office model, forecast + archive APIs)Rainfall + air temperature, both recent (7 days) and 3-year historicalAll sites and outlets
EA rainfall gauges15-min ground-truth rainfallWhere a gauge is nearby (GB only)
Catchment Data Explorer (CDE)Water body classification/geometry, direct IDEngland
NRW/DataMapWales, SEPA, DAERA, EPA (Ireland)Water body classification/geometry, matched by point-in-polygonWales, Scotland, Northern Ireland, Ireland
OS Open RiversStream network + flow directionGreat Britain (England-linked sites only currently — see Lakes & rivers)
CMEMS (Copernicus Marine)Sea currents + temperatureCoastal, 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.

Risk model

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:

  • Rainfall decay — recent rainfall, exponentially decayed (12h half-life for bacterial risk, 24h for viral — see Bacterial/viral/algae risk below).
  • A per-outlet rainfall threshold — how much decayed rainfall it actually takes to push that specific outlet toward spilling. Three tiers, in priority order — see Outlet threshold calibration.
  • Live confirmed status — where an outlet has a live EDM feed, a fresh "currently spilling" reading overrides the rainfall estimate entirely; a fresh "not spilling" reading suppresses it — see Live spill override.
  • Distance/travel time — decayed by straight-line distance (characteristic distance depends on water body type — 3000m coastal, down to 600m for a lake), or by real network travel time where a stream-network connection exists, or by directional current exclusion for coastal sites once CMEMS is connected — see Coastal current assessment.

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.

Outlet threshold calibration

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:

  1. Real calibrated threshold (19,476 of 24,006 outlets, 81%). A technique ported from the Danish sister project's own PULS threshold system: for every outlet with a known annual spill count, its multi-year (2023–2026) hourly rainfall history is "collapsed" into well-separated peaks (events >5 hours apart), and the Nth-highest peak becomes that outlet's own threshold, N = its own known annual count. 11,819 outlets got this directly from their own count and rainfall history. The remaining 7,657 — every outlet with no usable count of its own (all of Scotland's 2,074 live outlets, all 546 of Ireland's, plus any England/Wales outlet whose count was too low to trust) — borrow a distance-weighted threshold from their 3 nearest directly-calibrated outlets instead. In practice, Ireland's outlets borrow across the Irish Sea from the nearest Welsh outlets, since Wales turned out to have by far the largest pool of real, trustworthy annual counts.
  2. Frequency-ratio heuristic (fallback). For the outlets calibration couldn't reach — too few known events, or no rainfall-history coverage for that location — a coarser fallback: an outlet that spills more often than the national median gets a proportionally lower (more sensitive) threshold, one that rarely spills gets a proportionally higher one. Same direction of effect as real calibration, not a fitted correlation.
  3. Flat default (8mm). Outlets with no spill-frequency data at all fall back to one fixed national threshold.
This directly replaced a real, disclosed limitation from an earlier build of this tool, which used only tier 2 above for every outlet. It's also what changed most for outlets that never have a live feed at all — Wales, Ireland, and (for the 30% of outlets without a real count) parts of England/Scotland — since for them, this threshold is the model, with nothing live to fall back on.

Live spill override

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 statusEffect on the calibrated rainfall baseline
Fresh (<2h) + confirmed spillingIgnored entirely — probability forced to 100%. A real-time "yes, right now" always wins over any modelled estimate.
Fresh (<2h) + confirmed not spillingSuppressed 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 allIgnored — 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".

Bacterial, viral & algae risk

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.

HazardBasisReliability
🦠 BacterialRainfall-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.
🧬 ViralSame 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).
🌿 AlgaeA 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.
The most common harmful algae in UK/Irish waters are cyanobacteria ("blue-green algae"), which can produce liver- and nerve-toxins. This model does not distinguish toxin-producing blooms from harmless ones.

Coastal current assessment

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):

  • Outlets within 500m always count, decayed isotropically — CMEMS' grid resolution can't meaningfully judge upstream/downstream that close, and a near-zero dot product this close to zero could tip either way on pure measurement noise.
  • Beyond that: a current flowing toward the site counts, decayed by the measured current speed via real travel time. A current flowing away or transverse to the site excludes the outlet entirely — not a dampening factor, a hard exclusion.
  • No current data for that outlet's cell (outside the fetched area, or CMEMS temporarily unavailable) falls back to isotropic decay, so a data gap degrades gracefully instead of silently excluding a potentially relevant outlet.

Lakes and rivers stay isotropic always — there's no known open-data source of internal lake current direction for any of the five nations.

Lakes & rivers

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.

Citizen observations

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.

Hard rule: these are unverified public reports, a separate signal shown for context only. Nothing here is ever read by, or feeds into, the modelled risk score above — enforced as a genuine code boundary, not just a UI convention.

Map layers

  • 🏖 Bathing sites — coloured by the combined risk score.
  • 🦠🧬🌿 Risk heatmaps — Bacterial/Viral/Algae, an independent glow layer per hazard on top of the site markers, brighter where more/higher-scoring sites cluster. Each fades out at low zoom so it reflects real local clustering, not just the map being zoomed out.
  • 🚰 Outlets — all 24,006 merged outlets, purple when a live feed confirms it's currently spilling. Density-decimated and size-scaled by zoom level so the map stays legible at a national view instead of a solid mass of dots. Off by default — toggle on to see them.
  • 🌊 Water bodies — official water body boundaries, coloured by WFD (or national-equivalent) classification status, for every one of the five nations.
  • 🧭 Stream direction — confirmed flow direction from OS Open Rivers, near outlets/bathing sites (Great Britain only).
  • 〰 Currents — an animated particle layer showing CMEMS coastal current speed and direction, coloured by sea temperature. Only available on a deployment with CMEMS credentials configured (see Data sources) — greyed out and disabled otherwise, same as the risk model's directional current bias.

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.

Per-country coverage

The five nations genuinely differ in what data actually feeds their score — worth knowing before comparing two sites in different countries directly.

NationSitesLive spill feed?OutletsWater body matched
England464Yes (8 companies)19,193464/464
Wales112Noincluded in England's 19,193 total (static-annual)110/112
Scotland90Yes2,07490/90
Northern Ireland33N/A — 0 outlets, see below033/33
Ireland243No546241/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.

Model review & reliability

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.

ModelBasisReliability
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.

How to read the scores

  • Relative ranking is more trustworthy than the absolute number. That outlet A scores higher than outlet B under the same weather is a reasonable conclusion. That outlet A's "34%" means exactly a 34% probability of measurable pollution is not something this model can guarantee.
  • Bacterial/viral risk is better supported than algae risk, which is the newest and least validated model in this tool.
  • A site with no live feed and a borrowed threshold (most of Wales, all of Ireland) is not inherently less safe — it means the score rests more on the rainfall-decay model and less on a directly-measured signal, which is a statement about confidence, not about the water itself.
  • This tool is built for screening and prioritisation — pointing at where it's most worth looking closer — not as a replacement for official bathing water measurements or regulator advisories.

Limitations

  • Not every English/Welsh/Scottish water company publishes a live spill feed — some outlets only have static historical data, no live confirmed status; Wales, Ireland, and Northern Ireland have no live feed at all.
  • The lake/river stream-network connection only covers water bodies matched via England's Catchment Data Explorer — Wales, Scotland, Northern Ireland, and Ireland lake/river sites currently fall back to isotropic distance-decay even where OS Open Rivers does cover their geography.
  • CMEMS ocean current/temperature data requires a Copernicus Marine account — until connected, coastal current-direction weighting and algae water temperature for coastal sites are unavailable.
  • Northern Ireland has zero outlet data of any kind — NI Water's real spill data exists but isn't published under a licence this tool can use (see Per-country coverage).
  • Ireland's 546 outlets carry no live status and no real spill-frequency count — every one relies on a borrowed calibrated threshold from the nearest Welsh outlets, not its own measured history.
  • 2 Ireland sites and every Isle of Man site have no matched water body (or, for Isle of Man, no coordinates/data source at all — checked directly, not fabricated) — see docs/data-sources.md for exactly what was checked.
  • The 19% of outlets without a calibrated threshold (too few known events, or no rainfall-history coverage for that grid cell) fall back to a coarser frequency-ratio heuristic or a flat default — see Outlet threshold calibration.
  • Citizen-submitted observations (visible on each site's page) are unverified public reports, shown separately, and never used to compute any of the scores above.
  • The "🔔 Notify me" push-notification toggle on each site's page requires this deployment to have web push configured — if it's greyed out, the operator hasn't set it up yet.
Loading…