Mapping German Billionaires

I made a recent visit to Munich where I presented some of my dissertation work at the International Stone Center for Inequality Research’s wealth conference. It’s not directly related to my work – I don’t (yet) look at the spatial distribution of wealth concentration and its determinants – but I was curious to know how the largest German fortunes are distributed geographically. And, of course, that led me to wonder how billionaire wealth is distributed across Europe more broadly, then across China, and then across the U.S., such that I ended up with far too many maps for what was intended to be a very short segue into my actual presentation. Ultimately, I canned all but the German map and later discovered that Daria Tisch and Emma Ischinsky had already produced a much more interesting version in their excellent Socius article on entrenched German wealth (see Figure 2). Regardless, it was fun to make and so I’ll post both the data and code for my version below (made in R with ggplot2).

A data quality caveat first: the data summarizes the Forbes World’s Billionaires list for 2025 at the city residence-level. In my experience, at least in the U.S. context, Forbes residence data is reasonably accurate (sometimes they list the metropolitan area the billionaire lives in rather than the exact city or suburb). Forbes does not provide a source for this data, but it generally corresponds to what you might find in regulatory disclosures or in directories sold by third-party vendors (e.g., Whitepages).

For European billionaires, I’ve been able to find matching residence data for some individuals, especially through French legal filings, but I’m not exactly sure where Forbes gets their German residence data from specifically. It’s possible, for instance, that they come purely from corporate filings, which can sometimes lead you to conflate corporate headquarters locations with personal residence. This might be more of a problem for the German data in particular where a higher proportion of billionaires are heirs and therefore the connection between residence and corporate headquarters location may not be quite as strong as in the U.S. So, some skepticism is warranted for exact location data (do all of the Ingelheim Boehringer heirs live in Ingelheim-am-Rhein, for instance? I’m not so sure). On the positive side though, the general patterns do match those in Tisch and Ischinsky’s figure which uses Manager Magazin data instead. It doesn’t eliminate the source of potential bias (Manager’s source may be the same as Forbes), but it does at least offer some reassurance.

Here’s the German map:

The data can be downloaded here: german_billionaires_city-level.csv.

See the R code
library(tidyverse)
library(rnaturalearth)    # Provides map shape files
library(ggthemes)         # Provides theme_map()
library(ggtext)           # Allows for italicizing the data source name

# --- Read data --- #
geocoded <- read_csv("german_billionaires_city-level.csv")

# --- Map elements from rnaturalearth  --- #
de <- ne_countries(country = "Germany", returnclass = "sf", scale = "large")
de_states <- ne_states(country = "Germany", returnclass = "sf")

# --- Labels for Top 5 Cities by # of Billionaires --- #
labels <- geocoded %>% 
  arrange(desc(n)) %>%
  slice_head(n = 5)

# --- Plot --- #
p <- ggplot(de) +
  geom_sf(fill = "grey95", color = "grey70", linewidth = 0.2) +
  geom_sf(data = de_states, fill = NA, color = "grey60", linewidth = 0.3) +
  geom_point(data = geocoded,
             aes(x = lon, y = lat, size = total_worth, fill = n), 
             shape = 21, color = "black", alpha = 0.60) +
  scale_fill_viridis_c(name = "Number of Billionaires",
                       breaks = c(5, 10, 15),
                       limits = c(0, max(geocoded$n)),
                       option = "viridis") +
  scale_size_area(name = "Aggregate Wealth (USD)", 
                  max_size=22,
                  labels = scales::label_dollar(suffix = "B", accuracy = 1),
                  guide = guide_legend(reverse = TRUE)) +
  theme_map(base_size = 20, base_family = "Roboto Condensed")  +
  theme(plot.title = element_text(family = "Roboto Condensed", 
                                  face = "bold", 
                                  size = 35),
        plot.subtitle = element_text(family = "Roboto Condensed Light", 
                                     face = "plain",
                                     size = 22),
        plot.caption = element_markdown(family = "Roboto Condensed",
                                        face = "plain",
                                        size = 14,
                                        hjust = 0),
        legend.title = element_text(family = "Roboto Condensed Light", 
                                    face = "plain",
                                    size = 18),
        legend.text = element_text(family = "Roboto Condensed Light", 
                                   face = "plain",
                                   size = 16),
        legend.position = "right",
        legend.box = "vertical",
        legend.justification = c("left", "center"),
        legend.box.just = "left",
        legend.spacing.y = unit(0.8, 'cm'),
        legend.key.height = unit(20, "pt"),
        legend.key.width  = unit(10, "pt"),
        plot.margin = margin(30, 10, 30, 0),
        plot.caption.position = "plot") +
  labs(title = "Distribution of Concentrated Wealth in Germany",
       subtitle = "By residence location of 157 German billionaires (2025)",
       caption = "Map by Wesley Stubenbord; Data: <i>Forbes</i>") +
  ggrepel::geom_text_repel(data = labels,
                           aes(lon, lat, label = city),
                           size = 8,
                           family = "Roboto Condensed",
                           segment.size  = 0)
  
ggsave("map_wealth_concentration_germany.png", 
       plot = p, 
       bg = 'white', 
       width = 11, 
       height = 9.5, 
       dpi = 300)

The area of the circle represents aggregate billionaire wealth by residence and the color scale indicates the number of billionaires residing there. The top 5 cities by number of billionaires are labeled. I won’t say much about interpretation other than that you can see clear demarcations between East and West Germany (as in nearly all data maps of Germany) and that German billionaires are more diffusely distributed than, say, French or British billionaires (who tend to be more concentrated in Paris and London, respectively).

If you have the inclination, you could incoporate population data and show the per-capita billionaire numbers, but this would have the effect of making small towns with a single billionaire hotter and larger cities (Berlin, Hamburg, and Munich) colder. I think it’s more interesting to know where billionaires live in absolute terms, however.