Where each party is strong: election results and structural data
The analysis sets the 2025 federal election result in every district next to its structural data: unemployment rate, population density, share of foreigners, age structure, jobs and turnout. This shows in which kind of district a party does better than average. The figures describe districts, not individual voters.
Relationship between second-vote share and structural data
Each cell gives the correlation r between the party's second-vote share and the indicator across all districts. Positive values: the party is stronger where the indicator is high. Negative values: it is weaker there. From about 0.3 the relationship is clear, from 0.5 strong.
| Party | Unemployed | Density | Foreigners | under 19 | 67+ | Jobs | Turnout |
|---|---|---|---|---|---|---|---|
| CDU/CSU | −0.65 | −0.18 | +0.14 | +0.46 | −0.43 | −0.09 | +0.57 |
| AfD | +0.16 | −0.49 | −0.55 | −0.36 | +0.70 | −0.28 | −0.47 |
| SPD | +0.38 | +0.32 | +0.22 | +0.07 | −0.16 | −0.01 | −0.05 |
| Grüne | −0.04 | +0.62 | +0.57 | +0.17 | −0.63 | +0.47 | +0.34 |
| Linke | +0.54 | +0.41 | +0.07 | −0.36 | +0.12 | +0.31 | −0.38 |
| BSW | +0.41 | −0.19 | −0.40 | −0.45 | +0.66 | −0.11 | −0.54 |
| FDP | −0.23 | +0.33 | +0.54 | +0.40 | −0.46 | +0.18 | +0.35 |
| Freie Wähler | −0.53 | −0.39 | −0.15 | +0.10 | −0.10 | −0.13 | +0.27 |
Across 399 districts the strongest positive relationship is AfD with share aged 67 and over (r 0.70), the strongest negative one CDU/CSU with unemployment rate (r -0.65).
How is the correlation between election result and structural data calculated?
For each party the second-vote share at the 2025 federal election in every district is set against the district's indicator and the Pearson correlation is calculated, each district counting equally. Population density enters logarithmically. The value describes districts, not individual voters.
Scatter plot: party against indicator
Choose a party and an indicator. Each dot is a district or independent city; the line shows the average relationship. Tap a dot, the name leads to the district page.
- Olpe46.6 %
- Garmisch-Partenkirchen44.4 %
- Hochsauerlandkreis43.6 %
- Eichstätt42.8 %
- Miesbach42.8 %
- Rostock15.4 %
- Jena15.8 %
- Uckermark15.9 %
- Spree-Neiße15.9 %
- Hildburghausen16.0 %
Questions about the analysis
- How is the relationship calculated?
- For each party and each indicator the Pearson correlation is calculated across all districts and independent cities with complete data, each district counting equally. Population density enters logarithmically. CDU and CSU are combined as the Union.
- Does this mean unemployed people vote for a particular party?
- No. The analysis compares districts, not people. A high value means that a party is stronger in districts with a high unemployment rate; it does not show who voted how there. That requires surveys.
- Where do the structural data come from?
- Population, area and density from the municipal directory of the Federal Statistical Office, unemployment rate and employees at the place of work from the Federal Employment Agency, age structure and share of foreigners from the 2022 census. Turnout and second votes come from the Federal Returning Officer.
- Why are some districts missing?
- Berlin is reported as East and West in the election result, while the structural data exist only for the city as a whole. Districts without complete data are left out.