Before a river flood, a crisis cell needs to know which streets go under first, and how many days it has. In July 2021 the pieces existed: flood maps showed where water could go, and rain forecasts showed a lot of rain coming. What was missing was one answer per street and per day. This prototype gives that answer for three valleys hit in 2021, and a coarser one for every municipality in Europe.
A few terms used below. A 10-year flood is a flood big enough to have a 1-in-10 chance of happening in any given year; a 100-year flood is rarer and bigger (1 in 100). EFAS is the European Flood Awareness System of Copernicus; its flood maps cover rivers draining more than about 500 km². AUC measures how well a score puts flooded buildings above dry ones: 1 is perfect, 0.5 is a coin toss.
The whole chain
Two models answer two separate questions. Their answers are combined for each building, every day.
- Copernicus 30 m terrain and the streams we derived from it
- 1.4 million buildings (GHS-OBAT)
- EFAS flood depths
Learns from: official flood-hazard maps of Wallonia, North Rhine-Westphalia and Rhineland-Palatinate, and the area flooded in July 2021
- Rain of the past month (ERA5, NASA POWER)
- Rain forecast for the next 3 days (NOAA GEFS, ECMWF)
- 30 years of yearly rain records per basin
Learns from: 4 river gauges (SPW Wallonia), and a runoff estimate calibrated on them for the other 35 basins
1. Which buildings get wet
Every building in the three valleys (the Vesdre in Belgium, the Ahr and Erft in Germany, the Geul and Rur on the Dutch-German border) is described by what decides whether water reaches it:
- Height above the streamHow many metres the building stands above the stream it drains to. In these valleys, the strongest single sign.
- Distance to waterTo the nearest stream draining 1 km² and 10 km², and to the nearest mapped river.
- Size of the streamHow much land drains past that point: a ditch and the Vesdre are not the same risk.
- Lie of the landSlope of the ground, and how high the building sits above the lowest point within about 150 m and 600 m.
- EFAS flood mapsWater depth for the 10, 100 and 500-year flood, where EFAS has a map.
- The building and its streetHeight, footprint and shape, use, construction period, buildings within 100 m, residents of the surrounding 1 km cell.
What it learns from. North Rhine-Westphalia and Rhineland-Palatinate publish maps of frequent, 100-year and extreme floods, down to small streams. Wallonia publishes hazard classes, which we translate into the same three sizes. The model learns which combinations of terrain put a building inside each zone. A fourth class, for anything beyond the 500-year flood, learns from the area that actually flooded in July 2021. The model is trained 20 times on resampled data, and the spread of the 20 answers gives its uncertainty.
The result is four numbers per building: the chance it is reached by a 10, 100 or 500-year flood, and by an extreme flood like July 2021. A bigger flood can never score lower than a smaller one. Across the Dutch border there is no regional map to learn from, and the scores there are weak (see the tests).
2. How big a flood is coming
The three valleys are split into 39 river basins of about 15 to 350 km² each. Every day, for each basin, we take the heaviest 1 to 5-day rain expected over the next 3 days, add a share of the rain of the past month (wet ground floods sooner), and compare it with the basin's yearly rain records from 1990 to 2020. That tells how rare the coming rain is: a 1-in-10-year rain, a 1-in-100-year rain. We then assume that a 1-in-100-year rain gives a 1-in-100-year flood. This assumption is not calibrated, and it is the weakest link of the tool (see the tests). Forecast rain is never exact, so this estimate is spread using the errors the forecast made in the past.
For ordinary floods, a second model gives the chance that the river goes above its 2-year level, roughly when it leaves its bed. It is trained on 4 river gauges, and on a runoff estimate calibrated on them for the 35 basins without a gauge. Its chances are then adjusted to how well it did with real past forecasts.
3. From chance to action
The forecast gives chances that the river goes above each level. Subtracting them splits the next three days into separate outcomes that cannot both happen: a flood between the 2 and 10-year level, between 10 and 100, between 100 and 500, or beyond 500. For each outcome we multiply its chance by the chance that the building is reached (the average of the two flood sizes that bound it, counting 0 at the 2-year level), then add the outcomes. The result is the chance that river water reaches the building within 3 days. An example for one house on one day:
| Outcome in the next 3 days | Its chance | House reached | Adds |
|---|---|---|---|
| Flood between the 2 and 10-year level | 60 − 30 = 30 % | (0 + 2) / 2 = 1 % | 0.3 % |
| Between 10 and 100-year | 30 − 12 = 18 % | (2 + 28) / 2 = 15 % | 2.7 % |
| Between 100 and 500-year | 12 − 6 = 6 % | (28 + 52) / 2 = 40 % | 2.4 % |
| Beyond 500-year | 6 % | 80 % | 4.8 % |
| Risk for this house | 10.2 % | ||
Forecast for this day: 60 % above the 2-year level, 30 % above the 10-year, 12 % above the 100-year, 6 % above the 500-year. House: 2 %, 28 %, 52 % and 80 % chance of being reached by a 10-year, 100-year, 500-year and extreme flood. Most of its risk comes from the rare floods: unlikely, but if they come, this house is most likely in the water.
Both models also give a pessimistic estimate, the upper end of their uncertainty. The same sum with those numbers is the pessimistic risk.
Get out when the central risk reaches 10 %. Plan the evacuation of these streets. The house above is at Get out.
Prepare to get out (called Warning in the phone app) when the pessimistic risk reaches 7 %. Move cars, empty cellars, check on neighbours who will need help leaving.
Safe otherwise. Not a promise: a small stream, a blocked drain or runoff from a field can still flood these buildings.
We accept many false alarms to miss fewer floods: a needless evacuation costs a night away from home, a missed one can cost lives. The thresholds were set so that, replaying July 2021, Verviers reaches Prepare to get out on 11 July and Get out on 12 July, two days before the peak, while keeping false alarms over 2024 to 2026 as low as possible (most of those days are replayed with the rain that really fell). They are policy choices, and the settings panel lets you move them. A street takes the colour of its worst-placed buildings.
The map also marks, as Prepare to get out, streets that are fine with the forecast as it stands but would not be if the rain kept falling: today's rain for three more days, or the 3-day forecast stretched to a week. This is a stress test. It shows where to prepare first if the forecast turns out too low.
Europe
Outside the three valleys there are no building-level hazard maps, so the Europe view works per municipality: 98,188 of them in 34 countries. For each one we count the residents living inside the EFAS 10, 100 and 500-year flood zones. The rare-rain method of step 2 (without the gauge model) gives the chance of each flood size in its main river basin, from E-OBS rain records since 1991. The same subtraction as in step 3 gives the expected number of people in the water.
A municipality goes to Get out when a 100-year flood has at least a 25 % chance and about 100 people or more are expected in the water. It goes to Prepare to get out when, in the pessimistic estimate, a 10-year flood has at least a 15 % chance and 10 people or more are expected in the water. You can replay any day from 1991 to December 2025, with the rain that really fell.
How we tested it
The models were tested on data they had not seen. The alert thresholds were not: they were set on July 2021 and on the Europe events below, so results for those events are flattering.
Seven floods the model never saw
Copernicus mapped eight later floods from satellite images; one had no flooded building in our data. That leaves the Yser (Nov 2023), Lower Saxony (Dec 2023), the Saar (Jan and May 2024), Bavaria and Baden-Württemberg (late May 2024), and Dresden and Brandenburg (Sep 2024): about 3,350 buildings seen under water, in 20 mapped areas. We retrained the same recipe on the three valleys (5 copies instead of 20) and ran it there with no regional map.
The model works far from where it was trained. On the 1,035 flooded buildings outside the EFAS zones it still scores 0.77. On big rivers EFAS is more precise: its 500-year zone held 69 % of the flooded buildings, and our score needs to flag twice as many buildings to catch 75 %. Satellite maps also miss water between houses, so these numbers come from a sample of the flooded buildings.
Small streams, July 2021
Of the 42,500 buildings that flooded in the three valleys, 27,000 (64 %) were outside the EFAS maps. For this test we replaced the July 2021 class with the 500-year class, so the building scores come only from the regional maps, and used the forecast issued on 13 July, the day before the peak, by a model trained without 2021:
| Buildings that really flooded | Get out | Prepare to get out or Get out |
|---|---|---|
| Inside the EFAS maps | 91 % | 99 % |
| Outside (small streams, valley edges) | 57 % | 81 % |
The thresholds were still set on 2021, so this is not a fully independent test. The price is false alarms: that day, among the buildings near the flooded areas that stayed dry, 21 % were at Prepare to get out and 9 % at Get out. The map itself uses the July 2021 class and scores higher on 2021, but it learned from that flood.
The flood forecast
The last number is the main weakness. In an event like July 2021, extreme rain and extreme floods line up and the tool warns in time. In ordinary years they often do not: most 10-year floods follow rain that was not rare, and the tool misses them. The forecast also ranks days well (high AUC) but its chances are only slightly better than the average flood frequency.
Europe, five real floods
| 3 days before the peak | Municipalities in the Copernicus mapping areas at Prepare to get out or Get out | at Get out | Other exposed municipalities at Get out |
|---|---|---|---|
| July 2021 (BE, DE, NL) | 81 % | 51 % | 15 % |
| Emilia-Romagna, May 2023 | 88 % | 53 % | 1 % |
| Slovenia, Aug 2023 | 92 % | 40 % | 10 % |
| Storm Boris, Sep 2024 | 79 % | 25 % | 6 % |
| Valencia, Oct 2024 | 38 % | 1 % | 1 % |
A best case: these replays use the rain that really fell, and the rule was tuned on these events. "Other exposed municipalities" had the same storm and are not all dry. Europe-wide, the tool says where to look, not which town of a valley floods. Valencia shows the limit: a very local storm, too small for a 25 km rain grid, on streams EFAS does not map.
What it cannot do
- See small streams outside the three valleys. The Europe view relies on EFAS. In July 2021, about 4 in 10 people in the flooded area lived outside its maps: half along small streams EFAS does not model, half just beyond the edge of its zones.
- Warn long before the worst floods. The extreme flood sizes rose about one day before the July 2021 peak, not three. Gauges and hydrological models (EFAS, national services) do better than rain alone.
- Prove its thresholds. 7 % and 10 % were set on July 2021 and have not been tested on an independent major flood. Expect more false alarms, or fewer catches, on a new event.
- Say how deep or how fast. It gives the chance that water reaches a building, not its depth, speed or arrival time.
- Be trusted in the Netherlands. Trained without Dutch data and tested there, the building model is no better than chance (AUC 0.54).
- Update itself. This copy holds the forecasts of 29 and 30 October 2026. Only 4 of the 39 basins have gauge records in our data.
Data
| What | Source | Used for |
|---|---|---|
| Buildings | GHS-OBAT 2024 (JRC) | 1.4 M buildings: location, height, footprint, use, age |
| Terrain | Copernicus DEM GLO-30 | Height above stream, slope, our stream network |
| Rivers, basins | HydroSHEDS | 39 pilot basins, about 6,650 in Europe |
| European flood zones | EFAS hazard maps (Copernicus EMS, JRC) | Model input; residents in flood zones in Europe |
| Regional flood zones | SPW ALEA (Wallonia), ELWAS (NRW), LfU HWGK (RLP) | What the building model learns from |
| Observed floods | Copernicus EMS rapid mapping, SPW, PDOK, KIT-CEDIM | July 2021 for training; 2023 and 2024 for testing only |
| Rain | ERA5, NASA POWER, E-OBS; forecasts NOAA GEFS, ECMWF IFS | Rain records per basin, past and forecast rain |
| Gauges | SPW Hydrométrie | Ordinary-flood labels (4 basins) |
| People, municipalities | GHS-POP 2020 (JRC), GISCO 2021 (Eurostat) | Residents per flood zone and municipality |
Who made it
A small team at the European AI Challenge 2026 (FARI and the EU Joint Research Centre, Brussels, 29 and 30 October 2026). Much of the code was written with an AI coding assistant; the methods, thresholds and every number here were chosen and checked by us against the data. The site collects no personal data.
Not an official warning service. In danger, call 112 and follow your local authorities, BE-Alert, NINA or NL-Alert. Basemap © OpenStreetMap contributors © CARTO. Flood maps © European Union, Copernicus Emergency Management Service. GHSL © European Union, JRC. E-OBS: Copernicus Climate Change Service and ECA&D. Data from Land NRW (dl-de/by-2.0), LfU Rheinland-Pfalz, SPW Wallonie and PDOK.