Heat Ranking of German Cities
80 major cities, 1951 to 2025. Measured where people live.
All 80 major cities are in the ranking – with rank, today’s value and the value for the 1950s.
More than three weeks a year above 30 degrees: in Mannheim that is now 24.3 days on average. In the 1950s it was 9.2.
69 of the 80 major German cities now have more hot days a year than any of them reached in 1951–1960. The highest value back then was 9.9 hot days.
Worldwide, the twelve months to September were 1.5 degrees above pre-industrial levels. If current policies continue, the United Nations expects 2.8 degrees by the end of the century. In Germany’s major cities, the number of hot days has already more than tripled: from 4.6 a year in the 1950s to 14.6 on average over 2016–2025.
For almost a third of the population, a hot day is a real test: for older people, young children and everyone who works outdoors. It shows not only on the thermometer but in flats, on the way to school, at bus stops and in playgrounds. That is why it matters to show how hot it is where people actually live and work, not only where a weather station happens to stand.
The finding
In eight steps through the same chart: how many hot days there are today and how many there were in 1951–1960, how many have been added, and what has shifted within Germany.
The finding 1 / 8
All 80 major German cities, sorted by hot days per year. A hot day is a day reaching at least 30 °C. At the top is Mannheim with 24.3 days; Kiel has the fewest, with 3.2.
The finding 2 / 8
The same cities, average 1951–1960. The whole distribution shifts to the left and closes up. The national average was 4.6 hot days instead of 14.6 today. Even Mannheim only reached 9.2 back then.
The finding 3 / 8
The path from then to now came in stages. Each of the eight periods now appears as its own dot in the row, coloured by its deviation from that city’s average. Blue is cooler, red warmer.
The finding 4 / 8
The longer the line, the more hot days have been added since 1951. The lines are longer at the top than at the bottom. Cities that already had many hot days gained the most.
The finding 5 / 8
The left line shows the ranking of 1951, the right one today’s. The two run almost parallel: the list from back then predicts today’s almost completely. Rank correlation 0.905 out of a maximum of 1.0.
The finding 6 / 8
The same dots, but the vertical axis now counts the rank of 1951–1960. Each city moves to where it stood back then. 64 of 80 move by ten places or fewer – the field barely moves. Only five cut right across.
The finding 7 / 8
Among the top ten in every one of the eight periods: Mannheim, Ludwigshafen am Rhein, Karlsruhe, Heilbronn. Whoever is at the top today was already at the top in the fifties.
The finding 8 / 8
Five cities moved 20 places or more: Regensburg (▲32), Kassel (▼32), München (▲27), Ulm (▼27), Erfurt (▼26). Regensburg is the biggest climber, now at 23.7 hot days instead of 4.5.
The summer of 2026
30.3 hot days on average across the 80 major cities, counted up to 19 October in the daily grid of the German Weather Service: more than twice as many as the average of 2016–2025 (14.6). In 58 of 80 cities the value exceeds that city’s previous record year.
| # | City | 2026 | Ø 2016–2025 | previous recordrecord |
|---|---|---|---|---|
| 1 | Karlsruhe | 58.4 | 23.9 | 45.8 2003 |
| 2 | Freiburg im Breisgau | 54.7 | 20.3 | 36.5 2003 |
| 3 | Heidelberg | 53.4 | 22.4 | 38.6 2003 |
| 4 | Ludwigshafen am Rhein | 53.2 | 24.0 | 37.3 2003 |
| 5 | Mannheim | 52.6 | 24.3 | 38.8 2003 |
| 6 | Regensburg | 52.3 | 23.7 | 37.1 2003 |
| 7 | Saarbrücken | 52.2 | 19.5 | 34.3 2022 |
| 8 | Trier | 51.1 | 19.5 | 39.1 2022 |
| 9 | Heilbronn | 51.0 | 22.2 | 35.4 2003 |
| 10 | Kaiserslautern | 49.1 | 21.2 | 36.4 2022 |
Provisional. The count covers the first 292 days of the year, up to 19 October. The year is therefore not yet complete, and the figure comes from the daily grid rather than the annual grid, which the DWD only publishes after the end of the year. Over the three most recent years available in both, the two agree on average (+0.18 days); for a single city they typically differ by 1.5 days, in individual cases by up to 6.8.
This was checked against the three most recent years available in both: 2023 +0.23 days on average across 80 cities; 2024 +0.41 days on average across 80 cities; 2025 −0.10 days on average across 80 cities. If the mean deviation exceeds 2 days, no figure is produced; this section is then dropped rather than showing a value with an asterisk.
Everything at once
Each row a city, each column a year. The colour shows the deviation from that city’s own average over all years since 1951: blue cooler, red warmer. Each city therefore reads on its own terms, regardless of how hot it is overall.
They all read the same. Blue on the left, red on the right, in 80 of 80 cities. The rise affects every city, north and south, large and small.
The grid ends at the coastline and the national border. For five cities, part of the population therefore lies outside it: Kiel 2.3 %, Rostock 1.5 %, Hamburg 0.8 %, Lübeck 0.4 %, Saarbrücken 0.3 %. That area is left out; it is not extrapolated.
Because each row is coloured on its own scale, the cities cannot be compared with one another in this chart. The other charts on this page are there for that. Exact values cannot be read from the colour anyway; they are on the city pages.
The ranking
Sorted by hot days per year, average 2016–2025. Each row leads to its city’s page, which shows the trend since 1951, the values for all eight periods and the share of green where people live.
The column headers re-sort the table – by name, by increase, by rank in the 1950s.
| Trend | ||||||
|---|---|---|---|---|---|---|
| 11–5 | Mannheim | 24.3 | 9.2 | +15.1 | 2 ▲ | |
| 21–5 | Ludwigshafen am Rhein | 24.0 | 9.9 | +14.0 | 1 ▼ | |
| 31–5 | Karlsruhe | 23.9 | 9.0 | +14.9 | 3 · | |
| 41–5 | Regensburg | 23.7 | 4.5 | +19.2 | 36 ▲ | |
| 51–5 | Darmstadt | 23.6 | 7.0 | +16.5 | 11 ▲ | |
| 66–9 | Heidelberg | 22.4 | 8.3 | +14.1 | 6 · | |
| 76–9 | Heilbronn | 22.2 | 7.8 | +14.4 | 8 ▲ | |
| 86–9 | Offenbach am Main | 22.2 | 8.2 | +14.0 | 7 ▼ | |
| 96–9 | Frankfurt am Main | 22.2 | 8.6 | +13.6 | 5 ▼ | |
| 1010–14 | Erlangen | 21.2 | 7.0 | +14.2 | 14 ▲ | |
| 1110–14 | Kaiserslautern | 21.2 | 5.5 | +15.7 | 24 ▲ | |
| 1210–14 | Jena | 21.1 | 6.9 | +14.2 | 15 ▲ | |
| 1310–14 | Würzburg | 20.7 | 7.0 | +13.7 | 12 ▼ | |
| 1410–16 | Freiburg im Breisgau | 20.3 | 8.7 | +11.6 | 4 ▼ | |
| 1514–19 | Saarbrücken | 19.5 | 5.1 | +14.4 | 29 ▲ | |
| 1614–19 | Trier | 19.5 | 7.3 | +12.2 | 9 ▼ | |
| 1715–20 | Mainz | 19.3 | 7.3 | +12.0 | 10 ▼ | |
| 1815–21 | Dresden | 19.1 | 6.7 | +12.3 | 16 ▼ | |
| 1915–22 | Potsdam | 18.7 | 6.5 | +12.3 | 17 ▼ | |
| 2017–24 | Reutlingen | 18.5 | 6.0 | +12.5 | 20 · | |
| 2118–26 | Fürth | 18.2 | 6.4 | +11.8 | 18 ▼ | |
| 2219–27 | Nürnberg | 17.9 | 6.2 | +11.7 | 19 ▼ | |
| 2320–28 | Stuttgart | 17.6 | 5.2 | +12.5 | 28 ▲ | |
| 2420–28 | Leipzig | 17.6 | 5.8 | +11.8 | 22 ▼ | |
| 2521–28 | Wiesbaden | 17.6 | 7.0 | +10.6 | 13 ▼ | |
| 2621–29 | Magdeburg | 17.4 | 4.6 | +12.8 | 33 ▲ | |
| 2722–29 | Berlin | 17.1 | 5.2 | +11.9 | 26 ▼ | |
| 2823–29 | Pforzheim | 17.0 | 4.4 | +12.6 | 39 ▲ | |
| 2926–31 | Halle (Saale) | 16.5 | 5.8 | +10.7 | 21 ▼ | |
| 3029–34 | Köln | 15.9 | 5.6 | +10.3 | 23 ▼ | |
| 3129–34 | Koblenz | 15.7 | 5.2 | +10.4 | 27 ▼ | |
| 3230–36 | München | 15.2 | 3.4 | +11.8 | 59 ▲ | |
| 3330–36 | Leverkusen | 15.2 | 4.7 | +10.5 | 31 ▼ | |
| 3430–36 | Ingolstadt | 15.1 | 4.7 | +10.4 | 32 ▼ | |
| 3532–41 | Krefeld | 14.7 | 4.4 | +10.3 | 38 ▲ | |
| 3632–42 | Moers | 14.5 | 4.2 | +10.4 | 44 ▲ | |
| 3735–42 | Neuss | 14.2 | 4.8 | +9.4 | 30 ▼ | |
| 3835–42 | Mönchengladbach | 14.2 | 4.0 | +10.2 | 47 ▲ | |
| 3935–42 | Duisburg | 14.1 | 4.2 | +9.9 | 43 ▲ | |
| 4035–44 | Düsseldorf | 13.9 | 4.5 | +9.4 | 34 ▼ | |
| 4135–44 | Bergisch Gladbach | 13.9 | 4.2 | +9.7 | 42 ▲ | |
| 4236–44 | Wolfsburg | 13.8 | 3.3 | +10.4 | 60 ▲ | |
| 4340–48 | Bonn | 13.2 | 4.3 | +8.8 | 40 ▼ | |
| 4440–49 | Oberhausen | 13.0 | 3.7 | +9.3 | 50 ▲ | |
| 4543–56 | Bottrop | 12.5 | 3.6 | +8.9 | 53 ▲ | |
| 4643–57 | Herne | 12.5 | 3.8 | +8.7 | 48 ▲ | |
| 4743–58 | Gelsenkirchen | 12.3 | 3.7 | +8.6 | 49 ▲ | |
| 4843–58 | Recklinghausen | 12.3 | 3.4 | +8.9 | 58 ▲ | |
| 4944–59 | Hannover | 12.2 | 3.1 | +9.1 | 64 ▲ | |
| 5045–59 | Göttingen | 12.1 | 3.7 | +8.4 | 52 ▲ | |
| 5145–59 | Erfurt | 12.0 | 5.4 | +6.5 | 25 ▼ | |
| 5245–59 | Solingen | 11.9 | 2.8 | +9.0 | 68 ▲ | |
| 5345–60 | Dortmund | 11.8 | 3.5 | +8.4 | 57 ▲ | |
| 5445–61 | Augsburg | 11.8 | 4.5 | +7.3 | 35 ▼ | |
| 5545–62 | Hamm | 11.7 | 3.7 | +8.0 | 51 ▼ | |
| 5645–63 | Bochum | 11.6 | 3.3 | +8.3 | 61 ▲ | |
| 5746–64 | Braunschweig | 11.6 | 3.0 | +8.6 | 65 ▲ | |
| 5847–66 | Salzgitter | 11.5 | 3.6 | +7.9 | 54 ▼ | |
| 5949–66 | Münster | 11.4 | 2.7 | +8.7 | 69 ▲ | |
| 6053–68 | Mülheim an der Ruhr | 10.9 | 2.9 | +8.0 | 66 ▲ | |
| 6154–68 | Paderborn | 10.9 | 3.5 | +7.5 | 56 ▼ | |
| 6255–68 | Gütersloh | 10.9 | 4.1 | +6.8 | 46 ▼ | |
| 6356–70 | Bielefeld | 10.8 | 3.3 | +7.5 | 62 ▼ | |
| 6457–70 | Chemnitz | 10.7 | 4.1 | +6.6 | 45 ▼ | |
| 6558–70 | Essen | 10.7 | 2.9 | +7.8 | 67 ▲ | |
| 6658–70 | Wuppertal | 10.6 | 2.4 | +8.2 | 71 ▲ | |
| 6760–74 | Hagen | 10.1 | 3.5 | +6.6 | 55 ▼ | |
| 6860–74 | Ulm | 10.1 | 4.2 | +5.8 | 41 ▼ | |
| 6963–74 | Kassel | 10.0 | 4.5 | +5.5 | 37 ▼ | |
| 7063–74 | Remscheid | 9.9 | 2.2 | +7.8 | 73 ▲ | |
| 7167–74 | Siegen | 9.7 | 3.2 | +6.5 | 63 ▼ | |
| 7267–74 | Aachen | 9.6 | 2.5 | +7.2 | 70 ▼ | |
| 7367–74 | Osnabrück | 9.5 | 2.2 | +7.3 | 72 ▼ | |
| 7467–74 | Bremen | 9.5 | 2.0 | +7.5 | 74 · | |
| 7575–76 | Hamburg | 8.2 | 1.9 | +6.3 | 75 · | |
| 7675–76 | Oldenburg (Oldb) | 7.8 | 1.4 | +6.3 | 76 · | |
| 7777–78 | Lübeck | 6.3 | 1.2 | +5.1 | 77 · | |
| 7877–79 | Rostock | 5.7 | 1.1 | +4.6 | 78 · | |
| 7978–79 | Bremerhaven | 4.9 | 0.7 | +4.2 | 79 · | |
| 80 | Kiel | 3.2 | 0.6 | +2.7 | 80 · |
What can be changed
Five steps through the same chart. It shows how hot days and little green coincide – and in which quadrant the two add up most.
Satellite data measure how much of the residential surroundings is tree cover. Parks, cemeteries, gardens and forest edges count; dense city centres have less room for trees, which is a matter of urban form. Compared with the cities’ tree registers, the rank correlation is 0.508. This page shows tree cover around homes; the registers count the city’s street trees.
Share of residential surroundings with tree cover, weighted by the population of the 100 m cells of the 2022 Census – the same weighting as the heat figure.
Green 1 / 5
Horizontal axis: hot days per year, 80 major cities. Kiel has the fewest, 3.2, Mannheim the most, 24.3. Without the second axis, they all sit on one line.
Green 2 / 5
Now each city’s green share comes in: how much of the residential surroundings is tree cover, seen from the satellite. Hamburg comes to 52.0 %, Ingolstadt to 20.1 %. The weighting uses the same 100 m cells as the hot days.
Green 3 / 5
The cloud of dots falls from top left to bottom right. The more hot days a city has, the less green there is where its people live. The burden piles up instead of evening out. Rank correlation −0.541; −1.0 would be a perfect inverse.
Green 4 / 5
This is where both come together: above the median for heat, below the median for green. 28 of the 80 cities fall here, among them Darmstadt, Düsseldorf, Erlangen, Frankfurt am Main.
Green 5 / 5
The Upper Rhine Valley is not going to move, but a city’s green can be planted. Ingolstadt and Leverkusen count almost the same number of hot days, 15.1 and 15.2; but where people live, Leverkusen has twice as much green, 43.2 against 20.1 per cent. Twelve of the 80 cities are above the heat median and yet above the green median. This chart shows where shade would reach the most people.
What can be changed
The federal government has no overview of which municipalities have a heat action plan. For the 80 major cities it is given here, with a source for each. Of the 79 checked so far, 33 have a published plan and 25 have one that is in progress, announced or adopted but not yet available as a document.
Published (33): Mannheim, Karlsruhe, Darmstadt, Heidelberg, Offenbach am Main, Erlangen, Jena, Würzburg, Saarbrücken, Mainz, Nürnberg, Stuttgart, Leipzig, Wiesbaden, Magdeburg, Berlin, Pforzheim, Köln, Leverkusen, Ingolstadt, Düsseldorf, Bergisch Gladbach, Oberhausen, Dortmund, Augsburg, Hamm, Münster, Bielefeld, Wuppertal, Kassel, Bremen, Hamburg, Bremerhaven
In progress, announced or adopted (25): Regensburg, Freiburg im Breisgau, Trier, Dresden, Fürth, Halle (Saale), Koblenz, Krefeld, Duisburg, Wolfsburg, Bonn, Bottrop, Herne, Gelsenkirchen, Recklinghausen, Göttingen, Erfurt, Bochum, Braunschweig, Chemnitz, Essen, Hagen, Aachen, Oldenburg (Oldb), Lübeck
Part of a climate adaptation concept (13): Ludwigshafen am Rhein, Heilbronn, Frankfurt am Main, Kaiserslautern, München, Mönchengladbach, Hannover, Salzgitter, Mülheim an der Ruhr, Paderborn, Osnabrück, Rostock, Kiel
Not found (8): Potsdam, Reutlingen, Moers, Neuss, Solingen, Gütersloh, Ulm, Siegen
Not yet checked (1): Remscheid
Sorted by rank in hot days. Counted are plans of the city’s own that are publicly available from the city or its public health office. “Not found” does not mean there is none: plans may exist internally or be called something else. “Not yet checked”: the city’s website could not be reached during the research, so we say nothing about its plan. Research as of 24 October 2026. Corrections and tips to kontakt@julianzuber.de.
The cross-check
For each of the 80 major cities, the nearest suitable weather station within 40 km was picked – by distance and length of record, not by result. There is no cut-off for deviations: whoever deviates widely stays in the evaluation. The same quantity is compared, days with a daily maximum of ≥ 30 °C from April to October, 2016–2025.
Part of the difference is an effect of location and not an error of the grid: a station stands at one spot, whereas the grid averages the places where the city’s people live. That is why the ranking shows, next to each place, the range the city would occupy if shifted by ±0.9 days. Cities whose ranges overlap cannot be ordered with certainty. Result per city: gegenprobe.csv.
The biggest move in the field is made by Regensburg: rank 36 → 4, from 4.5 to 23.7 hot days a year.
A jump of this size can also be a data error. So every city that has moved 20 places or more is checked against the nearest weather station – period by period, with an independent measurement from another source.
That makes five cities, and for each of them the station confirms the rise. Grid and station are furthest apart for Regensburg: there the station measures 22.0 more days than in the fifties, the grid 19.2.
The absolute levels differ more, by up to 4.0 days. That is a location effect: a weather station stands somewhere in the city, the population centre elsewhere. What is compared is therefore the increase.
| Period | Grid | Station | Difference | Years measured |
|---|---|---|---|---|
| 1951–1960 | 4.5 | 4.6 | +0.1 | 10 |
| 1961–1970 | 6.1 | 6.4 | +0.3 | 10 |
| 1971–1980 | 5.2 | 5.5 | +0.3 | 10 |
| 1981–1990 | 6.6 | 6.7 | +0.1 | 10 |
| 1991–2000 | 11.1 | 11.6 | +0.5 | 10 |
| 2001–2010 | 15.4 | 16.6 | +1.2 | 10 |
| 2006–2015 | 16.0 | 17.0 | +1.0 | 10 |
| 2016–2025 | 23.7 | 26.6 | +2.9 | 10 |
| Period | Grid | Station | Difference | Years measured |
|---|---|---|---|---|
| 1951–1960 | 3.4 | 2.6 | −0.8 | 10 |
| 1961–1970 | 4.3 | 3.9 | −0.4 | 10 |
| 1971–1980 | 2.5 | 2.2 | −0.3 | 10 |
| 1981–1990 | 3.7 | 3.1 | −0.6 | 10 |
| 1991–2000 | 7.8 | 8.3 | +0.5 | 10 |
| 2001–2010 | 11.1 | 12.3 | +1.2 | 10 |
| 2006–2015 | 13.0 | 14.5 | +1.5 | 10 |
| 2016–2025 | 15.2 | 17.0 | +1.8 | 10 |
| Period | Grid | Station | Difference | Years measured |
|---|---|---|---|---|
| 1951–1960 | 5.4 | 4.0 | −1.4 | 10 |
| 1961–1970 | 4.6 | 2.9 | −1.7 | 10 |
| 1971–1980 | 5.2 | 3.4 | −1.8 | 10 |
| 1981–1990 | 5.7 | 4.1 | −1.6 | 10 |
| 1991–2000 | 6.5 | 4.4 | −2.1 | 10 |
| 2001–2010 | 9.0 | 6.9 | −2.1 | 10 |
| 2006–2015 | 8.9 | 6.9 | −2.0 | 10 |
| 2016–2025 | 12.0 | 9.4 | −2.6 | 10 |
| Period | Grid | Station | Difference | Years measured |
|---|---|---|---|---|
| 1951–1960 | 4.2 | 1.5 | −2.7 | 10 |
| 1961–1970 | 4.5 | 0.9 | −3.6 | 10 |
| 1971–1980 | 2.7 | 0.6 | −2.1 | 10 |
| 1981–1990 | 4.2 | 0.9 | −3.3 | 9 |
| 1991–2000 | 4.8 | 1.9 | −2.9 | 10 |
| 2001–2010 | 7.3 | 3.7 | −3.6 | 10 |
| 2006–2015 | 8.7 | 4.7 | −4.0 | 10 |
| 2016–2025 | 10.1 | 6.2 | −3.9 | 10 |
| Period | Grid | Station | Difference | Years measured |
|---|---|---|---|---|
| 1951–1960 | 4.5 | 2.9 | −1.6 | 10 |
| 1961–1970 | 4.7 | 4.2 | −0.5 | 9 |
| 1981–1990 | 3.8 | 4.3 | +0.5 | 10 |
| 1991–2000 | 6.1 | 6.1 | −0.0 | 10 |
| 2001–2010 | 8.5 | 7.8 | −0.7 | 10 |
| 2006–2015 | 7.9 | 7.5 | −0.4 | 10 |
| 2016–2025 | 10.0 | 10.1 | +0.1 | 8 |
Method
Every figure on this page is calculated from the dataset when the page is built; none is typed in. If a value is missing, the space stays empty.
The earliest decade is the least certain. The grid is interpolated, and station density has changed since 1951. Of the eight periods, 1951–1960 therefore rests on the thinnest basis – and it is also the period used for comparison here.
Calculated with today’s boundaries. Today’s municipal boundaries and today’s population over historical grids. The statement is therefore “in the places where people live today”. That is a choice, and one could choose differently.
The data
Long format, one row per city and year, with the official municipality code for joining with other datasets. The derived figures (period means, ranks, rank correlations) are kept separately so that nobody has to guess at rounding. And one row per city with the population-weighted centre – anyone building their own map needs exactly that, not the town hall. Column names are in German.
Grid: DWD Climate Data Center, annual grid hot_days, 1 km, CC BY 4.0
Population: Federal Statistical Office and statistical offices of the Länder, Census 2022, population per 100 m grid cell (dl-de/by-2-0)
For publication: quote the licence text of both underlying sources verbatim, give the retrieval date and dataset version, and name the licence of your own derivative.
Each chart as SVG – scalable at will, for print and screen, with source and licence in the file. Free to use under CC BY 4.0, i.e. with attribution.
To embed a chart in your own page, each one also has its own address. It loads nothing extra, sets nothing and tracks nothing.
<iframe src="https://hitzeranking.de/en/einbetten/waermestreifen.html" width="100%" height="520" style="border:0" loading="lazy" title="80 cities, 1951–2025 – hitzeranking.de"></iframe>
Dr. Julian Benedikt Zuber (2026): Heat Ranking of German Cities. https://hitzeranking.de/en/, as of 20 October 2026. Licence CC BY 4.0. Data: DWD Climate Data Center, annual grid hot_days, 1 km, CC BY 4.0; Federal Statistical Office and statistical offices of the Länder, Census 2022, population per 100 m grid cell (dl-de/by-2-0).
The other half
This list counts days above 30 degrees. Whether a city cools down again at night is not part of it – and the two rankings agree only to 0.23. Regensburg is at rank 4 here and at 79 for tropical nights; Mülheim an der Ruhr at 60 here and at 6 there.
Going further
An analysis of the city area exists for all 80 major cities on this list. The link is on each city page; detailed maps and analyses are possible for any city or municipality.
Stay up to date
News about this list – the DWD annual grid for the current year, new analyses – is announced on LinkedIn and Instagram. If you prefer e-mail, send a short message; unsubscribing works the same way, with a reply.