Methodology
This page describes how the site actually works in the current codebase: where official data comes from, how your answers are stored, and how AI-simulated stances are produced and labelled.
MP, culture-warrior, and historic-figure positions on questions are AI-simulated estimates. They are not official statements unless a page clearly shows a sourced official record. The model is prompted to consider public material; it can still be wrong, outdated, or over-confident.
Questions and answer options
Questions are editorial records stored in this site’s database. They are not pulled from a live government questionnaire API.
Each question has a short set of canonical multiple-choice options (typically three to six). Those option texts are generated with an OpenAI chat model using a fixed site prompt, then saved as answer rows that anyone can choose from. The prompt asks for a spread of positions (support, oppose, mixed/conditional, and unsure) rather than a single “correct” line.
Some questions also have derived labels (for example left–right or sentiment scores) produced later by a separate AI metadata job. Those labels are interpretive extras, not official classifications.
Your answers
Signed-in users can pick one canonical option per question. That choice is stored against the account so you can compare yourself with modelled stances and see aggregate counts. Saving an answer normally requires a verified email address (the link sent at registration, or a Google sign-in that supplies a verified email).
Guests can still browse questions, MP pages, and simulated stances. The Quick Answer feed is aimed at signed-in users who want to work through unanswered questions quickly.
Your answers are your own selections. The site does not treat them as a poll of the country and does not submit them to any official body.
AI-simulated stances
For each question, the site can store one chosen option plus a confidence score (0–100) for:
- sitting MPs (and other politicians in the database)
- a curated “culture warriors” list of commentators and public voices
- a curated list of historic figures
Those rows are produced by large language models — mainly Google Gemini for stance assignment, with OpenAI also used in older and admin batch flows. The stance prompt asks the model to map the named person onto the same multiple-choice options, using public material it is told to consider (for MPs: Hansard, Commons votes, party policy, interviews, and reputable UK news). If evidence looks thin, the prompt tells the model to infer more cautiously from party and role and to lower confidence.
The site’s AI layer can optionally enable Gemini’s Google Search tool, but stance jobs keep that off by default so the model returns structured JSON rather than free prose. In the default path, the model is working from its training knowledge and the prompt, not from a live scrape of Hansard or a votes API.
Culture-warrior and historic-figure lists are editorial. They are not an official dataset. Some culture-warrior rows can be linked to an existing MP or historic-figure record when they are the same person; their question stances are still stored as modelled answers.
On the site these positions are labelled as AI-simulated. They should be read as estimates for comparison, not as quotes.
Evidence and confidence
After a stance is saved, the site can attach an evidence trail:
- Initial inference — Gemini’s reasoning for the first modelled answer, stored as site evidence (not a third-party document).
- Later discovery — separate jobs ask the model to look for public-record notes that support or contradict the recorded option. Findings are labelled with a source type such as Hansard, news, vote, or Gemini search. Those labels are the model’s classification of what it found, not proof that the site has a direct Hansard or division-list API integration.
- Confidence adjustments — supporting or contradicting findings can raise or lower the stored confidence score. Strong contradiction can put a stance on a recheck queue so a later job can re-assign the option.
The public evidence feed may show a curated subset of those events. Empty or thin evidence means the stance is still a model estimate.
Parliament and constituency data
Member and seat data is synced from the
UK Parliament Members API
(members-api.parliament.uk): current House of Commons members,
constituencies, and related seat fields. Constituency pages also persist
the sitting MP and the 2024 general election result from that API into
this site’s database so pages still load if the upstream API is down.
Constituency demographics come from ONS Census 2021 open data via the NOMIS API, bundled in the repository and loaded into the database at deploy time. That bundle covers England and Wales Westminster constituencies (July 2024 geography). The live site does not call NOMIS on each page view. Scotland and Northern Ireland run separate censuses, so those seats are not in this demographics file.
Some constituency pages also show an illustrative uniform-national-swing projection from an editable national polling average stored in the app. That projection is not a live poll, not MRP, and not an official forecast. The in-code polling snapshot is marked illustrative and can lag real-world polling.
This site does not invent a TheyWorkForYou, Companies House, or Electoral Commission results API. If a page does not cite one of the sources above, treat it as site-generated or AI-generated content.
Limits and official sources
- AI stances can misread a person, confuse them with a predecessor, or miss a later vote or interview.
- Confidence scores are model-assigned numbers, not statistical margins of error.
- The site does not tell you how to vote and does not declare election results.
- Canonical answer options are AI-drafted summaries of a debate, not official ballot text.
For voting, elections, and formal results, use The Electoral Commission, your local authority / returning officer, and Parliament. For an MP’s own words, prefer Hansard, recorded divisions, and the member’s official communications over anything this site simulates.