Every research record SwimSignal keeps. Each says what its test found when it was run, kept as it was, and, apart from that, what is happening to the work now.
A failed test is kept with its scope. It says that one version did not help on those data, not that the idea cannot work. An archived version says what new data, mechanism or need would reopen it. Work that is in use or waiting for a set date is not abandoned.
53 records.
Satellite lake work
Satellite index against EA visual algae checks
Now: this version archived. This classifier is archived. Its image extraction and coverage work is reused by the satellite observations now shown on the Lakes page.
What the test found when it was run: Failed as stated. For "algae seen" the index's AUC was 0.604 (97.5% interval 0.394 to 0.746) against a bar of 0.65; adding it to month and the last check made the Brier score worse (−0.00465, interval −0.02282 to +0.00203). Only 404 of 1,358 checks had a usable image within 3 days. "Objectionable" algae had only 20 events: too few to judge.
What it covers: 14 of 18 English lake bathing waters on 8 water bodies, EA visual checks May to September 2020-21 and 2023-26. Small ponds had no core water pixels.
Reopen when: A different, better-measured target (for example lab chlorophyll or verified bloom reports) with enough clear images, or a method that reads small ponds. Not a rerun of the same visual classifier.
Satellite lake observations
Records: LAKE-ALGAE-SATELLITE-TEST-2026-10.md. Pull requests: #377 (merged).
Where our summaries differ: The register gives the interval without saying it is a 97.5% interval, and does not mention that the within-lake placebo check passed for both outcomes.
Satellite index against lab chlorophyll
Now: shown on the site. Dated index readings are shown as observations on the Lakes page, with a weekly pilot at five sites since 31 October 2026. They are not converted to chlorophyll, an algae warning or swimming advice. Next date: 1 May 2027.
What the test found when it was run: Failed as stated, by 0.0003 on one condition: the pooled Spearman correlation was 0.502 with a 95% interval of 0.2997 to 0.667, and the lower end had to be above 0.3. It beat the within-lake placebo. Overall calibration skill 0.159 (−0.058 to 0.325), too uncertain. Classified afterwards (#407) as "promising, not validated"; the verdict itself was not changed.
What it covers: 207 pairs at 38 English lake sampling points, May to September 2021 and 2023-26, satellite image within a day of the lab sample. Shallow lakes 0.301 (0.052 to 0.475), but that subgroup was singled out after the result was seen.
Next: Review the draft 2027 shallow-lake protocol before 1 May 2027, then collect new readings weekly from 1 May 2027 for a fair test.
Satellite lake observations
Records: LAKE-CHLOROPHYLL-NDCI-TEST-2026-10.md, SATELLITE-RECOVERY-2026-10.md, SATELLITE-PILOT-2026-11.md, LAKE-OBSERVATIONS-CONTRACT-v1.md. Pull requests: #386 (merged), #407 (merged), #468 (merged), #470 (merged), #537 (merged).
Where our summaries differ: The register says the shallow subset "was selected after results". The shallow/deeper split was written into the test before the run; what came after the result was treating the shallow subset as the lead finding.
Satellite index against harmful-algae incidents
Now: this version archived. Archived as a model. Official harmful-algae notices stay on the site as their own observed record, separate from satellite readings.
What the test found when it was run: Too few to judge. The test needed incidents at 4 or more water bodies; there were 3. As description only: a stratified score of 0.64 (95% interval 0.33 to 0.73), which did not beat a seasonal-shift placebo; season-adjusted about 0.48.
What it covers: 14 lake bathing waters on 8 water bodies, EA harmful-algae incidents May to September 2020-26 (2022 has no images).
Reopen when: Better incident collection gives incidents at 4 or more water bodies with matched images, with an independent check.
Records: LAKE-ALGAE-INCIDENT-TEST-2026-10.md. Pull requests: #385 (merged).
Where our summaries differ: The register lists the figures without the verdict word or the doc's statement that they are description only and decide nothing. "Matched imagery at only 3 waterbodies" is loose: 13 incidents were found, 9 with a reading on an incident day, at 3 water bodies.
2027 forward test of the satellite index (withdrawn draft)
Now: this version archived. Its useful parts are being recovered in a new prospective plan: the draft 2027 shallow-lake protocol in the satellite recovery record. The closed draft is not reopened or treated as adopted.
What the test found when it was run: Never run. The draft said it would be withdrawn if #386 failed; #386 failed on 27 October 2026 and the draft was closed unmerged the same day.
What it covers: A plan only. Its rules were never approved or frozen.
Reopen when: Not reopened as it stands. A new prospective plan (already drafted under SAT-OBS) replaces it.
Records: LAKE-ALGAE-2027-FORWARD-TEST.md (on branch docs/lake-algae-2027-forward), SATELLITE-RECOVERY-2026-10.md. Pull requests: #396 (closed, not merged, branch docs/lake-algae-2027-forward).
Promising work being continued
Spill model trained on all nine water companies
Now: running, read on a set date. A routing rule (version 2 at the eight companies, today's model at United Utilities and everywhere else) is logged in shadow beside the live forecast. It does not change any spot's level. Next date: 28 Nov 2026.
What the test found when it was run: Not adopted, twice. Version 1 failed 3 of 4 conditions. Version 2's offset arm was 11 to 23% better at eight companies (pooled Brier gain −0.00550, interval −0.00883 to −0.00268) but 3.4% worse at United Utilities (+0.00007 to +0.00261), so it failed the "no company clearly worse" condition. The other arm failed at United Utilities too (+9.0%).
What it covers: EA start/stop files for nine English companies, trained 2024-25, tested January to August 2026.
Next: Read the shadow window (31 October to 27 November 2026) on 28 November 2026.
Records: NINE-COMPANY-MODEL-V2-TEST-2026-11.md, NINE-COMPANY-MODEL-TEST-2026-10.md, NINE-COMPANY-MODEL-V2-DATA-CHECK-2026-10.md, REGIONAL-ROUTING-2026-11.md. Pull requests: #251 (merged), #357 (merged).
Where our summaries differ: The register credits "15% on Welsh set" to the version 2 offset arm; the doc's 15.2% Welsh figure is version 2's pooled layer, with no offsets there. The register calls −0.00550 "pooled", but in the doc "pooled" names the other arm (−0.00424).
E. coli concentration model
Now: in development. Lake spread and censoring are being developed. The EA samples behind it are shown on the E. coli samples page.
What the test found when it was run: Not shown. On rivers the candidate's Brier score was 0.1071 against 0.1069 for today's form, difference interval −0.013 to +0.013. On lakes the ranking within a site improved (median rho 0.27 against −0.11), but its nominal 80% interval held only 65% of lake results.
What it covers: Reused 2024-26 EA bathing-water samples; exploratory, not a confirmation.
Next: A lake statement judged on lake samples it has never seen, such as 2027's from May.
E. coli samples
Records: CONCENTRATION-STUDY-2026-11.md, CONCENTRATION-LAKE-SPREAD-2026-11.md, ECOLI-EVIDENCE-CONTRACT-v1.md. Pull requests: #466 (merged), #531 (merged).
Where our summaries differ: The register gives the lake interval coverage as 64% in one row (from the lake-spread record, 64.4%) and about 65% in another (from this record).
How long a running spill goes on
Now: in development. Spill lengths for 2024-25 are shown on the Spill durations page and each spot's overflow history. No "ends by" forecast is shown. Next date: 1 Dec 2026.
What the test found when it was run: Failed as stated. The candidate improved the Brier score by about 11.6% (0.1507 against 0.1705) but its probabilities were unreliable: the calibration condition failed in 24 of 45 company-horizon cells. A later calibration gate stopped at 0.027 against 0.03. A replay at the live poll timetable (31 October) and a live check against the site's own polls were descriptive only.
What it covers: Nine English companies' EA spill events, trained on 2024 and scored on 2025, horizons 1 to 24 hours.
Next: The same live check on November's polls on 1 December 2026; a refit on live-measured elapsed time from about 28 December 2026.
Spill durations
Records: SPILL-DURATION-TEST-2026-11.md, SPILL-DURATION-DIAGNOSTICS-2026-11.md, SPILL-DURATION-CALIBRATION-TEST-2026-11.md, SPILL-DURATION-REPLAY-2026-11.md, SPILL-DURATION-LIVE-CHECK-2026-11.md, SPILL-DURATIONS-CONTRACT-v1.md. Pull requests: #459 (merged), #461 (merged), #539 (merged), #530 (merged).
Lower E. coli lines at lakes
Now: in development. Its lessons are carried into the lake concentration work. The line test is not rerun with a lower line until one passes.
What the test found when it was run: Both lines failed. Each met the gate and six of seven conditions. At 235 per 100 ml the lake AUC was 0.632 against 0.65 needed (interval lower end 0.534); at 500 it was 0.535.
What it covers: 11 English lake bathing waters, EA samples 2024-26. These lines are test targets, not safe-swimming cutoffs.
Next: Judged as part of the lake concentration work on new lake samples.
Records: LAKE-ECOLI-LINE-TEST-2026-10.md. Pull requests: #342 (merged).
Where our summaries differ: The register says the 235 line "passed 6/7", which reads as if only that line did; the doc says each line met six of the seven conditions.
Lake water temperature model
Now: shown on the site. Past EA lake temperature measurements are shown on the Measured lake temperatures page, never as today's temperature.
What the test found when it was run: Failed: four of six conditions failed, and it was worse for large and deep lakes (bias −0.40 °C, mean absolute error 1.44 °C). A separate check on a historical buoy at Blelham Tarn (0.5 m) gave 1.38 °C against 1.77 °C for 7-day air; at Windermere the benefit disappeared when both basins were left out of training.
What it covers: 220 held-out English lake waters, May to September 2026, EA spot samples. The buoy check is one small lake, 2016-19, with no intervals.
Next: A local or lake-type model with explicit depth and season, held out by whole water body and judged on 2027 readings.
Measured lake temperatures
Records: LAKE-TEMPERATURE-TEST-2026-10.md, LAKE-TEMPERATURE-SENSORS-2026-10.md, LAKE-TEMPERATURE-OBS-CONTRACT-v1.md. Pull requests: #419 (merged), #529 (merged).
Dry days before rain, and 72-hour rain, in the E. coli model
Now: waits on data, a source or a decision. Kept as a reusable feature at low priority.
What the test found when it was run: Both questions failed. The dry-spell term itself failed three conditions and pointed the opposite way to the idea (gain −0.00024, interval −0.00136 to +0.00080). 72-hour rain gained +0.00049 against a 0.0005 margin, interval including zero.
What it covers: The E. coli model's EA samples; a longer rain window helped rivers a little, not enough to clear the bar.
Next: New data or a new target that raises the expected gain. Not a rerun to move the last decimal.
Records: DRY-SPELL-TEST-2026-10.md. Pull requests: #318 (merged).
Where our summaries differ: The register calls this "Inconclusive"; the doc's verdict is that both questions fail. The register's figures are for the 72-hour rain question only and leave out that the dry-spell question failed with the opposite sign.
Where to sample next (simulation)
Now: waits on data, a source or a decision. Not wired into anything. The record says "Not pursued"; the register's later route is a transparent coverage planner before any automatic site choice.
What the test found when it was run: Failed. In a simulated world built to the method's own assumptions, the information-based policy beat simple coverage in 58.5% of 200 replications against a 60% condition; mean gain 0.000189 (0.000077 to 0.000306).
What it covers: Synthetic data only; nothing about real waters.
Next: A coverage planner with simple coverage and wet-day references, if a sampling partner needs one.
Records: SAMPLING-PRIORITIES-SIM-2026-10.md. Pull requests: #381 (merged).
Where our summaries differ: The register does not give the doc's verdict ("fail") or its decision "Not pursued"; its coverage-planner route is a newer register decision, not in the doc.
Lake direction rule
Now: waits on data, a source or a decision. Kept as an option, off. Today's rule stays until a supported change.
What the test found when it was run: Passed all seven stated conditions but not adopted: per-site correlations fell at every changed lake site (within-site rho 0.290 to 0.245), without intervals. The pre-stated rule would have switched it on; that step was reverted.
What it covers: English lake bathing waters, about 57 samples a site. The checks show no harm to pooled scores; they do not show a gain.
Next: A new pre-stated test on more lake samples, with paired site intervals.
Records: LAKE-DIRECTION-TEST-2026-10.md. Pull requests: #313 (merged).
Lake near field: an inflow's own dilution near its mouth
Now: this version archived. The branch and its record are kept for a sensitivity study of near-shore plumes.
What the test found when it was run: Failed one of six conditions, the cross-site ranking (rho 0.687 to 0.602, change −0.085, interval −0.237 to +0.006). Forward Brier was slightly better (−0.00026). The 1 km decay was a judgement, not fitted. Closed unmerged.
What it covers: English lake bathing waters with overflows. Without the three Coniston sites the cross-site rho barely moved (0.678 to 0.676).
Reopen when: Source and shore hydrodynamics, and paired samples near inflows, support a near-field rule.
Records: LAKE-NEAR-FIELD-TEST-2026-10.md (on branch claude/lake-near-field). Pull requests: #187 (closed, not merged, branch claude/lake-near-field).
Outfalls on a side channel
Now: this version archived. The test is kept. Checked join corrections and source-position evidence are preferred to a national snapping rule.
What the test found when it was run: Neither option passed. The junction option failed conditions 1 to 3: its intervals were too wide for the margins (Brier change −0.00004, interval −0.00075 to +0.00063), so it is not shown to be worse. The named-snap option passed 1 to 5 and failed 6, worsening Friars Meadow (Brier 0.0870 to 0.0885). Closed unmerged.
What it covers: EA bathing waters where an overflow named as closest sits on a short side channel.
Reopen when: Specific verified cases, each with a regression example.
Records: OUTFALL-CHANNEL-TEST-2026-10.md (on branch claude/outfall-channel-test). Pull requests: #181 (closed, not merged, branch claude/outfall-channel-test).
Where our summaries differ: The register says the named option "moved many joins"; the PR reports the sites it changed and the Friars Meadow loss but this count was not checked here.
Active or scheduled
Recalibrating the live spill forecast
Now: running, read on a set date. An approved winter test is set: fit on or after 10 December 2026 to data through 6 December, judged on 14 December 2026 to 7 March 2027. Next date: 9 Mar 2027.
What the test found when it was run: The first live recalibration test failed: company intercepts cut the held-out Brier score by 4.3% against a 5% bar, over 12 autumn days (an earlier 10-day run gave 3.5%). A later diagnostic found the forecast's chances run too high overall, with differences between companies.
What it covers: Live spill rows from 29 September to 12 October 2026 for the test; the diagnostic used live rows to 24 October.
Next: Fit on or after 10 December 2026; read on or after 9 March 2027.
Records: LIVE-RECALIBRATION-TEST-2026-10.md, CALIBRATION-CHECK-2026-10.md, CALIBRATION-TEST-PROPOSAL-2026-11.md. Pull requests: #178 (merged), #340 (merged), #374 (merged).
Live spill status as a forecast input
Now: running, read on a set date. Running in shadow beside the live forecast, 25 October to 21 November 2026. Not adopted and not dropped. Next date: 23 Nov 2026.
What the test found when it was run: On 2025 data the status input helped at every lead; at lead 0 Brier 0.0265 against 0.0362 (−27%, interval −0.0125 to −0.0070). About half the lead-0 gain comes from how the label is defined. With status missing the candidate is worse, so it needs a fallback.
What it covers: 2025 EA event data, retrospective; needs confirmation on SwimSignal's own polls.
Next: Read on or after 23 November 2026.
Records: LIVE-STATUS-FEATURE-TEST-2026-10.md, LIVE-STATUS-SHADOW-TEST-2026-10.md. Pull requests: #254 (merged), #262 (merged).
Lead calibration, option B
Now: running, read on a set date. Window 18 October to 14 November 2026. Next date: 16 Nov 2026.
What the test found when it was run: Not yet read. On rows before the window, B would have failed all three conditions; that was reported only and decides nothing.
What it covers: A paired prospective check of an EDM-fitted lead map against today's map on live rows.
Next: Read on or after 16 November 2026.
Records: LEAD-CALIBRATION-B-TEST-2026-10.md. Pull requests: #252 (merged).
Company calibration (A8)
Now: running, read on a set date. Window 26 October to 22 November 2026. Next date: 25 Nov 2026.
What the test found when it was run: Not yet read. Per-overflow offsets outside United Utilities were fitted and frozen on 24 October 2026; the interval amendment was filed before the window opened.
What it covers: Live lead-0 rows outside United Utilities.
Next: Read on or after 25 November 2026.
Records: COMPANY-CALIBRATION-TEST-2026-11.md. Pull requests: #333 (merged).
Ensemble rain (D4)
Now: running, read on a set date. Window 23 October to 19 November 2026. Next date: 21 Nov 2026.
What the test found when it was run: Not yet read. No backtest was possible, so the test is prospective. The rain band on days 3 to 5 is display only.
What it covers: Listed spots; at most 1,000 ensemble calls a day, from spare calls only.
Next: Read on or after 21 November 2026.
Records: ENSEMBLE-RAIN-TEST-2026-11.md. Pull requests: #257 (merged).
Upgraded overflows, option B
Now: running, read on a set date. Run after the state release on or after 2 December 2026. Next date: 2 Dec 2026.
What the test found when it was run: Not yet run. A recency note found production uses recency 0.25, not 1 as the statement said, and added a reported arm (P1).
What it covers: Overflows recorded as upgraded; a pass leads only to a 28-day shadow.
Next: Run on or after 2 December 2026.
Records: UPGRADED-OVERFLOWS-TEST-B-2026-10.md, UPGRADED-OVERFLOWS-TEST-B-RECENCY-NOTE-2026-10.md. Pull requests: #325 (merged), #349 (merged).
Where our summaries differ: The register's "new-window decision" and "existing recency arm" are not in either doc: the doc sets a run date, and P1 is a start-date arm, not a recency arm.
River rises from upstream gauges
Now: running, read on a set date. Scope and harness are in an open draft PR; fetch and scoring refuse to run before 2 November 2026. Next date: 2 Nov 2026.
What the test found when it was run: Not yet run. The programme notes give a median arrival of 1.5 hours, which becomes about an hour of warning at most river spots once publication delay is taken off.
What it covers: River spots with an upstream EA gauge. A river-rise figure is not a swimming-safety forecast.
Next: Review, then fetch, on or after 2 November 2026.
Records: AI-PROGRAMME-2026-10.md. Pull requests: #383 (open, branch proto/river-rises-scope).
Where our summaries differ: The register says "median lead around 1.5 h"; the doc says median arrival 1.5 h and about an hour of warning. The primary record is in open PR #383, not on main.
Spills with no recorded end
Now: running, read on a set date. Measure again with the same script. Next date: 9 Nov 2026.
What the test found when it was run: Measured, no change made: with the alternative rule no spot's right-now level or headline changed in the nine-day window.
What it covers: Listed spots, not map clicks; the window held only 1.5 days of a large United Utilities rise.
Next: Re-measure on or after 9 November 2026.
Records: MISSING-EVENT-END-2026-10.md. Pull requests: #384 (merged).
Where our summaries differ: The doc's threshold for acting at the re-measure (more than 1% of spot-builds) is looser than its original pre-run threshold (0.5% or 3 headline raises); the register does not mention this.
2027 primary evaluation
Now: running, read on a set date. Season 1 May to 30 September 2027; the model is frozen by 30 April 2027. Next date: 31 Oct 2027.
What the test found when it was run: Not run; the season has not started. Spot-level scoring rules were signed on 25 October 2026 as amendment 2.
What it covers: The frozen tagged model, May to September 2027. New models are reported separately as candidates and never replace its result.
Next: Analysis once, on the snapshot of 31 October 2027.
Records: PREREGISTRATION-2027.md, SPOT-SCORING-RULINGS-2026-10.md. Pull requests: #121 (merged), #353 (merged).
Data and directions with a dependency
River sonde readings in the E. coli estimate
Now: waits on data, a source or a decision. Parked; revisit in October 2027.
What the test found when it was run: Not run: it stopped at its pre-gate. At most 71 of 907 river rows at 4 sites could have a sonde reading, against a gate of 150 that was set after seeing coverage. Not a negative result.
What it covers: Metadata count only; no readings were fetched or matched.
Next: More paired data, with alignment and latency checked. Correctly placed, dated sensor readings may be shown on their own.
Records: SONDE-SIGNAL-TEST-2026-10.md. Pull requests: #403 (merged).
Where our summaries differ: The register says "71 matched river rows"; the doc's 71 is an upper bound from metadata, with nothing matched.
Radar rain
Now: waits on data, a source or a decision. The cached radar and extraction are kept.
What the test found when it was run: Radar passed as observed rain (Spearman 0.876 against 291 gauges). With rain known, the model was the main limit: radar against same-day forecast rain gained −0.00046 (interval −0.00095 to +0.00010). Against forecasts a day or more ahead, perfect rain would recover most of the loss.
What it covers: A model trained on United Utilities applied to other companies in 2025.
Next: Reuse for river-rise and event-timing questions where resolution matters.
Records: RADAR-RAIN-CHECK-2026-10.md. Pull requests: #343 (merged).
Where our summaries differ: The register's "even perfect rain added little" holds only against same-day forecast rain; the doc says perfect rain would recover most of the loss at leads 1 to 4.
GloFAS river flow
Now: waits on data, a source or a decision. Not shown as a gauge.
What the test found when it was run: Passed narrowly: rank correlation 0.88 against 0.80 needed; the event condition passed by 0.005. GloFAS reads about a third low, matches best a day late, and its nearest cell is off the river at 20 of 42 spots.
What it covers: Relative flow only, not a discharge in cubic metres a second at the swimming point.
Next: Test relative flow inputs where they are timely and matched to the river.
Records: GLOFAS-CHECK-2026-11.md. Pull requests: #255 (merged).
Coastal sea temperature
Now: waits on data, a source or a decision. Live calls wait until at least 22 November 2026 (6 December if D4 extends). Next date: 22 Nov 2026.
What the test found when it was run: A brief, not a test: as it stands it does not fit the free forecast budget, and one measurement decides whether a smaller version can.
What it covers: Cost, terms and offshore-cell behaviour checked at 2 sites.
Next: Revisit the call allowance after the D4 read, or an explicit paid-budget decision.
Records: COASTAL-SEA-TEMPERATURE-BRIEF-2026-10.md. Pull requests: #420 (merged).
Where our summaries differ: The register says offline preparation "can proceed now"; the brief says nothing in its steps 1 to 3 is started and orders a cell-count check first.
Sea currents at the coast
Now: waits on data, a source or a decision. Account creation and outside orders are Ethan's.
What the test found when it was run: Scoping only: no test can be run yet, because there is no coastal model to add currents to. 32,874 coastal samples at 404 sites are on record. The 8 km current grid does not resolve many near-shore plumes.
What it covers: Scoping record and an unsent data order.
Next: An auditable coastal sample and coverage explorer, then a staged coastal model.
Records: SEA-CURRENTS-SCOPING-2026-10.md, UKMCAS-ORDER-DRAFT-2026-10.md. Pull requests: #331 (merged).
Where our summaries differ: The register refers to a "weak spill-only association"; no spill-only association was computed. The doc's staged plan says the currents test should not run if nearby spills do not rank samples.
Overflow data sources, earlier spill history and population equivalent
Now: waits on data, a source or a decision. Earlier history is kept out of the live feeds.
What the test found when it was run: Inventories. No source gives an actual upgrade completion date per overflow; no open source gives population equivalent per overflow. Earlier event records exist openly for some companies.
What it covers: Source and licence inventory; nothing trained or scored.
Next: A source coverage and provenance inventory; prefer measured loads and flows over proxies. Re-check dated availability before any new fetch.
Records: OVERFLOW-DATA-SOURCES-2026-10.md, EARLIER-SPILL-HISTORY-2026-10.md, PE-SOURCES-2026-10.md. Pull requests: #358 (merged), #258 (merged), #220 (merged).
Waterhead bacteria samples (WET)
Now: shown on the site. Shown on the Waterhead page since 31 October 2026. Next date: 9 Nov 2026.
What the test found when it was run: No test yet. 59 weekly samples at Waterhead, 2025-26, none over 900 per 100 ml, so no skill above 900 can be measured on them. Seen before any test was designed: exploratory only.
What it covers: One site at the head of Windermere, sampled by Ambleside Action for a Future.
Next: When the group's models arrive (check from 9 November 2026), reproduce them privately, then log them beside SwimSignal's in shadow for 2027.
Waterhead bacteria samples
Records: WATERHEAD-WET-CONTRACT-v1.md, PARTNER-PROGRAMME-2026-11.md. Pull requests: #561 (merged).
Wales, Scotland and Ireland
Now: waits on data, a source or a decision. Directories are live; forecasts wait on licences and local tests.
What the test found when it was run: Plans, not tests. Wales has the data but not the permission; Scotland could be forecast with its spill records once a test passes; Ireland has no reusable spill data.
What it covers: Plans only; nothing built.
Next: Expand observations and evidence first, then licence and local validation before forecasting.
Records: WALES-PLAN-2026-10.md, SCOTLAND-PLAN-2026-10.md, IRELAND-PLAN-2026-10.md, SOURCE-SCOTTISH-WATER-2026-10.md. Pull requests: #123 (merged), #117 (merged), #122 (merged), #228 (merged).
Variants with negative evidence
Neural network in place of the tree model
Now: this version archived. Tree training and data-coverage findings are reused by the regional work.
What the test found when it was run: Not adopted. The network was worse: Brier 0.0372 against 0.0362, +0.0011 (interval +0.0005 to +0.0017), failing conditions 1 to 4. With more years it was still 1.2% worse. Most of the trees' gain came from the covariate return-year change, not from extra years (−0.00066, interval −0.00149 to +0.00013).
What it covers: 2025 spill verification at the tested companies; 2023 added in the multi-year test.
Reopen when: A specific new representation, data source or mechanism. A bigger network alone is not a reason.
Records: NEURAL-CHALLENGER-TEST-2026-10.md, MULTI-YEAR-TEST-2026-10.md. Pull requests: #239 (merged), #259 (merged).
Where our summaries differ: The register's "did not beat trees" understates the loss: the network was measurably worse.
Covariate return-year question
Now: waits on data, a source or a decision. No adoption. The question stays open for the 2026 files.
What the test found when it was run: No, as stated: sub-condition 1a passed (17 of 18 pairs) and 1b failed narrowly (7 of 9 against 8 needed). The fix had a real overall gain (−0.00099, interval −0.00137 to −0.00063) but failed at Southern 2025.
What it covers: EA annual-return covariates in the spill model.
Next: F26 runs as stated once the 2026 annual-return files are published.
Records: COVARIATE-YEAR-TEST-2026-10.md. Pull requests: #260 (merged).
Where our summaries differ: The register files this with the negatives as "leakage did not hold"; the doc says the carry-over is not simply an error and that F26 runs once the 2026 files are out.
Dynamic flow dilution
Now: this version archived. The static length-based dilution already in the forecast stays; this failure is not about it.
What the test found when it was run: Failed as stated. Overall gain +0.00011 (95% interval −0.00089 to +0.00110), too uncertain; the placebo was not beaten; with real-time gauges it was worse (about −0.0024). Archive gauges lagged badly.
What it covers: River samples with a matched gauge. It did not test flow as a separate input.
Reopen when: Timely matched discharge and a different, defensible transport mechanism.
Records: FLOW-DILUTION-TEST-2026-10.md. Pull requests: #404 (merged).
Spill size from urban share, spill hours or consented flow
Now: this version archived. No conclusion that spill volume cannot matter.
What the test found when it was run: Failed. The built-up-area share failed all three conditions and pointed spill size the wrong way at the overflows that matter. Spill hours failed conditions 1 and 4 (a loss could not be ruled out). Population equivalent was not in the source; consented dry-weather flow did worse than most random reshuffles.
What it covers: These proxies only. A measured per-overflow spill size from an independent source is untested.
Reopen when: Measured discharge or load per overflow, correctly linked infrastructure, or credible source corrections.
Records: URBAN-DILUTION-TEST-2026-10.md, URBAN-DILUTION-DIAGNOSIS-2026-10.md, SPILL-SIZE-TEST-2026-10.md, PE-SIZE-TEST-2026-10.md. Pull requests: #166 (merged), #172 (merged), #197 (merged), #210 (merged).
Sunlight and temperature in die-off
Now: this version archived. This parameterisation is archived, not the subject.
What the test found when it was run: Both questions failed; nothing adopted. The held-out river AUC gain (+0.0072) had an interval above zero, but the deciding rho gain did not, and the pick sat at a grid corner.
What it covers: EA bathing-water samples; weather proxies. Water temperature and turbidity were not tested.
Reopen when: Direct microbial, irradiance or flow measurements support a different model.
Records: DIEOFF-WEATHER-TEST-2026-10.md. Pull requests: #303 (merged).
Farm-pressure flag
Now: this version archived. The flag's page line stays as a description.
What the test found when it was run: Failed conditions 1, 2, 5 and 6; nothing adopted. The flag rests on nutrient and ecology elements, not bacterial ones.
What it covers: The EA reasons-for-not-achieving-good flag as an E. coli input.
Reopen when: Better agricultural event labels, such as dated runoff or livestock events.
Records: FARM-PRESSURE-TEST-2026-10.md. Pull requests: #332 (merged).
Wind on lakes
Now: this version archived. This proxy is archived.
What the test found when it was run: Failed: conditions 1, 2 and 3 failed, 4 to 6 held. No loss was shown (Brier changes under 0.0001).
What it covers: Gridded wind at lake bathing waters. A smaller effect, or one below the grid scale, is not ruled out.
Reopen when: Physically matched lake fetch or circulation data, such as valley wind or in-lake sensors.
Records: LAKE-WIND-TEST-2026-10.md. Pull requests: #345 (merged).
Dry-weather spill history
Now: this version archived. An observed history note on the page is a separate, descriptive product.
What the test found when it was run: Question 1 is no; question 2 failed all four conditions, worse at 7 of 9 companies with intervals above zero. Not a near miss.
What it covers: The models already rank dry-day spills well (AUC 0.85 to 0.89).
Reopen when: Changed infrastructure, longer reliable live labels, a second year of offsets, or complete 2026 files for all nine companies.
Records: DRY-WEATHER-SPILLS-TEST-2026-10.md. Pull requests: #346 (merged).
Where our summaries differ: The doc's reopen conditions are a second year of offsets or complete 2026 files; the register's are changed infrastructure or longer live labels. Both are listed here.
Wider transport grid
Now: this version archived. The accepted transport fit stays in use.
What the test found when it was run: Conditions 1 and 2 failed; the settings stay at #248's. River AUC was worse by 0.018, with an interval wholly below zero.
What it covers: The same E. coli samples as the accepted fit.
Reopen when: New samples or a new mechanism, such as a separate test of the dilution term. Not another grid on the same outcomes.
Records: TRANSPORT-FIT-2-TEST-2026-10.md. Pull requests: #249 (merged).
Soil moisture in the spill model and at lakes
Now: this version archived. Only the spill-model addition and lake use are archived. The river E. coli use is adopted.
What the test found when it was run: Mixed. Adding soil moisture to the spill model had a real loss at Anglian (+0.00050, interval +0.00012 to +0.00094). In the E. coli model the leads test failed on one condition: lakes were 0.00061 worse at lead 1 against a 0.0005 margin. The E. coli question on all samples passed.
What it covers: These targets and populations. Rivers were adopted separately.
Reopen when: A new lake target or spill-model formulation with its own test; not a rerun of these arms.
Records: SOIL-MOISTURE-TEST-2026-10.md, SOIL-MOISTURE-ECOLI-LEADS-TEST-2026-11.md, SOIL-MOISTURE-WALES-CHECK-2026-11.md. Pull requests: #344 (merged), #360 (merged).
Adopted, superseded and corrections
Transport fit
Now: in the forecast. In the forecast since #248.
What the test found when it was run: All four conditions held. Every year picked 0.2 m/s river speed and T90 72 hours, with a 0.5 dilution exponent; held-out Brier 0.0919 against 0.0938. The pick sat at a corner of the grid and lake AUC over 900 fell.
What it covers: EA E. coli samples; the no-gauge default speed only.
Records: TRANSPORT-FIT-TEST-2026-10.md. Pull requests: #248 (merged).
Lake path, residence and distance through water
Now: in the forecast. Successive accepted changes: lake path (#176) was replaced by spill-time residence (#211); distance through water became the default (#231). Residence without spill time was overtaken and kept as an option.
What the test found when it was run: Each passed its stated conditions (path five of five, residence and spill-time residence and water distance seven of seven). Each record says the samples show no harm and cannot show a gain.
What it covers: English lake spots. The case for distance through water is geometric.
Records: LAKE-PATH-TEST-2026-10.md, LAKE-RESIDENCE-TEST-2026-10.md, LAKE-RESIDENCE-SPILL-2026-10.md, LAKE-DISTANCE-2026-10.md. Pull requests: #176 (merged), #211 (merged), #231 (merged).
Where our summaries differ: The register calls these "improvements"; each record says the samples show no harm and cannot show a gain.
Evaluation pins, refit and missing rain
Now: in the forecast. In use. The refit was later replaced by the transport-fit refit.
What the test found when it was run: Corrections. The evaluation now places bathing waters as the site does; no Brier change could be told from zero. The refit matched every reported measure (1,502 samples, LOYO Brier 0.0938). Missing rain is treated as unknown, not dry.
What it covers: The E. coli evaluation and validation files.
Records: EVAL-PINS-TEST-2026-10.md, ECOLI-REFIT-SITE-PINS-2026-10.md, MISSING-RAIN-CHECK-2026-10.md. Pull requests: #199 (merged), #203 (merged), #200 (merged).
Soil moisture in the river E. coli estimate
Now: in the forecast. Adopted for rivers in #361 on 26 October 2026. The 2027 samples are the prospective check.
What the test found when it was run: Passed on rivers: pooled gain +0.0132; the pass is narrow at the lower end, and the gain is in the estimate's level, not in how it ranks days within a site.
What it covers: River bathing waters; lakes keep today's model.
Records: SOIL-MOISTURE-RIVERS-TEST-2026-11.md, SOIL-MOISTURE-ECOLI-PLAN-2026-10.md. Pull requests: #360 (merged), #347 (merged), #361 (merged).
Where our summaries differ: The register says the river adoption came "after the broader test failed". The broad E. coli question passed (gain +0.0071, interval +0.0027 to +0.0116); what failed was the leads test, on one lake condition.
River water temperature estimate
Now: shown on the site. River estimate shipped in #418. From 31 October 2026 a labelled provisional estimate runs all year at the named spots, clicked points and directory waters, each worded by what was measured.
What the test found when it was run: Rivers passed, lakes failed (river RMSE 1.56 °C). At four river sensors in 2025 the shipped estimate's typical error was well inside the 2 °C it states. Sea and winter were not judged.
What it covers: Rivers May to September for the test. The year-round estimate everywhere else is labelled provisional.
Next: The winter error readout, and the sea curve's error outside England.
Records: WATER-TEMPERATURE-MODEL-TEST-2026-10.md, WATER-TEMPERATURE-SENSOR-REPLAY-2026-10.md, WATER-TEMPERATURE-2026-10.md, WATER-TEMPERATURE-BASELINE-2026-10.md. Pull requests: #414 (merged), #418 (merged), #400 (merged), #536 (merged), #538 (merged), #541 (merged), #548 (merged).
Where our summaries differ: The register says about 93 Open-Meteo calls a day; the baseline record says about 91.
Official advice finder and monitor anomalies
Now: shown on the site. Both merged and live (#379, #382). The finder is run by hand weekly in season.
What the test found when it was run: Deployed observation features, not models. The finder only drafts; the site shows reviewed advisories. The long-run anomaly list is on the data-quality page.
What it covers: Official advice is reviewed by hand; anomalies are display only.
Next: Maintain the official-source reviews.
Records: ADVISORY-FINDER-2026-10.md, ADVISORY-FINDER-RUN-SHEET.md, MONITOR-ANOMALIES-2026-10.md. Pull requests: #379 (merged), #382 (merged).
Map clicks: network lines and lake shores
Now: in the forecast. Full lines (#225) and lake shores (#227) are in use.
What the test found when it was run: Deterministic placement fixes. With simplified lines 16 of 1,588 clicks (1%) landed on the wrong river; full lines fix 15. Lake shore clicks: 600 of 600 placed, against 525 on main.
What it covers: Click-anywhere placement. These are correctness checks, not noisy thresholds.
Records: ANYPOINT-LINES-2026-10.md, ANYPOINT-LAKES-2026-10.md. Pull requests: #225 (merged), #227 (merged).
Map clicks on a side arm
Now: this version archived. Off. Its records are kept as the successors of #208.
What the test found when it was run: Five rules tried, all off. The first (#208, closed unmerged) fixed Queen Elizabeth Gardens but moved clicks elsewhere onto parallel channels, failing check 5. Later rules failed check 5 or check 3; the last failed check 3 at one spot, Windermere Lakeside.
What it covers: Deterministic placement checks; do not loosen them as if they were noisy.
Reopen when: A specific misplaced click that a rule fixes while passing every check unchanged, or Ethan's decision on the last rule's one-spot failure.
Records: ANYPOINT-SIDE-ARM-2026-10.md, ANYPOINT-SIDE-ARM-MOST-2026-10.md, ANYPOINT-SIDE-ARM-FLOOR-2026-10.md, ANYPOINT-SIDE-ARM-LENGTH-2026-10.md, ANYPOINT-SIDE-ARM-CLICKS-2026-10.md. Pull requests: #208 (closed, not merged, branch claude/anypoint-side-arm), #218 (merged).
Where our summaries differ: The register lists these under adopted and superseded work; every side-arm rule failed and is off.
Overflow positions
Now: in the forecast. Settled positions are in use; open cases continue one by one.
What the test found when it was run: Verified corrections. Of 166 position conflicts, 37 were settled; 3 of 7 sea outfalls were settled; one of three spot conflicts was settled. The rest stay open.
What it covers: Named cases with evidence; uncertainty is not a reason to invent a join.
Records: OVERFLOW-POSITIONS-2026-10.md, OVERFLOW-SEA-OUTFALLS-2026-10.md, OVERFLOW-SPOT-CONFLICTS-2026-10.md. Pull requests: #209 (merged), #214 (merged), #221 (merged).
Overflow positions by catchment
Now: this version archived. Its branch and record are kept for independent source checking. Its automatic move rule is not deployed.
What the test found when it was run: Failed its own check: it disagreed with settled positions in 6 of 16 decisive cases, against at most 2 allowed. Nothing moved. Closed unmerged.
What it covers: Automatic position moves by WFD catchment.
Reopen when: Independent source evidence for a specific overflow; not as an automatic rule.
Records: OVERFLOW-CATCHMENTS-2026-10.md (on branch claude/overflow-catchments). Pull requests: #219 (closed, not merged, branch claude/overflow-catchments).
Swimmer comprehension sessions
Now: waits on data, a source or a decision. The earlier swimmer-testing list is replaced by this protocol.
What the test found when it was run: A plan, not evidence: no session has been run. Task 3b (the clearing time) was added on 30 October 2026 before anyone was recruited.
What it covers: 8 to 10 sessions planned.
Next: Run the sessions; merged materials are not completed sessions.
Records: SWIMMER_TESTING.md, COMPREHENSION-TEST-2026-10.md, CLEAR-TIME-WORDING-2026-11.md. Pull requests: #23 (merged), #277 (merged), #465 (merged).
Where our summaries differ: The register says the earlier plan was "superseded by current sessions"; it was replaced by a protocol, and no session has run.
Noise audit of earlier tests
Now: reference record. Used by the research workflow; it does not change any verdict.
What the test found when it was run: An audit of tests that decided on point rules without a noise allowance. Point rules with small failures: the nine-company model and lake direction. Clear failures: neural, multi-year, covariate-year Q2, dry-weather spills Q2, urban dilution, population size, die-off Q2, farm pressure, lake wind and transport fit 2. Map-click checks are deterministic, so noise does not apply.
What it covers: Tests on main to 25 October 2026, with a 30 October supplement.
Records: NOISE-AUDIT-2026-10.md. Pull requests: #356 (merged).