What this pack is
2 contests, 649 people, 156 poll response rows, 4,515 result rows and 9,677 money edges, built 2026-09-03.
The cycle phase shown on every contest is computed from the election date and how well that date is known. The corpus carries its own status column; it disagrees with the derived phase on 20 of the 61 contests across all twenty-two countries, so it is carried through but never read.
Money rows and result rows are held off the site at their full grain: the staged corpus is 156 MB. What is published here is the aggregate computed once at build time, and every aggregate states the number of rows it stands for.
Everything known to be wrong or limited
licence · grain · method
- vote_share in this pack is a FRACTION of 1 (largest observed 0.743081), not a percentage. India and Nigeria file percentages; the rest file fractions.
The pack's own record
every URL fetched, every inclusion and exclusion
SOURCES.md
# United Kingdom elections pack — sources
Pack date: 2026-09-03. ISO3=`gbr`. No Wikipedia `sourceUrl`. Amounts, poll percentages and bios not invented.
## Elections / statute
- Last general election **2024-07-04** (confirmed). Electoral Commission past elections: https://www.electoralcommission.org.uk/voting-and-elections/past-elections-and-referendums
- Next GE **not called**. `election_date=2029-08-15` is the statutory latest polling day, `date_confidence=constitutional_due`, `cycle_status=polling`.
- Dissolution and Calling of Parliament Act 2022 s.4 (automatic dissolution on the fifth anniversary of the day Parliament first met): https://www.legislation.gov.uk/ukpga/2022/11/section/4
- This Parliament first met **9 July 2024** → automatic dissolution **9 July 2029**; polling day is the 25th working day after dissolution ≈ **15 August 2029**. Institute for Government explainer (secondary confirmation): https://www.instituteforgovernment.org.uk/explainer/calling-general-election
- BBC explainer (secondary): https://www.bbc.co.uk/news/articles/cvg0dzrw5rno
- Electoral body: The Electoral Commission — https://www.electoralcommission.org.uk/
## People (sitting Commons)
- UK Parliament Members API (keyless JSON): `GET https://members-api.parliament.uk/api/Members/Search?House=Commons&IsCurrentMember=true&skip=&take=20`
- `totalResults=649` on 2026-09-03. `person_id` = official Members API numeric id.
- Portrait: `https://members-api.parliament.uk/api/Members/{id}/Thumbnail`
- Official page: `https://members.parliament.uk/member/{id}`
- Licence: [Open Parliament Licence v3.0](https://www.parliament.uk/site-information/copyright-parliament/open-parliament-licence/)
- `bio_text` left empty (synopsis not bulk-fetched; do not invent).
- No official candidate list for the uncalled next GE — incumbents only, attached to `gbr-hoc-2024`.
## Money
- Electoral Commission Political Finance Online **search API is keyless and returns JSON** (probed 2026-09-03).
- Endpoint used: `https://search.electoralcommission.org.uk/api/search/Donations` with `et=pp` (political party) and `et=rd` (regulated donee), `date=Reported`, `from=2024-07-04`, `to=2026-09-03`, GB+NI registers, Q1–Q4, `rows=50` (server caps page size at 50), `start` pagination.
- API `Total` = 9677; rows written = 9677.
- Amounts kept in **GBP as filed**. `edge_type`: `donation` | `public_funds` (DonationType=Public Funds) | `refund` (DonationAction=Returned).
- `person_id` blank. EC records do not carry a Parliament member id. Schema forbids name fuzzy-match onto the roster.
- UI: https://search.electoralcommission.org.uk/Search
- Licence: [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/) (Electoral Commission published register).
- Older PEF Online login portal (`pefonline.electoralcommission.org.uk`) is not the public JSON search; the public search API worked without a key.
## Polls (polling-first; 2025–2026 published tables)
Not Wikipedia. Toplines from pollster pages / their linked results PDFs.
### YouGov (Times / Sky News Westminster VI)
Results PDFs on `ygo-assets-websites-editorial-emea.yougov.net`. Sample sizes from those PDFs.
| poll_id | Fieldwork | n | Article |
|---|---|---|---|
| yg-2026-08-31 | 31 Aug–1 Sep 2026 (article titled 30–31 Aug) | 2244 | https://yougov.com/en-gb/articles/55475-voting-intention-30-31-august-2026-lab-23-ref-23-con-20-grn-13-ld-12 |
| yg-2026-08-23 | 23–24 Aug 2026 | 2380 | https://yougov.com/en-gb/articles/55427-voting-intention-23-24-august-2026-ref-23-lab-22-con-20-grn-13-ld-13 |
| yg-2026-08-16 | 16–17 Aug 2026 | 2441 | https://yougov.com/en-gb/articles/55381-voting-intention-16-17-august-2026-ref-24-lab-22-con-19-grn-13-ld-12 |
| yg-2026-08-09 | 9–10 Aug 2026 | 2417 | https://yougov.com/en-gb/articles/55331-voting-intention-9-10-august-2026-lab-24-ref-22-con-21-grn-12-ld-11 |
| yg-2026-08-02 | 2–3 Aug 2026 | 2300 | https://yougov.com/en-gb/articles/55293-voting-intention-2-3-august-2026-ref-23-lab-22-con-19-grn-13-ld-12 |
| yg-2026-07-12 | 12–13 Jul 2026 | 2334 | https://yougov.com/en-gb/articles/55167-voting-intention-12-13-july-2026-ref-24-con-19-lab-19-grn-15-ld-13 |
| yg-2026-07-05 | 5–6 Jul 2026 | 2285 | https://yougov.com/en-gb/articles/55116-voting-intention-5-6-july-2026-ref-25-con-21-lab-20-grn-13-ld-12 |
PDF examples: `VotingIntention_MRP_Results_260901_w.pdf`, `_260824_fw.pdf`, `_260817_w.pdf`, `_260810_w.pdf`, `_260803_w.pdf`, `_260713_w.pdf`, `_260706_w.pdf`.
### Ipsos Political Monitor (UK KnowledgePanel)
| poll_id | Fieldwork | n | Page |
|---|---|---|---|
| ipsos-2026-07-30 | 30 Jul–4 Aug 2026 | 1033 | https://www.ipsos.com/en-uk/labour-leads-reform-uk-three-points |
| ipsos-2026-06-25 | 25–30 Jun 2026 | 1045 | https://www.ipsos.com/en-uk/reform-uk-holds-slim-voting-intention-lead-over-labour-andy-burnham-preferred-pm-nigel-farage-and |
| ipsos-2026-05-14 | 14–20 May 2026 | 1137 | https://www.ipsos.com/en-uk/reform-hold-7-point-lead-over-labour-ipsos-poll |
| ipsos-2026-04-09 | 9–15 Apr 2026 | 1044 | https://www.ipsos.com/en-uk/reform-hold-6-point-lead-over-labour-and-conservatives |
| ipsos-2026-03-05 | 5–11 Mar 2026 | 1062 | https://www.ipsos.com/en-uk/reform-uk-holds-7-point-lead-over-labour-greens-5-points |
Headline option-rows only where the article published a percentage. Ipsos notes a methodology change since June 2025 (online random-probability KnowledgePanel). Numeric MoE not used (they publish a historical 9-in-10 / ±4 note, not a poll-specific MoE).
### Opinium (Observer)
Each page: “nationally and politically representative survey of 2,050 UK adults”.
| poll_id | Fieldwork | n | Page |
|---|---|---|---|
| opinium-2026-08-12 | 12–14 Aug 2026 | 2050 | https://www.opinium.com/resource-center/voting-intention-12-august-2026/ |
| opinium-2026-08-05 | 5–8 Aug 2026 | 2050 | https://www.opinium.com/resource-center/voting-intention-5-august-2026/ |
| opinium-2026-07-29 | 29–31 Jul 2026 | 2050 | https://www.opinium.com/resource-center/voting-intention-29th-july-2026/ |
| opinium-2026-07-15 | 15–17 Jul 2026 | 2050 | https://www.opinium.com/resource-center/voting-intention-15th-july-2026/ |
| opinium-2026-07-07 | 7–10 Jul 2026 | 2050 | https://www.opinium.com/resource-center/voting-intention-7th-july-2026/ |
### More in Common
Weekly tracker https://www.moreincommon.org.uk/voting-intention-trackers/ last-updated fieldwork **28–31 August 2026** is JS-rendered — **no static percentages extracted**. Used published MRP tables instead:
- Final MRP of Keir Starmer’s premiership (fieldwork 5–28 Jun 2026, n=14,358): https://www.moreincommon.org.uk/research/the-final-mrp-of-keir-starmers-premiership/
- April MRP write-up (fieldwork 1–30 Mar 2026, n=15,482): https://www.moreincommon.org.uk/research/more-in-commons-april-mrp-2/
### Electoral Calculus / Britain Elects
- Find Out Now / Electoral Calculus MRP, 23–30 Jun 2026, n=5,545: https://www.electoralcalculus.co.uk/blogs/ec_vipoll_20260708.html
- Electoral Calculus poll-of-polls Pred Votes table, updated 29 Aug 2026 (polls 30 Jul–28 Aug, sampling 19,780): https://www.electoralcalculus.co.uk/prediction_main.html
- Britain Elects “Who’s ahead in the polls?” https://britainelects.substack.com/p/whos-ahead-in-the-polls — HTML on 2026-09-03 had **no extractable GB topline table** (live tracker / comments). Not used as a percentage source.
## What was not used
- Wikipedia opinion-polling tables.
- PolitPro / PollingPolis / Daily Britain aggregators (discovery only).
- Name-matching EC donees to MPs.
HANDOFF.md
# GBR elections pack handoff
Written 2026-09-03 to `/workspace/elections-ingest/gbr/`.
## Files / counts
| File | Rows (excl. header) | Path |
|---|---|---|
| elections.csv | 2 | /workspace/elections-ingest/gbr/elections.csv |
| people.csv | 649 | /workspace/elections-ingest/gbr/people.csv |
| money-edges.csv | 9677 | /workspace/elections-ingest/gbr/money-edges.csv |
| polls.csv | 156 | /workspace/elections-ingest/gbr/polls.csv |
| SOURCES.md | — | /workspace/elections-ingest/gbr/SOURCES.md |
| STATS.json | — | /workspace/elections-ingest/gbr/STATS.json |
| HANDOFF.md | — | /workspace/elections-ingest/gbr/HANDOFF.md |
## Cycle status (as specified)
- `gbr-hoc-2024` **sitting** — 2024-07-04 GE; current Commons roster.
- `gbr-hoc-next` **polling** — GE not called; statutory latest **2029-08-15** under DaCoP 2022 s.4; `date_confidence=constitutional_due`.
- Product is **polling-first**. Polls attach to `gbr-hoc-next`. People + money attach to `gbr-hoc-2024`.
## Bars
- Current MPs: **649** (API `totalResults=649`; 650 seats ⇒ 1 vacancy). `person_id` = Parliament Members API id.
- Polls: **156 option-rows** from **21 surveys** / orgs ['Electoral Calculus', 'Electoral Calculus / Find Out Now', 'Ipsos', 'More in Common', 'Opinium', 'YouGov'].
- Money: **9677** EC filings 2024-07-04–2026-09-03 (8642 party + 1035 regulated donee in the raw dump). API worked keyless JSON.
## People
Incumbents only. No next-GE candidate list (election uncalled). `bio_text` empty. Photos from Members API thumbnails. Licence OPL-3.0.
Party mix (API `latestParty.name`): {'Labour': 360, 'Labour (Co-op)': 43, 'Independent': 11, 'Traditional Unionist Voice': 1, 'Liberal Democrat': 71, 'Reform UK': 8, 'Conservative': 118, 'Sinn Féin': 7, 'Green Party': 5, 'Scottish National Party': 8, 'Democratic Unionist Party': 5, 'Your Party': 2, 'Plaid Cymru': 4, 'Social Democratic & Labour Party': 2, 'Alliance': 1, 'Speaker': 1, 'Restore Britain': 1, 'Ulster Unionist Party': 1}
## Money
EC search API (`search.electoralcommission.org.uk/api/search/Donations`) returned JSON without a key. Page size capped at 50; full window paginated. GBP as filed. `person_id` left blank (no official-id join). Includes cash / non-cash / visits / public funds / returned items as the register filed them.
## Polls
YouGov, Ipsos, Opinium, More in Common (MRP tables), Electoral Calculus / Find Out Now MRP, plus EC poll-of-polls table. Britain Elects Substack tracker had no static topline — noted, not invented. MIC weekly tracker likewise JS-only. No Wikipedia. `moe` blank unless a poll-specific figure was published (none were).
## Caveats
- 649 ≠ 650: vacancy / ineligible seat — do not invent the missing MP.
- Next GE date is a **latest-possible** statutory date, not a called date.
- YouGov article titles vs PDF fieldwork: 30–31 Aug article’s table is labelled 31 Aug–1 Sep 2026 in the PDF.
- Ipsos Mar page slug still says “Greens up 5 points”; technical note / VI body is 5–11 March 2026.
- EC poll-of-polls is an aggregate, labelled in `question_text` / notes.
## Last-cycle returns
`results.csv` — **4,515** CLEA R18 constituency×party/candidate rows for the **2024** UK lower-chamber election (last of four CLEA years 2015/2017/2019/2024). `election_id=gbr-hoc-2024`. Votes blank where CLEA was `-990`. Cite Kollman et al., ICPSR 39687. Full 21-country file remains `/Users/jess/Cartevoir-elections/elections-intl-master.csv.gz`.
Licences on the rows
- Open Government Licence v3.09,677
- CLEA R18 cite Kollman et al.4,515
- Open Parliament Licence v3.0649
- © YouGov; topline as published70
- © Ipsos; topline as published28
- © Opinium; topline as published25
- © More in Common; table as published16
- © Electoral Calculus / Find Out Now; table as published9
- © Electoral Calculus; table as published8