Navigation menu

Documentation

Methodology

How this site ingests the UK MPs’ Register of Interests, normalises records, and tracks changes over time.

New to the register? Read our guide to what the Register of Members' Financial Interests is.

What we show (and don’t)

This site is designed to present declarations clearly, with strong provenance, and without speculation.

What we do
Fact-only presentation
We display what is declared in the Register. We do not infer wrongdoing, motivation, or relationships beyond what is explicitly stated.
Provenance everywhere
Every record links to a specific register update (publication date).
Change over time is the core insight
We track additions, edits, and removals between register updates so you can see when changes occurred.
What we don’t do
No
We do not calculate MPs’ net worth or total wealth.
No
We do not attempt to infer conflicts of interest.
No
We do not enrich with private datasets.

Data flow

A simple overview of how raw register data becomes searchable records with provenance.

1
Ingest
Fetch the latest register source snapshot and store it as a versioned Register Update.
2
Preserve raw
Store raw records and original text so outputs can be audited later.
3
Parse
Extract structured fields (dates, values, contributors, locations) using deterministic parsers.
4
Normalise
Map records into consistent interest types and standard fields across register formats.
5
Resolve entities
Attempt to match contributor names to a canonical Contributor entity.
6
Diff
Compare parsed records between register updates to generate a change log (added/updated/removed).
7
Serve
Expose Members, Contributors, Interests, and Register Updates.

Change tracking

The register is published in discrete releases. We preserve each release as a version boundary and compute diffs.

Each register publication is stored as a Register Update. We compute diffs by comparing stable keys derived from the raw text, member, and category.
Added
Added
New disclosure appears in the latest update.
Updated
Updated
Same disclosure exists but fields or text changed.
Removed
Removed
Disclosure was present previously but no longer appears.

Party tenure attribution

How declared interests are assigned to a party when totals are aggregated at party level.

An interest is counted for the party the MP belonged to when it was registered, not their current party. If a member defected or changed affiliation, interests declared under each party are attributed to that party alone.

Technically: for each party we identify every tenure window from membership history — the period during which each MP sat for that party. An interest falls within a window when its registration date (or, if absent, its published date) lies between the window's start and end dates. Only those interests contribute to the party's totals.

This means a donation declared in 2018 while sitting as Labour cannot be re-attributed to the Liberal Democrats because the member later defected. Totals on party pages always reflect declarations made during active tenure with that party.

Limitations & caveats

Important context for interpreting what you see.

The Register is not perfectly structured
Many entries are free text. Some values are ranges or unknown; we preserve what’s written and only normalise where safe.
Entity resolution is best-effort
Different spellings or subsidiaries may appear as separate contributors until resolved. We avoid aggressive merging to prevent false matches.
‘Total declared value’ is not wealth
Summed values represent declared items in the Register, not net worth or comprehensive income.
Timing
Entries can be reported after an event. ‘Published’ date reflects the register update, not necessarily when the activity occurred.

FAQ

Common questions about data source, parsing, and interpretation.

Contact

Found an issue, have feedback, or want to suggest improvements?