Analysing General Election Voter Turnout
Another year, another election in the UK and this one is set to be a doozie. So much so, we’ve already seen a marked spike in voter registrations leading the BBC to publish this article about the influence of non-voters. This naturally leads to the question about how voter turnout has impacted previous elections so we can try and undertsand what the impact might be of an increased turnout in this one.
As it happens, UK Parliament releases all election data through their API and there is a great wrapper package hansard
we can use to scrape the data the data from the 2015 and 2017 General Elections and try and conduct an analysis that can help us understand the impact of voter turnout. Let’s check out the data available…
library(hansard)
library(tidyverse)
#2015 election
election15 <- election_results(ID = 382386)
# 2017 election
election17 <- election_results(ID = 730039)
election_master <- rbind(election15, election17)
election_master <- election_master %>%
mutate(turnout_pct = turnout / electorate) %>%
separate(result_of_election, c("result_of_election", "swing"), sep = " ")
knitr::kable(head(election_master))
about | electorate | majority | result_of_election | swing | turnout | constituency_about | constituency_label_value | election_about | election_label_value | turnout_pct |
---|---|---|---|---|---|---|---|---|---|---|
383000 | 71485 | 16890 | Con | Hold | 47257 | 146989 | Hereford and South Herefordshire | 382386 | 2015 General Election | 0.6610758 |
383130 | 73181 | 10709 | Con | Hold | 50010 | 147053 | Maidstone and The Weald | 382386 | 2015 General Election | 0.6833741 |
383181 | 48690 | 5325 | Con | Hold | 33757 | 147077 | Montgomeryshire | 382386 | 2015 General Election | 0.6933046 |
383413 | 76645 | 20761 | Con | Hold | 54559 | 147191 | Skipton and Ripon | 382386 | 2015 General Election | 0.7118403 |
383460 | 79285 | 17813 | Con | Hold | 51304 | 147214 | South West Bedfordshire | 382386 | 2015 General Election | 0.6470833 |
382769 | 74485 | 93 | Lab | Gain | 51161 | 146876 | City of Chester | 382386 | 2015 General Election | 0.6868631 |
Annoyingly, we don’t have the votes per candidate. Only the majority size. But we have been able to use the original result_of_election
to seperate out whether the constituency was a hold or a gain and been able to calculate the percentage turnout. That should be enough to try and examine the imapct of voter turnout between elections and whether there’s a difference on the held v gained seats. First, let’s compare elections. (Note, I usually include the code for the charts but in this case, it’s the same simple structure as past post charts but with a lengthy scale_fill_manual
call to define the party brand colours so I haven’t included for readabilties sake. Feel free to get in touch if you’d like to review the code though).
There’s a few things that standout here. Firstly, the proportional turnout in general is higher in the 2017 election, however there are some constituencies in 2015 with a fantastic voter turnout rate. These are all SNP wins, suggesting a call to arms around the Scottish Indyref. The second is that Conservative won seats tend to have a higher turnout rate than labour seats across the board. We can combine the years and check to see if there is any trend in held and gained seats that might explain this.
Again, a few things to digest here. First, the gained seats facet further supports the SNP rallying call the previous chart shows as well as highlighting the 2017 DUP seat gains more clearly. This could lead to the conclusion that the rallying of a party around a clear cause can have a big impact on voter turnout and subsequently, the result of the election in those constituencies.
Secondly, we see the same trend at an overall level that typically held Conservative seats see a greater voter turnout rate than Labour ones. The general consensus in the SHARE office was that this could highlight a difference in party voter base; with older people more likely to turnout and to vote right wing.
What does this tell us overall? People come out to vote when there is a clear cause to support and I’d say Brexit is a cause that people tend to be fairly passionate about. This can certainly help explain why we’ve seen a surge in voter registrations. What that surge may mean in terms of election result is less clear. Given the Brexit party aren’t running in Conservative strongholds, you’d expect the turnout proportion in those constituencies to remain largely the same the labour constituencies to perhaps see is a higher turnout by virtue of clear oppostion and a clearer cause themselves. It’s going to be an interesting election season for the pollsters, that’s for sure.