We use generalized additive models to predict residential real estate prices in Germany. Creating a single model for the whole country would fail to account for spatial heterogeneity in model outputs while too finely grained spatial units would lead to bias due to data sparsity. To overcome this problem, we subdivided Germany into clusters that pool as much data as possible, while also being sufficiently small to retain internal homogeneity. To this end, we employed the SKATER algorithm developed by Assunção et al. (2006) to group spatial units based on postal codes into clusters. The algorithm uses minimum spanning trees to identify regions that share similar characteristics regarding urbanization level, average real estate prices and the number of observed real estate listings. We use real estate listings data to build separate models specific to each of the resulting 25 clusters. In doing so, improve the overall accuracy of our model outputs, i.e. real estate prices on Germany, by capturing regional differences in urbanization and socioeconomic factors.