Not sure who to vote for in 2017? Try my election model

Back in 2010, I made an election model in Excel which took manifesto statements from BBC’s website and anonymised them in order for you to state your agreement level for each statement independently. I wanted to do the same for the upcoming general election. Given that I have (slightly) better computing skills these days, I created a very simple Python script this time.

The script takes a database of statements that I got from the BBC’s 2017 party comparison website, which provides a small set of key bullet points for each policy area. I included the 5 main national parties (Conservatives, Labour, Liberal Democrats, UKIP, and the Green Party), but left out region-specific ones like Plaid Cymru and the SNP.

You will be randomly shown policy statements, one at a time, and asked to rate them from -2 to 2 according to the following scale:

  • -2 = Strongly disagree
  • -1 = Disagree
  • 0 = Indifferent or don’t know
  • 1 = Agree
  • 2 = Strongly agree

There are 223 statements in all, so you probably want to give yourself at least half an hour to go through them. A few will be similar because obviously some parties hold similar positions. At the end, you will be shown the average ‘agreement’ score for each party, and a recommendation based on this score. A positive (negative) overall score indicates that, on average, you agree (disagree) with that party’s policies. You can actually put in any number between -2 and 2, so if for some reason you want to evaluate a statement as 0.1 (i.e. you very very marginally agree with it), you can.

Obvious disclaimer: You should only use the suggestion as a rough guide. Ultimately, how you choose to use the information is up to you. However, it is a good way for you to check your alignment with a minimum of bias.


  • If you are running Windows, you will need to install Python 3 on your computer. MacOS and Linux come with Python preinstalled (the code works with Python 2.7.x as well).
  • Download and unzip the following file into a directory of your choice: electionmodel2017
  • Open the directory that contains the unzipped files in Terminal (Mac and Linux) or the command prompt (Windows). For example, if you have a Mac and you have unzipped the file into an ‘electionmodel2017’ folder on your desktop, you would want to open Terminal and type “cd /Users/*your username*/Desktop/electionmodel2017”
  • Open the ‘’ file by typing in “python” once you are in the directory, and follow the instructions to rate each statement.

I have also included a shorter version, which only includes the key priorities for each party. This can be opened with “python“.

Leave a comment

Time limit is exhausted. Please reload CAPTCHA.