This page describes a system we developed to forecast the now-passed 2010 UK General Election; we've kept it for historical reasons, as a lot of people linked to it. As a summary, here's how our predictions made out; they were made before the party leaders' TV debates, which boosted the Liberal Democrats against Labour, but even despite that they were pretty good:

Party VIPA projection Actual result Difference
Conservatives 310 306 -4
Labour 270 258 -12
Liberal Democrats 41 57 +16
Scottish National Party 6 6 -
Plaid Cymru 3 3 -
Others 3 3 -

If you want to read more about how this election-predicting system works, read on...

Forecasting the 2010 UK election

Resolver Systems' co-founder Robert Smithson is a keen observer of the UK political scene, and in his spare time he looks after the technical side of the immensely popular He thinks the way we forecast UK election results is no longer effective, and using our programmable spreadsheet, Resolver One, he's built a model based on Voting Intentions Predictive Analysis (VIPA).

Like many models, it currently predicts a hung parliament, with the Conservatives making up the largest block:

Party Seats won in 2005 VIPA projection Change
Conservatives 214 310 +100
Labour 344 270 -79
Liberal Democrats 62 41 -21
Scottish National Party 6 7 +1
Plaid Cymru 2 3 +1
Others 3 3 0

To find out more:

Download the model here
to try it for yourself
...or read on to find out more.

The problem with the Swing

Most existing election forecasts in the UK use techniques based on a Unified National Swing. This uses poll data to determine how each party's share of the vote has changed since the last election, and then applies that "swing" to each constituency in the country to see who will win it this time around.

For example, let's imagine we had the following change in vote shares:

Party 2005 result Current polls Change
Conservatives 33.2% 39.6% 6.4%
Labour 36.2% 25.7% -10.5%
Liberal Democrats 22.6% 21.3% -1.3%
Scottish National Party 1.6% 2.4% 0.8%
Plaid Cymru 0.7% 0.8% 0.1%
Others 5.6% 10.2% 4.6%

So, let's take a typical constituency, Bedford. Leaving out Plaid Cymru and the Scottish National Party, neither of which field candidates there, we can apply the swing to 2005's results to get a quick and easy forecast of how people would vote there if an election was held now:

Party 2005 result Swing Simplistic forecast
Conservatives 33.5% 6.4% 39.9%
Labour 41.7% -10.5% 31.2%
Liberal Democrats 21.8% -1.3% 20.5%
Others 3.1% 4.6% 7.7%

So this model would suggest that the Conservatives will win Bedford from Labour. Repeat that process for every constituency in the country, and you can work out how many seats you expect each party to win.

The problem with forecasting like this is that it doesn't take account of where the votes "come from" — for example, if the Conservatives get more voters, were they previously Liberal Democrats, or Labour, or non-voters? This matters because people are far more likely to move in certain directions; for example, people who voted Liberal Democrat in 2005 and decide to vote differently now are much more likely to vote for the Conservatives than they are to not vote at all. However, people who voted for parties that were not one of the "big three" are much more likely to stay home than they are to vote for the Conservatives.

So, if you imagine a marginal constituency where the Conservatives and Labour are the two largest parties, if there are lots of Liberal Democrat voters there who decide to vote differently it will benefit the Conservatives much more than it would if the third party in that seat was, say, the Scottish National Party. Election forecasters know of this effect, and it is often discussed in election night broadcasts, but it rarely gets into the models used to predict the results.

The problem is that the Unified National Swing does not work very well when there are more than two parties. It was developed in the 1950s, when Labour and the Conservatives took 95% of the vote, but now that there are effective third parties in different parts of the country, it has become considerably less effective because it fails to take account of these local differences.

The solution: VIPA

Smithson's solution to the problem is simple: the data from recent Guardian/ICM polls, suitably adjusted, tells you how likely people are to move from party to party. Given this detailed voting intentions information, a list of the election results from 2005, a spreadsheet that's easy to program, and a lot of hard work, he was able to build a model that works out on a per-constituency basis how people were likely to vote, allowing for third parties and regional differences. This is Voting Intentions Predictive Analysis.

...and the forecast:

Most recent forecasts suggest that the Conservatives will win a very small majority of seats in the 2010 election, or that there might even be a hung parliament; Labour will lose quite a lot of seats, and the Liberal Democrats will lose one or two

VIPA agrees about a hung parliament, but predicts a much more worrying outcome for the Liberal Democrats:

Party Seats won in 2005 VIPA projection Change
Conservatives 214 310 +100
Labour 344 270 -79
Liberal Democrats 63 41 -21
Scottish National Party 6 7 +1
Plaid Cymru 2 3 +1
Others 3 3 0

Try it out for yourself!

If you're using a PC with Microsoft Windows 7, Vista or XP, you can try out the full election forecasting model yourself:

  1. Click here to download Resolver One, the spreadsheet program that the model uses.
    • If you're using Internet Explorer, when asked if you want to run or save the file, select "Run"
    • If you're using Firefox, wait until the file has downloaded and then double-click on it in the "Downloads" window.
  2. Once it is installing, it will ask you whether you want to use the "Default" or "Custom" options. Choose "Default".
  3. Click here to download the model itself.
  4. Double-click on the model file to start it, or start Resolver One and use the "Open" option on the "File" menu. You will see the main page of the model, which looks like this:
  5. At the top of the spreadsheet, there is a table showing voting intentions. We'll explain this in detail later.
  6. Further down is a table showing the 2005 Results, which should be self-explanatory.
  7. Further down still (you'll have to scroll a little) there's the 2010 Forecasts section. Initially this is empty, so...
  8. Click the "Execute forecasts" button to see the number of seats each party will get.

    ...and the results will appear:
  9. Perhaps a chart would help? If you look beneath the sheet, you will see a number of tabs, each of which is for a different sheet (just as in other spreadsheet programs). Click on the one called "Pie Charts (RESULT)"...

    ...and you will see pie charts showing the 2005 and the forecast results (you may need to make the window larger to see it all):
  10. Let's go back and change some of the inputs to the model to see how that changes the output. Click on the first tab (called "Summary"), and scroll up to to the top of the sheet, back to the voting intentions grid. This grid has how people voted in 2005 from left to right, and how they say they will vote from top to bottom. So, for example, to see how likely a voter who chose the Liberal Democrats in 2005 is to choose the Labour Party next time, find the column headed "LD", then go down to the row with header "LAB":

    The figures that we have are an adjusted version of the ICM data (we've stripped out the people who didn't give an answer, and scaled everyone else up to compensate). Let's try changing them temporarily to show that happens (perhaps you may want to change them permanently later, if for example you find new data). For now, change the figure we found above to 2%, and then go down and hit the "Execute forecasts" button once again. You can see that it gives noticably different results — the Conservative lead is significantly increased, largely at Labour's expense:

...and that's it for now! You now know how VIPA analysis predicts the election results for the UK 2010 General Election.

Next steps

The model has a number of other features that you might like to explore:

Monte Carlo analysis

This is useful for people who want to make spread bets on the election, as it gives you the VIPA model's predictions of the probabilities of a range of outcomes rather than a single set of numbers. You can read more about the Monte Carlo analysis feature here.

Advanced parameters

The VIPA model takes account of incumbent bias, the different political make-up of the different countries of the UK, and various ways that people behave differently when it comes to tactical voting; you can configure these options on the "Advanced" sheet.

Incumbent bias: It's often claimed that current MPs are more likely to win elections than the polling numbers would predict. And many Liberal Democrats claim that MPs from their party benefit from this effect even more than members from other parties. On the other hand, the recent expenses scandal might have biased voters against incumbents. The VIPA model allows you to specify percentage amounts for the incumbency bias for MPs in general, and a separate one for the Liberal Democrats, at the bottom of the "Advanced" tab. We have found that a zero incumbency bias for parties in general, but 15% advantage for Liberal Democrats, fits the historical results best (which should be cheering news for the Lib Dems!)

Per-country voting intentions. The voting intentions grid you enter on the "Summary" sheet is for the UK as a whole. However, it masks obvious differences between England, Scotland and Wales — in particular, it does not allow for the Scottish National Party or for Plaid Cymru. This is because these parties have no vote outside their country, and so including them in the national numbers would lead to problems. For example, if the national intentions grid suggested a shift from, say, Labour to the SNP, then this average number could not just be applied nationwide, because this would lead to both smaller shifts to the SNP than are reasonable in Scotland (because the shift would be an average across the whole of the UK) and to small shifts to the SNP in England and Wales, which would not be very realistic. In addition, English, Scottish and Welsh voters switch parties in very different ways; in particular, national parties in Scotland and Wales are attractive protest votes. Different voting intentions grids are needed to express this. (Of course, one could go futher and require even more detailed local voting intention analysis, on the basis that Tyneside is rather different to Henley-on-Thames. Unfortunately we don't have the data for this.)

The way the VIPA fixes this country problem is twofold:

  1. On every analysis you run, it starts off by taking the nationwide grid, and inferring from it separate grids for England, Scotland and Wales, making various changes — for example, adding lines for the SNP to Scotland and for Plaid Cymru for Wales with inferred values, based on an algorithm that makes sense when we look at historical data. This helps address both problems, and while the values it infers are never entirely perfect they are much better than simply using the same national figures for every constituency would be.
  2. In addition, you can override these per-country grids yourself in the "Advanced" worksheet. So if you have better data than the data that VIPA has inferred, you can enter it there.

Tactical voting settings. These are new to VIPA, and we'll be explaining them in detail in the future; if you want to hear more, keep an eye on our news blog.

If in the meantime you'd like to ask questions about the model, or tell us what it does wrong, you can post a comment in our forums.