top of page

During the COVID-19 Lockdown I was bored one day and decided to try and code a UK Election Prediction Model. Months later here I am, with fancy graphs and scripts, but I digress.

Here you will find my poll-based UK, Scottish, Welsh and US Election Predictions. I am a very biased person, but this is all purely data driven with no intervention from myself. If you want my methodology its at the bottom of the page.

Here you will also find custom consoles from which you can make your own prediction using my model of the UK, Scottish or Welsh Parliaments.



The UK General Election, Scottish and Welsh Parliaments and my personal council models are a poll-based, personal version of the Strong Transition Model. In simple terms, if a party holds more percentage of the vote in a particular constituency than nationwide, then a certain amount of those voters will be counted as "strong" and unwinnable by other parties in that constituency. The "weak" voters will be the ones that are swayed by the national swing which is based on a polling average. After all parties vote in the constituency is adjusted, any remaining "swing" voters are redistributed into the parties based on local party support and adjustments are made if the total votes are over or under 100%. I do not predict seats in Northern Ireland due to a lack of polling, I do use Scotland and Wales only polls for Scottish and Welsh constituencies in the GE. English constituencies will be swung based on GB & UK polls adjusted for what the Welsh and Scottish polls say. Instead of using 2019 figure I use and average of different recent MRP data as base figures. In future versions confidence intervals will be implemented. If you have any further questions contact me.

BNV = Base National Vote

BLV = Base Local Vote

All parties' Local Swing will be adjusted to total 100%

Swing Voters are total votes lost after decreasing other parties

Party increasing vote share:

Poll / BNV * BLV = Local Swing

BLV + LS * Swing Voters = Local Vote Share

Party decreasing vote share:


BLV * Poll / BNV = Local Vote Share

(BLV + BNV) / 2  * Poll / BNV + (BLV - BNV) / 2 = Local Vote Share

bottom of page