What this is
This site shows an experimental forecast of river flow magnitude for gauges across England and Wales, produced by CEFA — Catchment-Event Frequency Analysis. CEFA is a storm-response simulation trained on 437,000 historical storm events across 582 UK river gauges. Given forecast rainfall for a catchment, it simulates how that catchment's rivers have responded to similar storms in the past, and reports the predicted peak flow as a range (10th–90th percentile) rather than a single number.
The forecast tells you roughly how big a river's response is likely to be. It is deliberately silent on exactly when a peak will happen within a storm — timing is much harder to forecast reliably than magnitude, and this site does not attempt it.
Where the gauge is in the CEFA storm catalogue, the hydrograph on the panel also shows similar past storms at that same gauge: the nearest historical events on storm depth, duration, intensity, 30-day rain and season, each drawn with the peak and rise/fall it actually produced, lined up on this storm's start. That is a catalogue lookup, not a second model, and it is not a forecast of when this peak arrives. The dashed line is still CEFA's likely peak for the cycle. Gauges that are not in the catalogue simply omit the traces.
This cycle
What is on the map right now. These come from the forecast file the page loads, so they change with each cycle. The model is the identifier of the storm-response model that produced these numbers — quote it if you are reporting a result or querying a figure.
| Model | — |
|---|---|
| Issued | — |
| Cycle run | — |
| Next update | — |
| Gauges | — |
How to read the map
The blue wash is the rain: the median across the 50 ECMWF ensemble members for that rain-day (09:00–09:00 UTC), read off the forecast's own 0.25° grid. The map shows today and the days still ahead — yesterday is dropped. Darker blue means more rain that day, and the colour scale is shared across the window, so a quiet day stays pale against a wet one.
Each frame is that day's own ensemble median, not a slice of the five-day total. Those two numbers are not the same thing — the median of a sum is not the sum of the medians. If a cycle ever publishes only the window total, the map falls back to showing that total and the day buttons do not appear.
That grid covers the sea, Scotland and Ireland too, but the layer is deliberately faded out beyond about 34 km from the nearest gauge. There are no gauges in Scotland or Ireland, so drawing rain there would imply river coverage this forecast does not have. Where the blue stops is where the forecast stops.
The dots are gauges, and their colour is the only thing that carries a warning. Grey means no notable rise is likely; blue, amber and red mean the forecast gives that river at least a 1-in-20 chance of topping its own 2-year, 5-year or 10-year flood respectively. Amber and red dots also carry an outer ring, so status is never conveyed by colour alone, and they are labelled directly on the map.
Dot size does not mean catchment size. Grey dots are drawn small and faint on purpose: on a quiet day the map should look quiet. Zoom in and they come forward.
Everything is per-river. "A 1-in-5 flood" means a 1-in-5 flood for that catchment — on a small brook that can be a few cubic metres a second, and it says nothing about whether any property will flood.
What the numbers can and cannot resolve
The forecast is a simulation, and re-running the same cycle on a different random draw moves the small numbers about. The service ran one identical cycle — same ECMWF run, same gauges, same levels — on four seeds and counted 6, 8, 7 and 7 gauges above a 1-in-20 chance, with a national maximum that wandered between 9.3% and 10.3%.
So this site never prints an exceedance probability below 1%; under that it simply says “below 1%”. And the “where to watch” list is not ordered on probability at all. Between seed pairs, the rank correlation on probability was 0.911; on how close the likely peak comes to a river's own 2-year flood it was 0.9993. Ordering on the first would reshuffle the list between cycles with no weather behind it, which on a page you check repeatedly reads as news when it is noise.
That ratio also behaves correctly as the forecast gets closer, which the probability does not (see below). At the gauge whose chance swung 20% across the three issues before this storm, the ratio held flat to 1.5%.
So the list is grouped by status — that is the warning, and it must never appear out of order — and within a group, ordered by that steadier ratio. The chance of topping the 2-year flood still appears on every row; it labels a river rather than ranking it. For the same reason, treat a headline count as “a handful” rather than a fixed list: which rivers appear is partly the draw.
A falling percentage is not the river easing
This is the counter-intuitive one, and the easiest way to misread the page. Watch a gauge across successive forecasts and you will often see its chance of topping a flood level fall as the storm gets closer. That is usually not the river standing down.
What is happening is that the ensemble tightens. Four days out the fifty members disagree wildly, and a handful of them are far wetter than the rest. A probability of clearing a high threshold is a question about that optimistic upper tail, so as the members converge the tail comes in and the probability collapses — while the best estimate barely moves.
Measured across the three issues before the 28 August storm: the median chance of topping a 2-year flood fell 75%, while the median forecast peak moved 0.7% and not one ensemble member dropped its storm. The chance is loudest when the forecast knows least. If you are tracking one river across cycles, watch the “% of its 2-year flood” figure, which is stable, rather than the percentage chance, which is not.
A percentile is not a probability
Two different numbers on this page look like they should be convertible, and are not. The peak range (10th–90th percentile) is taken over ensemble members that produce a storm. The chance of topping a level is taken over all realisations, including members forecasting no qualifying storm at all. Different denominators — the ratio between them has a median of 0.72 — so neither can be derived from the other, and this site never tries to.
The range does not fail symmetrically
Every peak on this site is given as a range rather than a single number, and it is natural to read a range as equally likely to be wrong in either direction. At long lead it is not.
On the ensemble hindcast of the 27 August 2026 Midlands storm, at 48–72 hours before a peak, 16.4% of observed peaks landed above the top of the forecast range against 1.9% below the bottom, and the middle of the range sat at about two-thirds of the peak that actually arrived. So the likeliest way a four- or five-day forecast here is wrong is the river coming in higher than the band, not lower.
That is one storm and thirteen gauges, so treat it as a caveat rather than a correction — we have not applied any adjustment for it. But it is the opposite of what a symmetric-looking band invites you to assume, which is why it is written down here rather than left for you to discover.
One more thing about that figure: eight of those thirteen gauges are rivers the served model was trained on, so it is mostly a measurement of how the band behaves on rivers the model already knows. On a river it has not seen, the range is wider of the mark still — see Validation below. Whichever way, the error is on the high side.
Three things a gauge can be
Most gauges are simply forecast, and their dot is coloured by status as above. Two other things can happen, and neither of them means “low risk”:
- Rain already fallen. The wet spell started before this forecast began, and too little rain is still to come to price a new peak. The gauge is drawn in its own muted tone, not the quiet grey.
- Not assessed. Too much of the last 180 days of rainfall is missing over that catchment, so the model was not run at all. These are drawn as a hollow ring, because we have nothing to fill them with. They are the places we know least about, so they must not look like the safest dots on the map — and they are listed last, never first.
Data sources
| Source | Used for | Licence |
|---|---|---|
| Environment Agency | River gauge flow data | Open Government Licence |
| ECMWF | Forecast rainfall | CC-BY 4.0 |
| CEH-GEAR | Historical gridded rainfall (model training) | Open Government Licence |
| LandIS | Soil and catchment descriptors | Open Government Licence |
| OS Zoomstack | Basemap context data | Open Government Licence |
Validation
In a research test, a version of the method was retrained with 69 rivers removed from its training data and then scored on those 69. Its forecast range scored 0.608 on average (lower is better — a scoring rule that rewards a range that is both narrow and correct), against 0.660 for the FEH statistical method — better on 78% of those rivers. That test used a research configuration, not the model serving this page.
On the real storm of 27 August 2026 across the Midlands, CEFA's median forecast error was ×1.33 (i.e. typically within a third of the observed peak), and 69% of observed peaks fell inside the forecast's 10th–90th percentile range. Eight of those thirteen gauges are among the 582 the served model was trained on. On the five it had genuinely not seen, two of five fell inside the range, and the median error was ×1.93.
Over six months of live weather (February–August 2026, 4,429 storms at 798 gauges) the served model's median error was ×1.52 with 66% of peaks inside the range. Restricted to the 412 of those gauges outside its training set: ×1.69, with 61% inside the range. Both figures are worse than the nominal 80% — the range is too narrow, and we say so.
The served model is not an ungauged model. It was trained on all 582 gauges available to it, with none held back. Where a forecast is for one of those 582, the model has seen that river's past storms. Treat any figure above as the optimistic case unless it is stated for the unseen subset.
Concretely, for the map on this site: 468 of the 1,005 gauges forecast here are rivers the model was trained on, and the other 537 are not. There is no marker distinguishing them, so assume any single gauge could be either, and read the unseen figures — ×1.69, 61% inside the range — as the honest expectation.
Limits
- Small, permeable catchments are harder to forecast — fast-draining sandy or chalky ground responds less predictably than clay-dominated catchments in the training data.
- Timing is not forecast. A "storm" window tells you when rainfall is expected, not when the river will peak within it.
- Forecast rainfall resolution is coarse — roughly 25 km grid cells, which can miss or misplace localised thunderstorm rainfall.
This is not a warning service
For official, legally-actioned flood warnings, use the Environment Agency's check-for-flooding service . This site is a research prototype.