← Back to Blog
niedrigwasserklimadatendatenvisualisierungstatistikclaude-codeSeptember 2, 2026 · 5 min read

From an Article to Our Own Index

34 WATER YEARS × 365 DAYS · NIWIS/BFG
Cell field of 34 rows and 365 columns: each row a water year, each column a day, the brightness standing for the share of gauges below their low-flow threshold. The bright bands cluster in the lower rows.Cell field of 34 rows and 365 columns: each row a water year, each column a day, the brightness standing for the share of gauges below their low-flow threshold. The bright bands cluster in the lower rows.

On 20 August, CORRECTIV published the Fluss-Atlas (river atlas), an analysis of the low-flow situation at 356 German gauges. At 214 of them the annual low-flow discharge fell in a statistically significant way between 1992 and 2025, and at 240 the lowest value of the entire series falls in the window from 2018 to 2025. I read the article that morning and thought it was good.

How good the statistics behind it were, I could not judge myself. I put the article to Claude. According to Claude, the newsroom had chosen a trend test that accounts for the fact that in such measurement series each year hangs on the one before, and that is considerably more work than the obvious straight line through the scatter. The text also answers the question of why any of this concerns people: drinking water, shipping, a Rhine gauge at Kaub reading six centimeters.

Problems with the map

The article comes with an interactive map of Germany carrying 356 dots. I looked at it for a while and could not read it.

The color legend is labelled “−3 %”, “0 %” and “3 %”, and hovering over a dot brings up a value like “−1.2 %”. Behind that sits the annual slope of an index normalized to a range of 0 to 100. It is not a percentage, and the “per year” is missing. Anyone looking at the map without prior knowledge does not learn what the number refers to.

The dot size grows visibly with the size of the catchment, and there is no size legend. To the eye, a large red circle first of all means badly affected, although the size only says how much area the gauge drains.

What bothered me most was the Rhine chain. Maxau, Worms, Kaub, Andernach, Cologne, Duisburg and Rees all sit on the same river and largely measure the same water; every gauge further downstream carries the ones above it along. On the map that turns into half a dozen large, overlapping, red-tinted circles. The west therefore looks more broadly affected than an independent sample would show it. The alarm-red look was not even necessary here. The finding holds up when you recalculate it.

Our own analysis

I asked Claude what we could do with the same data ourselves. The basis is open. The Federal Institute of Hydrology (BfG) publishes daily discharge values through a public interface; the license depends on whoever operates the gauging station in question.

Over the following working days an analysis of our own took shape: 361 gauging stations, around 4.7 million daily values, water years 1992 to 2025. Two decisions set it apart from the Fluss-Atlas.

The first concerns the Rhine chain. We chained the gauges along the direction of flow and credited each one only with the area it drains in addition to the gauges above it. The national index weights by that. A gauge with a catchment of 3 square kilometers therefore counts for less than one with 159,000, and the same water counts only once.

The second concerns the metric. The lowest seven-day discharge of a year measures only the depth of the low point and hangs on individual rainfall events. In addition we count how many days a gauge spends below its own long-term low-flow threshold, how long the longest continuous spell ran, and how much water is missing across the year. The difference is considerable: the median number of low-flow days per gauge and year rises from five or six days in the period 1992 to 2013 to 45 days in the period 2014 to 2025.

For everything else we deliberately followed CORRECTIV in order to stay comparable, and ran the same test. 224 of 359 gauges show a significant increase in low-flow days. Because 359 parallel tests also produce chance hits, we additionally corrected for multiple testing. That leaves 211. The shares land close to those of the Fluss-Atlas, and in one place almost exactly: in our analysis the lowest value of the series falls in the 2018 to 2025 window at 69.6 percent of gauges. CORRECTIV gives around 68 percent.

What the page shows

The analysis is now in this site’s menu, in German and English.

The image at the top of this post is its centerpiece, only drawn larger. Each row is a water year, each column a day, and the brightness stands for the share of gauges that were below their threshold on that day. You need no statistics to see that toward the lower rows the bright bands start earlier in the year, last longer and grow wider.

Below it sit the national time series with toggles for metric and network variant, the distributions of the three decades, a station map, and a methodology section that lays open every number for checking. 2018 is the driest year of the series, followed by 2019 and 2022. Seven of the ten driest years fall in the period 2015 to 2025.

The code behind it is open: AeternaLabsHQ/niedrigwasser-trendindex. It holds the complete pipeline from raw data to the finished charts, the methodology documentation and the result files. The raw data itself is not included; the first run fetches it from the interface.

What the analysis does not deliver is stated on the same page. It assigns the trend to no cause, neither climate change nor land use. About the future it says nothing. The measuring network is also not the same as the country: from the state networks of Lower Saxony, Bremen and Hamburg, not a single station is included. Around 45 percent of the weighted area lies outside Germany, on the Alpine Rhine, the Moselle, the Vltava and the upper Oder.

And there is one point where CORRECTIV is clearly ahead, which I do not want to pass over. The article tells you what the finding means for drinking water, shipping and fish. Our page explains carefully what was measured, and nowhere answers why it matters.

Proofreading the finished page, I came across a formulation that gave me pause. The methodology said the year 1991 had been excluded because it distorted the trend. That is the wrong reason, since it would let you strike any inconvenient year. The right one lies in the water year: it starts on 1 November, so water year 1991 already starts on 1 November 1990. The measurement series, however, only begins on 1 January 1991. The first year is therefore missing its first two months; it has 304 days instead of 365. We swapped the justification.

Comments

Commenting takes an email confirmation or a GitHub login. Comments run on my own server, not on an ad provider's — details in the privacy policy.