Tools for Analysing UK Politics

Provides various tools for analysing UK political data, including election result datasets, hexagonal cartograms and functions to retrieve council member data.

license CRAN_Status_Badge GitHub tag Travis-CI Build Status AppVeyor Build Status Coverage Status DOI

A collection of useful tools for UK politics, including base maps and datasets. Initially inspired by Bhaskar Karambelkar's tilegrams package, but with the ability to create a hexagonal map of UK parliamentary constituencies. The package also includes functions for data retrieval of current MPs and their consituency details (as it requires calls to two different APIs, this function is not included in my hansard or mnis packages), and data from the 2015 UK General Election, courtesy of the British Election Study.

The most up-to-date documentation for the development version will always be at


parlitools is available on CRAN. To install on CRAN run:


Or, if you use pacman:


To install the development version from GitHub, run:


Functions and Data

For more details see the full documentation or the vignettes.

Included Data

party_colour - A tibble with the ID, name and hex code for the official colour of a variety of political parties, taken from Wikipedia. Includes all political parties with MPs and a number without MPs. (Sources:, mnis::ref_parties())

bes_2015 - A tibble with the British Election Study 2015 Constituency Results Version 2.2. For information on all the variables in this dataset, see the bes-2015 vignette (Source:

bes_2017 - A tibble with Great Britain constituencies results from the 2017 general election. This data can be linked to 2011 census information in census_11.

census_11 - A tibble with constituency-level census data.

leave_votes_west - The percentage of votes cast for leave in the 2016 EU referendum. Some constituencies have actual results and others only have estimates by Chris Hanretty; in cases where the actual cote count is known, both the estimates and the actual results are reported. (Sources:

Data Retrieval Functions

current_mps - Uses functions from hansard and mnis to create a tibble with data on all current MPs, their party affiliation and their constituency.

mps_on_date - Uses functions from hansard and mnis to create a tibble with data on all MPs from a given date, their party affiliation and their constituency.

west_hex_map - A hexagonal cartogram, stored as a simple feature and data frame, of Westminster parliamentary constituencies. west_hex_map can be used to create maps like this:

plot of chunk unnamed-chunk-2

local_hex_map - Hexagonal cartogram, A hexagonal cartogram, stored as a simple feature and data frame, of all Local Authorities in England, Wales and Scotland.

Using parlitools

For more details, please see the introductory vignette, using parlitools with cartogram, mapping local authorities and the vignette detailing British Election Study 2015 variables.

Data Sources

There are a variety of potentially relevant data sources and datasets on UK politics, far too many for me to include them all in this package.

  • Electoral Commission - Electoral results dating back to 2005.

  • British Election Study - A large selection of open data, including panel surveys, linked data and aggregated Twitter data, covering elections and referenda.

  • My hansard & mnis data retrieval packages for parliamentary APIs.

  • Open Council Data has data on the names, parties, and wards of all UK councillors, updated more or less weekly.


parlitools 0.3.0

  • parlitools no longer stores local council party data. The most up-to-date data on the political make-up of local councils and individual councillors can be be accessed with the new council_seats() function.

  • Updated the leave_votes_west dataset to include the latest best-estimates of constituency level votes from Chris Hanretty and the actual votes, where known.

  • Fixed errors caused by duplicated vignette names.

  • Eliminated some dependencies.

parlitools 0.2.3

  • Changed party_id in the party_colour dataset to a character vector.

  • Otherwise very minor update, some tweaks to docs layout.

parlitools 0.2.2


  • Updating of council_data dataset to be accurate as of 2017-11-24.

parlitools 0.2.1


  • Updating of council_data dataset to be accurate as of 2017-09-13.

  • Added combined_leave_vote column to leave_votes_west dataset with the actual leave vote if known and the Chris Hanretty estimate if not known.

  • Vote percentages in leave_votes_west are now all numeric class.

Dependency changes

  • Removed reliance on now-hidden functions from mnis and hansard packages.

General improvements

  • Improvements to documentation to improve clarity and readability.

  • Better example plots in introductory vignette.

  • The tidying functions are now all internal to the package and not exported.

parlitools 0.2.0


  • New bes_2017 dataset, with results of 2017 General Election, taken from the 2017 British Election Study. This dataset replaces the ge_2017 dataset. It also replicates some of the data in the bes_2015 dataset.

  • Census data from the British Election Study has been moved to its own separate file, named census11.


  • Naming conventions for variables now places an underscore between each distinct word (eg onsconst_id is now ons_const_id).

parlitools 0.1.0

  • Changes to vignettes to comply with CRAN policies and to reduce the time needed to check the package.

  • Reduction in the number of similar vignette examples to reduce build time.


  • Updating of council_data dataset to be accurate as of 2017-07-14.

  • New ge_2017 dataset, with results of 2017 General Election, linked with constituency data from bes_2015.

Bug fixes

  • Consistent naming of vote variables in bes_2015.

parlitools 0.0.7

  • Updated documentation, more comprehensive testing. Added Northern Irish EU Referendum results to the leave_votes_west dataset.

parlitools 0.0.6

Bug fixes

  • Fixed bugs in mps_on_date() that were causing problems on Windows.

parlitools 0.0.5

Data updates

  • Added leave_votes_west containing estimates and - where available - official counts of the proportion of leave votes in the 2016 EU referendum.

parlitools 0.0.4

Data updates

  • Updated bes_2015 to use V2.21 from the British Election Study.

  • Added council_data dataset, with details on the parties controlling local councils across the UK.

Bug Fixes

  • A few minor tweaks to internal code, and to the vignette examples.

parlitools 0.0.3

Bug Fixes

  • Fixed bug in mps_on_date where function did not return constituency data. mps_on_date also now accepts dates in any format or class that can be converted with as.Date() to a date format.

  • Fixed names party names in party_colour to align with names used in bes_2015.

  • Fixed spelling mistakes in Endiburgh constituency names in bes_2015.

New Features

  • Added optional tidy_style parameter in current_mps() and mps_on_date(), allowing users to decide which style snake_case, camelCase and they want variable names to be in, if 'tidy'==TRUE.

parlitools 0.0.2

  • Added an additional vignette on using the data in parlitools to create scaled maps with the cartogram package.


  • Now includes local_hex_map, a hexagonal map of all local authority areas in Scotland, Wales and England.

Data Retrieval

  • The mps_on_date function downloads information on every MP and their constituency who was a member of the house on a single given date, or between two given dates.

parlitools 0.0.1

Introducing parlitools

  • Introducing parlitools, a package for retrieving and analysing UK political data. The package includes datasets from the British Election Study, a hexagonal map of all UK constituencies, and party colour hex codes.


  • The package includes a dataset with 2015 General Election results and census information for each constituency in Scotland, Wales and England, taken from the British Election Study.

  • The package also includes a dataset (party_colours) with the hex code for the official colours of UK political parties.


  • Includes a hexagonal map (west_hex_map) of all 650 constituencies in the UK.

Data Retrieval

  • The current_mps function downloads information on every sitting MP and their constituency.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.