2019 Zürich cantonal elections
The 2019 Zürich cantonal elections were held on 24 March 2019, to elect the seven members of the cantonal Executive Council and the 180 members of the Cantonal Council. All five incumbents running were re-elected to the Executive Council, as well as green candidate Martin Neukom and Swiss People's Party candidate Natalie Rickli. The election was an upset for the left-wing and green parties. The Green Party re-gained an executive councilor as Neukom was elected and both social-democratic candidates topped the polls, although the right-of-center parties maintained a majority in the Executive Council. Both the Greens and Green-Liberals made important gains in the Cantonal Council, ending the right-of-center parties' overall majority. Electoral system

Executive Council 
The Executive Council contains 7 members elected using a two-round majoritarian system. In the first round, electors have up to seven votes and the 7 most-voted candidates reaching an overall majority (>50%) are elected. If seats remain to be filled, a runoff is held where electors have as many votes as seats remaining, and the candidates with the most votes (simple plurality) are elected. Cantonal Council 
The Cantonal Council is elected using open-list proportional representation, with canton-wide apportionment of seats and allocation into 18 constituencies (biproportional apportionment). In each constituency, voters have as many votes as there are seats to fill (panachage is permitted); these votes each count both for the candidate and for the list they stand in. These votes counts are divided by the seats count to give fictional electors counts which can be summed up fairly throughout the canton. Using the fictional electors counts, each party above the threshold (reaching 5% in at least one constituency) is apportioned seats canton-wide, which are then shared among their constituency lists. In each constituency list, the seats are attributed to the candidates reaching the most votes. Candidates

Executive Council 
Five of the seven incumbents ran for re-election: Mario Fehr (SP), Ernst Stocker (SVP), Sylvia Steiner (DM), Carmen Walker Späh (FDP), and Jacqueline Fehr (SP). Mario Fehr was narrowly re-nominated by his party but lost support from both the Greens and the Alternative Left. The Green Party aimed to re-gain their seat lost in 2015 and fielded cantonal councilor Martin Neukom; they recommended Alternative List candidate Walter Angst on their ticket instead of Fehr. Incumbent councilor Thomas Heiniger (FDP) announced his retirement in early 2018, followed by Markus Kägi (SVP). The FDP selected cantonal council group leader Thomas Vogel, who had failed to be nominated against Carmen Walker Späh in 2015, to succeed Heiniger. The SVP chose national councilor Natalie Rickli to replace Kägi, by a wide margin in the internal vote after misogynist campaign emails from her opponent Christian Lucek were leaked to the media. The FDP, SVP, and CVP ran together informally again as the "Bourgeois Alliance for the Executive Council", highlighting their long-standing control of the cantonal executive, although with separate programs. Jörg Mäder ran for the green-liberals, Hanspeter Hugentobler for the EVP, and Rosmarie Quadranti was the BDP candidate. The three "centrist" parties held a press conference together, with different programs but highlighting their ability to compromise; media speculated that they would unite behind a single candidate in the case of a runoff. Cantonal Council 
The table below lists contesting parties represented in the Cantonal Council before the election. The Party of Labour, Die Guten, and Helvida also contested this election. A total of 13 parties contested this election, as many as in 2015, representing a total of 1734 candidates. During the previous legislature, the SVP and FDP formed a minority coalition to legislate, working with either the CVP, GLP, BDP, or EDU to pass legislation, but the GLP and EVP progressively distanced themselves from the alliance. The SP and Greens challenged several policies in referendums; as a result the bourgeois majority mainly worked on budgetary issues with few work on other policies, leading the SP to speak of a "lost legislature"

Campaign 
The "bourgeois alliance" of SVP, FDP, and CVP ran a joint campaign for the Executive Council. Similar alliances had already existed in the canton and city of Zürich in past elections. However, an SVP leaflet targeting the FDP two weeks before the election led to speculation about a potential division in the electorate. Mario Fehr's renomination by the socialists was controversial especially to the Young Socialists due to his hardline stance on asylum policy; both the Greens and the Alternative left refused to endorse Fehr. These conflicts around Mario Fehr caused the leftist parties to enter this election disunited, which was seen as a risk for the greens despite Fehr's strong personal popularity. Climate became a dominant campaign issue due to the ongoing climate strikes. Greens and Green-liberals were seen as most likely to gain from this focus, while the FDP did not gain from their own change-of-course in climate policy. Climate issues also overshadowed the SVP's core issues, immigration and asylum policy, leading them to expect further losses after a poor performance in the 2018 local elections. The socialists' ambiguous stance on the EU-Switzerland framework agreement and the resulting defection of former national councilor Chantal Galladé to the green-liberals also led them to lost momentum despite their successful results in the local elections. Opinion polls

Executive Council

Cantonal Council

Results

Executive Council 
Note: percentages here are calculated based on the amount of valid votes (excluding blank and invalid votes) so that the absolute majority is at exactly 50%, but may result in candidates reaching over 100% of the valid votes. This election was an upset for the left-of-center parties. The two social-democratic candidates topped the polls with Mario Fehr exceeding 83%, and Martin Neukom was elected after unexpectedly placing sixth. Both SVP candidates dropped below 70% for the first time since 2007, white the FDP scored historically low and lost one of their two seats for the first time as Thomas Vogel failed to make the top-7. Sylvia Steiner placed fourth as her vote share remained constant; four other candidates finished above 20%. As 8 candidates reached a majority, no runoff was held. The top-5 alliance lost one of their seats but retained a majority with four councilors out of seven, although with the CVP needed compared to the previous elections. Results by district

Cantonal Council 
This election continued the realignment in Swiss politics, as the Green-Liberals and Greens together gained ten points and 18 seats. This was even more than predicted in the polls, and would later be described as a "green wave". The SVP dropped to their lowest level since 1995, and the BDP lost all their seats due to missing the threshold. This election was a debacle for the bourgeois parties: the FDP, SVP, and CVP together lost 12 seats in total and their incumbent overall majority. As a result of this election, the right-of-center parties totaled 86 seats and the social democrats and greens added up to 57 seats; the Tages-Anzeiger described the green-liberals and their 23 seats as kingmakers in the newly-elected cantonal council. Results by contituency

Aftermath 
As in 2015, this election was a bellwether for the federal election in october, as the Green and Green-Liberal gains would as expected be replicated on a federal scale. Cantonal departments

References 

Cantonal elections in Zürich
2019 elections in Switzerland