Not sure who to vote for in 2019? Try my updated Python election model

Back in 2017, I made an election model in Python 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’ve done the same for the upcoming 2019 UK general election, adding two new parties that have formed since the last election.

The script takes a database of statements that I got from the BBC’s 2019 party comparison website, which provides a small set of key bullet points for each policy area. The model is centred around England’s parties.

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 307 statements in the main version, so you probably want to give yourself at least half an hour to go through them. However, I have also included a shorter version that only includes the main priorities for each party. This one only has 29 statements so is quicker if you’re in a rush, though obviously only focusing on a party’s headline priorities can lead to misleading conclusions when they have other less publicised policies that you may not agree with. Some statements are 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: electionmodel2019
  • 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.
  • The short version can be opened with “python“.

Leave a comment

Time limit is exhausted. Please reload CAPTCHA.