# 2020 North Rhine-Westphalia local elections

Local elections were held in the German state of North Rhine-Westphalia on 13 September 2020 to elect district, municipal, and city councils and local boards, as well as mayors in most cities and district administrators in most districts. The 91-member Ruhr Parliament was also elected for the first time. Runoff elections for mayors and district administrators were held on 27 September where necessary.
All EU citizens aged 16 or over on election day were eligible to vote if they had lived in a municipality for at least sixteen days.

## Background and electoral system

Local elections take place every five years in North-Rhine Westphalia. However, the previous round of elections had taken place in May 2014. These offices were granted an extraordinary one-time extension to six and a half years in order to synchronise municipal and district council terms with those of mayors and district administrators. The latter offices previously had terms of six years, which was reduced to five years from 2020 onwards. All offices were thus elected simultaneously in September 2020.
Most bodies with multiple members, such as councils, are elected via mixed-member proportional representation, with half of the membership elected in single-member constituencies. Voters have one vote, which is cast for both a constituency candidate and associated party list. There is no electoral threshold. Local boards and the Ruhr Parliament are elected via pure party-list proportional representation with a 2.5% threshold. Elections to a single position, such as mayors and district administrators, are conducted via the two-round system.
The number of members on each district and city/municipal council is determined by the number of residents it serves and may vary between 20 and 90 members, not counting overhang and leveling seats that can emerge during elections. Councils may legislate to reduce their number of members by up to ten relative to the size bracket they fall into, to a minimum of 20 members.

## Parties

The table below lists the results of the 2014 local elections in the rural districts and the urban districts.
| Name | Name | Name | Ideology | 2014 result | 2014 result |
| Name | Name | Name | Ideology | Votes (%) | Seats |
| | CDU | Christian Democratic Union of Germany | Christian democracy | 37.5% | 1,309 / 3,494 |
| | SPD | Social Democratic Party of Germany | Social democracy | 31.4% | 1,109 / 3,494 |
| | Grüne | Alliance 90/The Greens | Green politics | 11.7% | 396 / 3,494 |
| | Linke | The Left | Democratic socialism | 4.7% | 164 / 3,494 |
| | WG | Voter Groups | Localism | 4.5% | 160 / 3,494 |
| | FDP | Free Democratic Party | Classical liberalism | 4.7% | 159 / 3,494 |
| | AfD | Alternative for Germany | Right-wing populism | 2.6% | 89 / 3,494 |
| | Piraten | Pirate Party Germany | Pirate politics | 1.7% | 56 / 3,494 |
| | Others | Others | – | 1.2% | 52 / 3,494 |

## Results

| Party | Party | Votes | % | Swing | Seats | +/- |
| | Christian Democratic Union of Germany (CDU) | 2,495,743 | 34.3 | 3.2 | 1,213 | 96 |
| | Social Democratic Party of Germany (SPD) | 1,766,181 | 24.3 | 7.1 | 912 | 197 |
| | Alliance 90/The Greens (GRÜNE) | 1,452,571 | 20.0 | 8.3 | 705 | 309 |
| | Free Democratic Party (FDP) | 405,139 | 5.6 | 0.8 | 198 | 39 |
| | Alternative for Germany (AfD) | 367,433 | 5.0 | 2.5 | 185 | 96 |
| | Voter Groups (WG) | 323,825 | 4.4 | 0.1 | 170 | 10 |
| | The Left (LINKE) | 277,781 | 3.8 | 0.8 | 137 | 27 |
| | Die PARTEI | 76,317 | 1.0 | 1.0 | 34 | 31 |
| | Volt Germany (Volt) | 37,590 | 0.5 | New | 13 | New |
| | Pirate Party Germany (Piraten) | 24,815 | 0.3 | 1.3 | 10 | 46 |
| | Ecological Democratic Party (ÖDP) | 6,990 | 0.1 | 0.0 | 3 | 1 |
| | Human Environment Animal Protection Party (Tierschutzpartei) | 6,751 | 0.1 | 0.1 | 3 | 2 |
| | Action Party for Animal Protection (Tierschutz hier!) | 5,172 | 0.1 | New | 2 | New |
| | Family Party of Germany (FAMILIE) | 4,907 | 0.1 | 0.1 | 2 | 1 |
| | Aufbruch C | 3,967 | 0.1 | New | 2 | New |
| | Alliance for Innovation and Justice (BIG) | 3,553 | 0.0 | 0.1 | 2 | 1 |
| | German Communist Party (DKP) | 2,886 | 0.0 | 0.0 | 2 | 0 |
| | Democracy by Referendum (Volksabstimmung) | 3,021 | 0.0 | 0.0 | 1 | 0 |
| | The Right (Die Rechte) | 2,582 | 0.0 | 0.0 | 1 | 1 |
| | Centre Party (Zentrum) | 2,238 | 0.0 | 0.1 | 1 | 0 |
| | Party for Social Affairs and Ecology (SO!) | 1,896 | 0.0 | 0.0 | 1 | 0 |
| | Other parties | 5,197 | 0.1 | 1.3 | 0 | 35 |
| | Independents | 1,667 | 0.0 | 0.0 | 0 | 0 |
| Total | Total | 7,277,932 | 100.0 | | 3,598 | 104 |
| Blank/invalid votes | Blank/invalid votes | 108,285 | 1.5 |
| Registered voters/turnout | Registered voters/turnout | 14,235,746 | 51.9 | 1.9 |
| Source: State Returning Officer |||||||

### Results in independent cities

City councils :
| City | CDU | SPD | Grüne | FDP | AfD | Linke | PARTEI | Volt | WG | Others |
| Cologne | 21.5 | 21.6 | 28.5 | 5.3 | 4.4 | 6.5 | 2.5 | 5.0 | 4.7 | 0.2 |
| Düsseldorf | 33.4 | 17.9 | 24.0 | 9.2 | 3.6 | 4.1 | 1.8 | 1.8 | 1.8 | 2.4 |
| Dortmund | 22.5 | 30.0 | 24.8 | 3.5 | 5.5 | 5.6 | 2.8 | – | 1.9 | 3.3 |
| Essen | 34.4 | 24.3 | 18.6 | 3.0 | 7.5 | 3.9 | 2.5 | 0.2 | 3.3 | 2.3 |
| Duisburg | 21.5 | 30.8 | 17.7 | 3.1 | 9.3 | 5.5 | 1.1 | – | 10.4 | 0.5 |
| Bochum | 20.8 | 33.7 | 22.2 | 3.3 | 5.6 | 6.1 | 2.3 | – | 5.7 | 0.3 |
| Wuppertal | 24.2 | 28.9 | 19.6 | 7.2 | 6.1 | 6.6 | 2.7 | – | 4.3 | 0.3 |
| Bielefeld | 27.7 | 24.9 | 22.3 | 7.0 | 3.4 | 6.1 | 2.9 | – | 4.4 | 1.0 |
| Bonn | 25.7 | 15.6 | 27.9 | 5.2 | 3.2 | 6.2 | 2.2 | 5.1 | 7.1 | 2.0 |
| Münster | 32.7 | 17.6 | 30.3 | 4.6 | 2.2 | 4.9 | 2.1 | 2.6 | 1.2 | 1.8 |
| Mönchengladbach | 34.0 | 25.2 | 21.2 | 5.5 | 5.9 | 4.1 | 2.7 | – | – | 1.4 |
| Gelsenkirchen | 23.2 | 35.1 | 12.2 | 4.0 | 12.9 | 3.5 | 2.0 | – | 4.8 | 2.2 |
| Aachen | 24.8 | 18.3 | 34.1 | 4.9 | 3.7 | 4.6 | 2.3 | 3.7 | 1.6 | 1.9 |
| Krefeld | 30.4 | 28.5 | 20.1 | 5.8 | 5.4 | 3.2 | 2.5 | – | 3.6 | 0.5 |
| Oberhausen | 32.8 | 31.7 | 14.4 | 3.0 | 7.6 | 5.1 | – | – | 4.6 | 0.8 |
| Hagen | 27.5 | 25.5 | 13.3 | 4.6 | 9.3 | 2.9 | 2.8 | – | 13.0 | 1.0 |
| Hamm | 33.4 | 37.1 | 12.7 | 5.1 | 4.7 | 2.9 | – | – | 3.8 | 0.3 |
| Mülheim an der Ruhr | 26.3 | 21.3 | 23.4 | 4.7 | 7.2 | 2.7 | 4.4 | – | 9.6 | 0.4 |
| Leverkusen | 27.8 | 25.2 | 18.2 | 4.8 | 5.7 | 4.5 | – | – | 14.8 | – |
| Solingen | 30.2 | 28.3 | 18.2 | 5.5 | 5.0 | 4.2 | 2.4 | – | 5.9 | 0.1 |
| Herne | 20.0 | 44.1 | 15.8 | 3.3 | 8.4 | 4.1 | – | – | 2.5 | 1.7 |
| Bottrop | 23.9 | 40.2 | 12.8 | 4.1 | 7.0 | 3.4 | – | – | – | 8.4 |
| Remscheid | 29.9 | 34.5 | 14.7 | 5.3 | 1.0 | 4.6 | – | – | 10.2 | – |
Mayors :
| City | Elected mayor | Elected mayor | Party/Ticket | Result | Result |
| City | Elected mayor | Elected mayor | Party/Ticket | 1st round | 2nd round |
| Cologne | | Henriette Reker | Independent | 45.1% | 59.3% |
| Düsseldorf | | Stephan Keller | CDU | 34.1% | 56.0% |
| Dortmund | | Thomas Westphal | SPD | 35.9% | 52.1% |
| Essen | | Thomas Kufen | CDU | 54.3% |
| Bochum | | Thomas Eiskirch | SPD/Grüne | 61.8% |
| Wuppertal | | Uwe Schneidewind | CDU/Grüne | 40.8% | 53.5% |
| Bielefeld | | Pit Clausen | SPD | 39.7% | 56.1% |
| Bonn | | Katja Dörner | Grüne | 27.6% | 56.3% |
| Münster | | Markus Lewe | CDU | 44.6% | 52.6% |
| Mönchengladbach | | Felix Heinrichs | SPD | 74.2% |
| Gelsenkirchen | | Karin Welge | SPD | 40.4% | 59.4% |
| Aachen | | Sibylle Keupen | Grüne | 38.9% | 67.4% |
| Krefeld | | Frank Meyer | SPD | 43.4% | 62.4% |
| Oberhausen | | Daniel Schranz | CDU | 45.5% | 62.1% |
| Hagen | | Erik O. Schulz | CDU/Grüne/FDP | 51.1% |
| Hamm | | Marc Herter | SPD | 40.7% | 63.6% |
| Mülheim an der Ruhr | | Marc Buchholz | CDU | 25.4% | 56.9% |
| Leverkusen | | Uwe Richrath | SPD | 46.1% | 70.0% |
| Solingen | | Tim-Oliver Kurzbach | SPD/Grüne | 55.4% |
| Herne | | Frank Dudda | SPD | 63.4% |
| Bottrop | | Bernd Tischler | SPD | 73.1% |
| Remscheid | | Burkhard Mast-Weisz | SPD/Grüne | 60.6% |

### Results in districts

District councils :
| City | CDU | SPD | Grüne | FDP | AfD | Linke | PARTEI | Pirate | WG | Others |
| Recklinghausen | 33.6 | 30.4 | 17.2 | 4.5 | 7.1 | 4.2 | – | – | 2.9 | 0.2 |
| Rhein-Sieg-Kreis | 39.4 | 21.5 | 21.8 | 5.7 | 4.6 | 3.2 | – | 1.2 | 1.2 | 1.4 |
| Aachen | 31.9 | 25.1 | 24.6 | 5.0 | 4.9 | 3.7 | 2.0 | 1.2 | 1.0 | 0.6 |
| Mettmann | 38.6 | 17.3 | 22.5 | 6.4 | 5.6 | 3.2 | – | 1.9 | 4.6 | – |
| Rhein-Erft-Kreis | 38.0 | 24.7 | 18.6 | 5.2 | 5.4 | 3.2 | – | 1.5 | 3.4 | – |
| Wesel | 32.8 | 29.7 | 19.0 | 5.5 | 5.6 | 4.1 | – | – | 3.3 | – |
| Rhein-Kreis Neuss | 37.8 | 23.2 | 19.0 | 6.9 | 4.5 | 2.3 | 1.9 | – | 3.3 | 1.2 |
| Steinfurt | 39.6 | 24.3 | 19.4 | 5.8 | 3.0 | 3.1 | – | – | 4.8 | – |
| Märkischer Kreis | 38.1 | 22.8 | 14.2 | 7.5 | 5.7 | 4.3 | – | – | 7.2 | – |
| Unna | 27.2 | 32.1 | 19.3 | 4.8 | 5.0 | 3.4 | – | – | 6.5 | 1.6 |
| Borken | 49.4 | 15.8 | 15.0 | 6.0 | 2.9 | 2.1 | – | – | 8.7 | 0.1 |
| Gütersloh | 39.1 | 19.2 | 21.0 | 5.8 | 4.4 | 2.4 | 0.4 | – | 7.6 | – |
| Lippe | 29.4 | 29.7 | 19.7 | 6.9 | 5.8 | 3.2 | – | – | 2.6 | 2.6 |
| Ennepe-Ruhr-Kreis | 26.8 | 31.3 | 20.8 | 5.8 | 5.3 | 3.8 | – | 2.5 | 3.7 | – |
| Kleve | 44.1 | 19.6 | 19.6 | 6.4 | 4.0 | 1.8 | – | – | 4.4 | – |
| Minden-Lübbecke | 35.8 | 28.3 | 16.8 | 6.5 | 5.9 | 2.8 | – | – | 3.5 | 0.4 |
| Paderborn | 46.8 | 15.5 | 18.2 | 5.6 | 4.9 | 3.2 | 2.2 | – | 2.8 | 0.6 |
| Soest | 41.9 | 20.3 | 16.4 | 6.7 | 4.5 | 2.7 | – | – | 6.0 | 1.4 |
| Viersen | 42.0 | 19.4 | 20.9 | 7.1 | 3.9 | 2.8 | 2.0 | 0.5 | 1.4 | – |
| Rheinisch-Bergischer Kreis | 37.2 | 18.8 | 24.4 | 6.5 | 4.8 | 2.9 | – | – | 5.4 | – |
| Warendorf | 41.3 | 20.7 | 18.8 | 6.3 | 3.4 | 2.5 | 1.5 | – | 5.6 | – |
| Siegen-Wittgenstein | 33.7 | 30.0 | 14.0 | 6.1 | 6.7 | 3.5 | – | – | 6.0 | – |
| Oberbergischer Kreis | 39.4 | 21.4 | 17.3 | 7.0 | 5.9 | 3.0 | – | – | 6.0 | – |
| Düren | 41.0 | 25.2 | 15.0 | 4.4 | 6.4 | 2.6 | – | 1.1 | 4.3 | 0.1 |
| Hochsauerlandkreis | 48.3 | 21.2 | 13.6 | 6.1 | 3.7 | 2.0 | – | – | 5.1 | – |
| Heinsberg | 51.5 | 15.6 | 16.7 | 4.9 | 4.3 | 2.7 | – | – | 3.8 | 0.5 |
| Herford | 29.9 | 35.4 | 16.0 | 3.8 | 5.9 | 3.3 | 2.9 | – | 2.9 | – |
| Coesfeld | 47.0 | 16.9 | 21.7 | 5.5 | 0.6 | 2.3 | – | – | 3.9 | 2.1 |
| Euskirchen | 38.5 | 23.9 | 15.1 | 7.9 | 6.5 | 2.4 | 0.8 | – | 4.9 | – |
| Höxter | 46.6 | 18.1 | 14.4 | 4.9 | 4.4 | 1.8 | 0.5 | – | 9.3 | – |
| Olpe | 51.6 | 18.4 | 12.2 | 4.3 | 4.0 | 2.0 | – | – | 7.5 | – |
District administrators :
| City | Elected administrator | Elected administrator | Party/Ticket | Result | Result |
| City | Elected administrator | Elected administrator | Party/Ticket | 1st round | 2nd round |
| Recklinghausen | | Bodo Klimpel | CDU/FDP | 38.3% | 50.5% |
| Rhein-Sieg-Kreis | | Sebastian Schuster | CDU | 53.2% |
| Aachen | No election | No election | No election | No election | No election |
| Mettmann | | Thomas Hendele | CDU | 51.0% |
| Rhein-Erft-Kreis | | Frank Rock | CDU | 44.5% | 57.3% |
| Wesel | | Ingo Brohl | CDU | 36.4 | 53.5% |
| Rhein-Kreis Neuss | | Hans-Jürgen Petrauschke | CDU | 49.7^% | 59.8% |
| Steinfurt | | Martin Sommer | Independent | 28.1% | 68.7% |
| Märkischer Kreis | | Marco Voge | CDU | 42.1% | 56.3% |
| Unna | | Mario Löhr | SPD | 41.1% | 61.9% |
| Borken | | Kai Zwicker | CDU | 67.2% |
| Gütersloh | | Sven-Georg Adenauer | CDU | 54.4% |
| Lippe | | Axel Lehmann | SPD | 40.3% | 56.0% |
| Ennepe-Ruhr-Kreis | | Olaf Schade | SPD/GRÜNE | 61.6% |
| Kleve | | Silke Gorißen | CDU | 48.7% | 54.2% |
| Minden-Lübbecke | | Anna Katharina Bölling | CDU | 46.3 | 63.7% |
| Paderborn | | Christoph Rüther | CDU | 53.4% |
| Soest | | Eva Irrgang | CDU | 56.5% |
| Viersen | | Andreas Coenen | CDU | 54.1% |
| Rheinisch-Bergischer Kreis | No election | No election | No election | No election | No election |
| Warendorf | | Olaf Gericke | CDU/FDP | 63.2% |
| Siegen-Wittgenstein | | Andreas Müller | SPD | 54.4% |
| Oberbergischer Kreis | | Jochen Hagt | CDU | 63.5% |
| Düren | | Wolfgang Spelthahn | CDU | 57.8% |
| Hochsauerlandkreis | | Karl Schneider | CDU | 58.7% |
| Heinsberg | | Stephan Pusch | CDU | 79.9% |
| Herford | | Jürgen Müller | SPD/GRÜNE | 56.3% |
| Coesfeld | | Christian Schulze Pellengahr | CDU | 66.7% |
| Euskirchen | | Markus Ramers | SPD | 40.1% | 60.4% |
| Höxter | | Michael Stickeln | CDU | 72.9% |
| Olpe | | Theo Melcher | CDU | 65.8% |

### Ruhr Parliament

| Party | Party | Votes | % | Seats |
| | Social Democratic Party of Germany (SPD) | 540,753 | 29.9 | 29 |
| | Christian Democratic Union of Germany (CDU) | 499,847 | 27.2 | 27 |
| | Alliance 90/The Greens (GRÜNE) | 373,953 | 20.3 | 20 |
| | Alternative for Germany (AfD) | 129,822 | 7.1 | 7 |
| | The Left (LINKE) | 75,769 | 4.1 | 4 |
| | Free Democratic Party (FDP) | 68,096 | 3.7 | 4 |
| | Die PARTEI | 39,804 | 2.2 | 0 |
| | Action Party for Animal Protection (Tierschutz hier!) | 36,601 | 2.0 | 0 |
| | Free Voters NRW (FW) | 14,733 | 0.8 | 0 |
| | Pirate Party Germany (Piraten) | 12,963 | 0.7 | 0 |
| | Volt Germany (Volt) | 9,512 | 0.5 | 0 |
| | Duisburger Alternative List (DAL) | 7,308 | 0.4 | 0 |
| | UWG: Free Citizens | 5,528 | 0.3 | 0 |
| | Independent Citizens Party (UBP) | 5,210 | 0.3 | 0 |
| | Ecological Democratic Party (ÖDP) | 4,949 | 0.3 | 0 |
| | National Alliance Ruhr Region | 4,239 | 0.2 | 0 |
| | Idea Community Ruhr (iGemRuhr) | 3,570 | 0.2 | 0 |
| | The Violets (DIE VIOLETTEN) | 2,671 | 0.1 | 0 |
| | Alliance C – Christians for Germany (Bündnis C) | 1,894 | 0.1 | 0 |
| | Grassroots Democracy Now (Basisdemokratie jetzt) | 1,834 | 0.1 | 0 |
| | Active (Aktiv) | 1,072 | 0.1 | 0 |
| Total | Total | 1,840,128 | 100.0 | 91 |
| Blank/invalid votes | Blank/invalid votes | 35,191 | 1.9 |
| Registered voters/turnout | Registered voters/turnout | 3,983,971 | 47.1 |
| Source: State Returning Officer |||||