Project description

After producing multiple graphics and interactives based on a list of ‘MP factions’ that our political journalists compiled, we realised that the cross-party factions should be visible in the public voting records of MPs across key Brexit votes.

We set up a script to download and parse MP’s voting records on 10 of the most divisive parliamentary Brexit votes, such as on May’s deal and the proposal for EEA membership, collecting more than 6,000 individual votes. We then wrote a script that compared the voting records of pairs of MPs, creating over 4 million “similarity scores” which we used to cluster similarly voting MPs.

This was all presented as a piece of interactive data visualisation which allowed readers to highlight their own MP and then see the fracturing of political parties unfold before them. The final piece clearly demonstrates which votes saw the European Research Group splinter off from the Conservative frontbench, as well as the early divide between the Labour frontbench and the Europhiles who backed EEA membership.

Our analysis correctly categorised the 7 Labour MPs who went on to quit the party and form The Independent Group just days after publication.

What makes this project innovative?

The main innovation with this project was that it succeeded in empirically demonstrating that the factions our political lobby team were observing in their on-the-ground reporting were reflected in the voting patterns of MPs. This kind of network analysis is usually saved for academic research and so to bring it in to the newsroom and complete it on a newsroom deadline was a real achievement. Exposing which faction your MP had fallen into was also a key priority with the project. By allowing readers to search for their MP at the top of the page they could see how their MP’s alliances shift as the votes unfolded, ultimately leading to greater transparency of how our readers’ elected politicians are representing them.

What was the impact of your project? How did you measure it?

We were very happy to see that the project generated a wide discussion on social media, with many people choosing to highlight their own MP’s voting record, often @ing their MP in the tweet. This kind of response is exactly what we were hoping for when we started publishing our MP vote trackers, since greater transparency leads to better informed citizens – crucial in the age of misinformation and spin online. Overall the piece was extremely well-read with hundreds of thousands of page views and above-average attention time for a piece of its length.

Source and methodology

All of the data came from the House of Commons divisions API. A node.js script written in JavaScript downloaded and analysed all of the MP voting data, generating more than 4 million “similarity scores” that ranked how closely the voting records of the two MPs matched. These results were outputted to a JSON file and loaded into a D3 force simulation to create the clusters.

Technologies Used

All of the data analysis was conducted using JavaScript, with the resulting data visualisation created using D3. The clustering came from using D3’s force simulation package.

Project members

Josh Holder, Seán Clarke and Antonio Voce



Click Follow to keep up with the evolution of this project:
you will receive a notification anytime the project leader updates the project page.