What this is
Cite the Record indexes UK Parliament public records. See /coverage for the current source families and coverage boundary. The service does not produce analysis. It surfaces what was said and recorded, with a verifiable chain back to where it came from.
The aim is to make source-linked civic data easier to find and cite without overstating what the current coverage contains.
How records are collected
Records are fetched from the same APIs published by UK Parliament — the Members API, Questions and Statements API, Hansard API, Bills API, and others. Each fetch is recorded as a source_fetch_event with timestamp, request URL, response status, and parser version. The raw response payload is retained either inline or as a pointer into a SHA-256-keyed evidence object store.
Every parsed row in the database carries source_fetch_event_id and source_evidence_id columns, so any record on this site can be traced back to the exact bytes the parser saw. The current coverage boundary and source families are listed on /coverage.
The provenance contract
Every visible fact on this site is required to carry, at minimum:
- Source URL — the official Parliament endpoint the record came from
- Evidence hash (SHA-256) — a digest of the source payload, provable against retained bytes
- Fetch metadata — when the data was retrieved and by which parser version
- Change events — if the record was later corrected or withdrawn, the change event with reason
On supported record pages, [ CITE ] copies a source-linked citation with the available retrieval metadata. The contract exists so someone repeating a claim can answer “where did you get that?” by returning to the official source.
The neutrality policy
The platform surfaces counts of recorded actions. The methodology aside on every card defers here for what those counts can and cannot tell you.
What the counts are. Each count is a tabulation against the official source data. A "63" on Geographic Linkage means 63 records in the index named a place from the gazetteer. A "39" on Asked / Answered / Mentioned means 39 records where the subject appears in that role. Counts are facts of how the records are tagged — not claims about what an MP did beyond appearing in them.
What the counts are not. The platform does not infer intent, influence, impact, sentiment, alignment, rebellion, loyalty, conflict, or political meaning. The component library cannot emit those words — they're not in the build. A vote does not become a "rebellion" against a whip the platform doesn't know about. A co-occurrence does not become an "alliance". A frequency does not become "advocacy". A mention does not become "influence".
The role vocabulary. Role labels are limited to source-grounded language: asked, answered, spoke, voted (aye / no / abstained), named, delivered by, witness, addressed department. These come straight from the structure of the official records. A record can carry several roles (a written question has both an asker and an answerer); each card's denominator chip discloses which universe its count partitions.
What this means when you cite a count. A citation from cite-the-record defends: "the official record contains N rows matching the platform's published criteria, with the SHA-256 of each row's source bytes verifiable against the upstream Parliament APIs". It doesn't defend "the platform says MP X is Y" — the platform doesn't say anything about MPs beyond their recorded actions.
Where this doesn't apply. Topic-page descriptions are auto-generated by an LLM under prompt rules, then reviewed by the maintainer before going live. The provenance line on every topic page discloses the model, the generation date, and the last reviewer-approval date. That's the one editorial surface; everything else is structurally counted.
What's not included
The site does not provide, and will not provide:
- Influence scores, sentiment scores, or any algorithmic rating of MPs, parties, or actors
- "Suspicious pattern" claims, conflict-of-interest implications, or lobbying recommendations
- Partisan framing, political conclusions, or editorial analysis
- AI may phrase a search query; ranked results and source-linked records remain deterministic and cited
- User accounts, profiles, personalisation, or paid tiers
Known gaps
At v1 launch, coverage is bounded to the current UK Parliament. The 58th Parliament (2019–2024) is the next historical checkpoint. Earlier Parliaments are not included without an explicit decision. Records before the modern Parliament APIs were available are out of scope until the operator commits time to historical backfill from archived sources.
Devolved legislatures (Scottish Parliament, Senedd Cymru, Northern Ireland Assembly) are not yet ingested — see /coverage for the roadmap. Committee report bodies, lobbying register data, and government department publications are partially covered or planned.
When a source upstream changes a record (correction, withdrawal), the platform records the change event but does not retroactively delete the old version from its provenance store. A record we no longer serve shows a short notice saying so.
Who maintains this
Cite the Record is maintained by Joe Bower, an IAM engineer.
Implementation is shared between the maintainer, a Codex agent that handles intake-pipeline work under a defined remediation contract, and a Claude agent that holds the UI design and reviewer role. Reviewer separation is enforced by contract — no agent reviews its own work.
How to report an issue or suggest a source
To report missing data, an incorrectly classified record or a poorly worded description, or to suggest another source family, email feedback@bower.im. Include the record's stable ID and a link to the official source where applicable.
For AI use, see /use-with-ai-assistants for the live search-and-record workflow and the clearly labelled, not-yet-deployed direct connection.
For the technical architecture behind the site — location search, OCR, LLM-assisted intake, evidence storage, the geoparser, the video recorder — see /architecture. Aimed at civic-tech peers who want to see whether this is a real architecture or a pretty front-end over an LLM.