Skip to content
UK Politics Decoded · GitHub data repo · Documentation · Crime & Justice Tracker

UK MP Lookup

Voting records, committee work and parliamentary activity for every UK MP, built on open data from Parliament.

Home MPs Constituencies Committees Parties About the data
Home / About the data

About the data & methodology

Every number on this site is read from a pre-built open dataset. No visitor request ever calls Parliament, Hansard or any other API.

Where the data comes from

  • Parliament Members API
  • Parliament Committees API
  • Commons Votes API
  • Hansard API
  • Written Questions / Statements API
  • Oral Questions and Motions API
  • Bills API
  • ONS Open Geography Portal
  • Postcodes.io

The extraction service pulls these sources on a schedule, validates them, and publishes plain JSON to GitHub. This site keeps a local mirror of that repository and renders it on the server, so pages are fast and fully readable by search engines and AI tools.

Current dataset generated 7 November 2026, covering 7 November 2019 to 7 November 2026.

How the statistics are calculated

  • Voting participation = divisions voted in ÷ Commons divisions the MP was eligible for (held while they were an MP), as a percentage. Aye, no and teller all count as votes. Absence is not necessarily non-attendance: MPs can be paired, ill, on parental leave, or serving as Speaker or Deputy Speaker.
  • Committee attendance = formal meetings attended ÷ meetings for which Parliament published an attendance list while the MP held a (non-alternate) role. Meetings without a published list are excluded.
  • Debate contributions are spoken contributions recorded in Hansard; debates participated counts distinct debates.
  • Written and oral questions, early day motions, bills sponsored and petitions presented come from the corresponding Parliament APIs. Petitions are inferred from Hansard petition debate sections.
  • Rank and averages compare an MP with the other sitting MPs who have a value for the measure. Rankings are a way to see context, not a measure of how good an MP is.
  • All figures cover a rolling seven year window. Earlier history is not included.

Known limitations

  • Postcodes are published at outcode level; full-postcode resolution needs one Postcodes.io call for outcodes spanning several constituencies.
  • Petitions presented are inferred from Hansard petition debate sections.
  • Committee attendance exists only for meetings where Parliament publishes attendance.
  • Election information comes from the Parliament Members API (the Electoral Commission API exposes polling stations/ballots only).
  • Postcodes are matched at outcode level (for example HU5). Where an outcode spans several constituencies we show all of them; use Find Your MP to confirm a full postcode.
  • MP websites, social media links and previous occupations are not yet in the dataset, so they are not shown.
  • Hansard topics and individual contribution text are not yet in the dataset; we link to Hansard instead.
  • Former MPs are included only if they served within the window.

Reuse the data

The dataset is free to use. Start with mps/index.json, postcodes/postcode_constituencies.json and meta.json in the repository. Please credit “UK Politics Decoded” and the underlying sources.

Source data: UKPoliticsDecoded/MP-Lookup-Parliamentary-Activity (raw JSON), generated from UK Parliament open data and ONS boundaries. Dataset updated 7 November 2026.

Contains Parliamentary information licensed under the Open Parliament Licence v3.0. Boundary data contains public sector information licensed under the Open Government Licence v3.0 (ONS). This is derived data and not an official Parliament product.

UK Politics Decoded · Methodology & limitations · Sitemap · llms.txt