Data Analysis · Housing market

Costs of renting an apartment in large German cities

(CC) Wikipedia

Renting an apartment in big cities in Germany can be an exciting experience, but also an expensive one. With the high demand for rental properties, the cost of renting has skyrocketed in the past years, making it challenging for many to find an affordable living space. The steep rental costs are due to various factors such as population growth in large cities, lack of available properties, and high demand from international students and expatriates. In this blog article, we will delve into the current rental costs of apartments in big German cities and explore the true living costs in large German cities based on the gathered data of offers and derived statistics. So, if you are planning to move to a big German city soon, keep reading for some insights on the current state of the housing market in those cities.

In my free time, I enjoy coding scraping bots that crawl specific websites and extract and save information into local datasets or databases. Similar as for France and Paris, for this article, I coded a scraper in Python that collected a large dataset of apartment offers for rent from various web portals in Germany. The data was collected in December 2022. After processing the data, I created a handful of plots and diagrams to provide a bird’s-eye view on the current state of the market (December 2022). This article will focus on apartments offered for rent in German large cities only. It needs to be noted that the rent prices mentioned in this post are exclusively so called “cold rental prices” (Kaltmiete), meaning that the mentioned monthly cost goes directly to the landlord. The prices do not included council charges, community service fees and monthly energy costs. Those additional expenses have to be applied on top.

I used the Python 3 library Scrapy for the scraping code, along with standard data science libraries such as Pandas/GeoPandas, NumPy, and SciPy for data processing. Scrapy gathered raw data from various websites, and Pandas was essential for post-processing it. Finally, I used Matplotlib or Seaborn libraries for visualization.

I) Overview

In this section of the article, we will first examine the rental prices of apartments in larger German cities with a population of over 100,000 inhabitants. According to Wikipedia, there are 80 such cities as of 2023. Therefore, Fig. 1 shows the average square meter rental prices and their average price range for each of these cities. The average value was estimated by calculation of the median square meter rental price of all offers in the particular city. The lower boundary of the square meter price range was estimated by taking the median of the 50% most affordable offers, while the upper boundary was estimated by taking the median value of the 50% most expensive offers. So, we are talking here about an 25-75 interquartile (IQR) range, meaning that 50% of the offers will fall within the displayed price range.

Therefore, according to Fig. 1, the 80 cities have been ranked based on the absolute average square meter rental price per month of apartments. Unsurprisingly, Munich is the most expensive city in Germany, with even its most affordable rental prices being equivalent to premium class offers in Cologne. Stuttgart, Frankfurt, and Hamburg follow Munich on the list. The figure also shows that Berlin has the widest range of price ranges, mainly due to the fact that the city is large in terms of area size and is, in fact, a conglomeration of several large parts of the city that can have very different living standards within the same city. On the other hand, the most affordable cities are Hagen, Magdeburg, Gelsenkirchen, and Chemnitz. Two of these cities are located in the former Democratic Republic of Germany, while the other two are located in the Ruhr-Area, the former industrial hub of West-Germany.

The living costs in the Ruhr area are generally lower compared to the rest of Germany due to the region’s history as an industrial hub. While this may make the area an attractive place to live for those seeking affordable living, it also poses challenges in terms of economic development. The region has struggled to attract investment and create new job opportunities in industries beyond the traditional manufacturing sector. This has resulted in a brain drain as young, skilled workers leave the area in search of better job prospects. Additionally, the region is also facing the challenge of an aging population, which further compounds the economic and social issues faced by the area. Overall, while the low cost of living in the Ruhr area may be attractive for some, it also highlights the need for continued efforts to revitalize the region and create a sustainable economic future.

Fig. 1: Average square meter price span of apartments in cities with more than 100 thousand inhabitants

Fig. 2 shows that the typical size of apartments in these cities is around 60 m². Fig. 3 displays the total average rent without additional utility fees, with the y-axis showing cities with more than 200’000 inhabitants ranked in the same way as Fig. 1, and the x-axis showing the square meter size of the apartment. The most reliable values are estimated for 40, 60, and 80m², as these apartment sizes had the most data points. Apartments smaller than 40 m² or larger than 80 m² are considered “atypical,” so corresponding values should be treated with care. For the gray areas of Fig. 3 where there were fewer than 50 data points, the average value was considered unreliable and thus not published.

Typical distribution of the square meter size of apartments
Fig. 2: Typical distribution of the square meter size of apartments

Fig. 3 displays the typical rent prices for an average apartment in the 39 largest German cities with more than 200,000 inhabitants. It’s important to note that these prices are the typical average rental prices for an apartment in the particular city with the particular square meter size. Higher prices may be justified by additional beneficial features of the apartment, such as a quieter environment, a renovated house or apartment, or close proximity to green spaces of the city.

Typical total monthly rent (without additional charges) for apartments in different large German cities and sizes of the apartment
Fig. 3: Typical total monthly rent (without additional charges) for apartments
in different large German cities and sizes of the apartment

II) distribution of the square meter price

While the mean or median of the square meter price is representative of living costs in a particular city, it’s also interesting to examine the distribution of the square meter price for apartments in that city. Fig. 4 shows these distributions for the 10 most expensive cities. In each plot, the distribution of the square meter price for rent in the entire Germany (blue) can be compared to that of the particular city (orange). In Germany overall, the average (median) square meter price for an apartment rental is around 8-9 €/m² per month, but the distribution shows that it’s possible to find offers even for 5-6 €/m². For Munich, however, the mean square meter price is around 22.5 €/m², with most apartments offered between 18-22 €/m². This makes Munich 2.4 times (144%) more expensive to live in than the national average. The distribution in Munich is mostly normal, except for a peak at around 5 €/m², which could be due to social housing.

Square meter price distribution in ten most expensive large cities in Germany
Fig. 4: Square meter price distribution in ten most expensive large cities in Germany

Fig. 4 also shows that in Freiburg, there is an approximately normal distribution for the square meter price, ranging from 5-25 €/m². However, there is a large amount of expensive apartments between 30-40 €/m², which could be due to new apartment buildings built within the last 10 years. A similar situation can be observed in Berlin, which is generally a cheaper city with most apartments offered between 8-15 €/m². However, there is a strong plateau between 15-22 €/m². This is due to a special legal case applied to landlords in Berlin, where rent prices for buildings built before 2013 are regulated by the state [Link], but this doesn’t apply to buildings built after 2013. This plateau between 15-22 €/m² could be partly due to the impact of this legislation.

III) Conclusion

In conclusion, the rental prices in Germany can be quite high, especially in larger cities like Munich and Frankfurt. While the mean or median square meter price can give an idea of the overall living costs in a particular city, it’s also important to look at the actual distribution of the prices to get a clearer picture of the rental market. In some cities, there may be a large number of expensive apartments due to factors such as new construction or special legislation, while in other cities, there may be more affordable options available. Ultimately, the cost of renting an apartment in Germany can vary widely depending on location, apartment size, and other factors. By understanding the rental market, tenants can make informed decisions and find a home that suits their needs and budget.

Currently, Germany is facing a shrinking demography, and the European Central Bank (ECB) has increased interest rates to counteract Euro inflation. Typically, the housing market is heavily influenced by these two factors. A shrinking demography can result in a surplus of available living space, while increased interest rates make housing loans more expensive and can create difficulties for landlords attempting to refinance their loans. However, the effects on the housing market can be complex and depend on other factors such as the overall state of the economy, the availability of credit, and government policies related to housing. Therefore, it will be interesting to analyze the impact of these factors on rental costs in Germany and throughout Europe in the future. As a result, I will continue to monitor the housing market in Germany and other countries and provide periodic updates on this blog.

If you you like such analyses, please, leave a like and subscribe to this blog.

IV) Appendix

As an appendix you can find the data from Fig. 1 as a sortable table:

City Inhabitants Number of data points Lower median Total median Upper median
Berlin 3677472 1579 10.55 14.29 21.43
Hamburg 1853935 991 12.53 16.13 20.83
München 1487708 532 18.00 22.50 27.94
Köln 1073096 457 12.31 15.08 19.27
Frankfurt am Main 759224 400 13.69 16.67 20.96
Stuttgart 626275 332 14.03 16.85 20.83
Düsseldorf 619477 379 11.43 13.58 17.27
Leipzig 601866 534 8.01 9.82 11.76
Dortmund 586852 602 8.00 9.28 11.00
Essen 579432 670 7.42 8.74 10.17
Bremen 563290 328 9.36 11.39 13.76
Dresden 555351 819 7.81 9.45 11.77
Hannover 535932 384 9.54 11.38 13.67
Nürnberg 510632 346 10.59 12.48 15.54
Duisburg 495152 430 6.67 7.90 9.61
Bochum 363441 351 7.50 8.65 10.01
Wuppertal 354572 237 6.83 8.33 10.50
Bielefeld 334002 288 8.27 9.86 12.00
Bonn 331885 161 10.95 13.01 15.03
Münster 317713 221 10.90 13.00 16.00
Mannheim 311831 144 10.69 13.50 17.64
Karlsruhe 306502 95 11.14 12.94 17.24
Augsburg 296478 143 12.00 14.67 16.67
Wiesbaden 278950 174 11.15 13.41 16.86
Mönchengladbach 261001 154 8.05 9.86 11.82
Gelsenkirchen 260126 511 5.74 6.51 7.50
Aachen 249070 197 9.36 11.00 14.04
Braunschweig 248823 223 8.90 10.23 12.30
Kiel 246243 210 9.62 11.66 13.58
Chemnitz 243105 1621 5.00 5.50 6.11
Halle (Saale) 238061 91 7.35 8.06 9.57
Magdeburg 236188 730 6.01 6.71 7.71
Freiburg im Breisgau 231848 88 12.78 15.17 20.35
Krefeld 227050 151 8.00 9.20 11.13
Mainz 217556 138 12.00 14.51 17.56
Lübeck 216277 96 9.51 12.21 14.80
Erfurt 213227 272 7.65 8.53 10.01
Oberhausen 208752 115 7.00 8.42 10.62
Rostock 208400 212 10.00 12.22 15.69
Kassel 200406 366 8.00 9.40 12.04
Hagen 188713 1105 5.94 6.79 7.95
Potsdam 183154 80 11.04 12.99 17.76
Saarbrücken 179634 307 7.61 8.91 11.00
Hamm 179238 111 7.02 8.70 11.54
Ludwigshafen am Rhein 172145 83 10.53 12.22 14.17
Mülheim an der Ruhr 170739 81 7.74 9.12 10.85
Oldenburg 170389 256 9.33 10.89 12.79
Osnabrück 165034 96 8.54 10.03 11.85
Leverkusen 163851 79 9.05 10.46 13.02
Darmstadt 159631 69 13.49 15.62 20.50
Heidelberg 159245 51 12.22 15.56 21.56
Solingen 158957 79 7.10 8.46 10.53
Herne 156621 291 6.59 7.31 8.40
Regensburg 153542 154 12.29 13.85 16.40
Neuss 152731 53 9.81 11.47 14.69
Paderborn 152531 183 8.29 9.97 11.88
Ingolstadt 138016 110 12.22 13.82 16.85
Offenbach am Main 131295 101 11.06 13.97 16.17
Fürth 129122 73 7.82 11.00 13.89
Ulm 126949 58 8.15 12.51 16.25
Würzburg 126933 103 11.33 13.00 16.36
Heilbronn 125613 123 10.44 12.86 15.99
Pforzheim 125529 78 9.64 11.01 14.06
Wolfsburg 123949 287 8.15 9.33 11.00
Bottrop 117311 40 7.06 8.18 9.81
Göttingen 116557 145 8.87 10.62 12.85
Reutlingen 116456 25 10.75 12.67 16.33
Koblenz 113638 89 8.50 9.65 12.65
Erlangen 113292 48 11.19 12.53 15.83
Bremerhaven 113173 149 6.09 7.33 9.43
Remscheid 111770 104 5.98 7.19 8.37
Bergisch Gladbach 111645 52 10.92 12.52 14.67
Recklinghausen 110714 99 6.00 7.01 8.82
Trier 110570 167 10.00 11.54 14.11
Jena 110502 171 9.63 10.06 11.82
Moers 103725 55 7.20 8.75 10.98
Salzgitter 103694 124 6.00 7.26 9.72
Siegen 101516 149 7.64 8.91 11.12
Gütersloh 101158 47 7.80 9.46 11.00
Hildesheim 100319 64 8.05 9.51 11.43
Tab. 1: Tabulated square meter price of apartments offered for rent in large German cities

One thought on “Costs of renting an apartment in large German cities

Leave a Reply