Westminster By-Elections
Results and model signal — 2024–present Parliament
5 by-elections held since July 2024. 2 Labour losses.
Makerfield
Lab–Reform marginal · Thursday 18 June 2026 — triggered by Josh Simons' resignation to clear Andy Burnham's path back to Westminster. Fourteen candidates; effectively a two-horse race.
The left is consolidated behind Burnham; the right is split. Whether Reform squeezes Restore’s vote decides the seat.
Aberdeen South
SNP–Con three-way marginal · Thursday 18 June 2026 — triggered by Stephen Flynn's resignation. A genuine three-way at the top: the SNP starts narrow favourite, but a by-election protest against the SNP government and unionist consolidation behind the Conservatives make this genuinely competitive — the Conservatives are a live threat.
The unionist vote is split between Conservative and Reform. Whether Reform's vote consolidates behind the Conservatives — strongest in the Deeside wards — decides whether the SNP holds.
Arbroath and Broughty Ferry
Safe SNP hold; Reform–Labour fight for second · Thursday 18 June 2026 — triggered by Stephen Gethins' resignation. A safe SNP hold on every read; the live questions are the size of the majority and whether Reform or a collapsed Labour finishes second.
The SNP holds comfortably on every read. The real contest is for second place: Reform (71.8%) versus a collapsed Labour (14.8%).
Probability of finishing second (the seat itself is not in doubt).
What the by-elections tell us
Five by-elections have been held since the 2024 general election, and they no longer tell one story. The first two — Runcorn & Helsby (Reform gain from Labour by 6 votes) and Gorton & Denton (Green gain from Labour) — followed abnormal triggers and showed Labour squeezed from both flanks at once. The three contests on 18 June 2026 followed routine vacancies and broke the pattern: Labour held Makerfield comfortably (54.8% to Reform’s 34.5%), the SNP held Arbroath & Broughty Ferry, and the Conservatives — under 8% in every North-West England by-election this parliament — took Aberdeen South from the SNP on 49.5% of the vote.
We froze forecasts for the June contests in advance and scored them against the declared results. Two winners were called correctly; Aberdeen South was missed outright — we had the SNP at 65% to hold a seat the Conservatives won by 20.9 points. The June errors share a direction: we understated Conservative support in all three contests and overstated Reform in all three.
No direct by-election adjustment is applied to the GE forecast — the 0.08-weight swing signal was retired at v2.4. Results now enter the model as out-of-sample tests, frozen in advance and scored in our calibration ledger.
Makerfield
18 June 2026 · North West
Labour hold — majority 9,241 (20.3%)
Result
| Party | By-election | Votes |
|---|---|---|
| Lab | 54.8% | 24,937 |
| Reform | 34.5% | 15,696 |
| Restore | 6.8% | 3,111 |
| Con | 2.2% | 997 |
| Green | 0.7% | 308 |
| Lib Dem | 0.4% | 163 |
Context
Lab hold. Per-party detail in by_election_result_parties. Source: Makerfield count declaration 2026-06-18.
Aberdeen South
18 June 2026 · Scotland
Conservative gain from SNP — majority 6,050 (20.9%)
Result
| Party | By-election | Votes |
|---|---|---|
| Con | 49.5% | 14,308 |
| SNP | 28.6% | 8,258 |
| Reform | 8.6% | 2,478 |
| Lab | 5.4% | 1,550 |
| Lib Dem | 4.4% | 1,270 |
| Green | 3.4% | 974 |
Context
Con gain from SNP. Per-party detail in by_election_result_parties. Source: Aberdeen City Council declaration 2026-06-18.
Arbroath and Broughty Ferry
18 June 2026 · Scotland
Scottish National Party hold — majority 5,278 (22.1%)
Result
| Party | By-election | Votes |
|---|---|---|
| SNP | 41.1% | 9,802 |
| Con | 19.0% | 4,524 |
| Reform | 18.2% | 4,341 |
| Lab | 15.3% | 3,651 |
| Lib Dem | 6.1% | 1,452 |
Context
SNP hold. Majority 5278 = SNP 9802 minus Con 4524 (council); supplied 5178 rejected as derived from bad Con=4624 (Con-Reform gap of 183 confirms 4524). Source: Angus Council declaration 2026-06-18.
Gorton and Denton
26 February 2026 · North West · metropolitan
Green Party gain from Labour — majority 4,402 (12.0%)
Result
| Party | By-election | 2024 GE | Swing |
|---|---|---|---|
| Green | 40.7% | 13.2% | +27.5pp |
| Reform | 28.7% | 14.0% | +14.7pp |
| Labour | 25.4% | 50.8% | -25.4pp |
| Conservative | 1.9% | 7.9% | -6.0pp |
| Lib Dem | 1.8% | 3.9% | -2.1pp |
Context
Andrew Gwynne (sitting as Independent after Lab suspension for antisemitic WhatsApp messages) resigned on health grounds 22 January 2026
Green Party's first Westminster by-election win and first MP in the North. Labour collapsed -25pp. Three-way tactical voting: Forward Democracy, TacticalVote.co.uk all endorsed Greens to stop Reform. Reform strong second on 28.7% (+14.7pp). Con wiped out (7.9% to 1.9%). Highly abnormal seat: large Muslim community, Manchester urban, student areas -- not representative of Lab marginals. Trigger was Labour-suspended MP, further reducing signal quality. Polanski Green leadership (elected Sep 2025) appears to be driving membership and vote surge. Weight: 0.5.
Model Signal
Why discounted: Abnormal trigger (resignation). Result inflated by protest effects specific to the by-election context.
This swing signal was retired in the v2.4 reconciliation — it fed only one of the model’s two calculation paths, creating an artificial gap between them — and contributes nothing to the current GE forecast. Shown for transparency.
Runcorn and Helsby
1 May 2025 · North West · unitary
Reform UK gain from Labour — majority 6 (0.0%)
Result
| Party | By-election | 2024 GE | Swing |
|---|---|---|---|
| Reform | 38.7% | 18.1% | +20.6pp |
| Labour | 38.7% | 53.0% | -14.3pp |
| Conservative | 7.2% | 16.0% | -8.8pp |
| Green | 7.1% | 6.4% | +0.7pp |
| Lib Dem | 2.9% | 5.1% | -2.2pp |
Context
Mike Amesbury (Lab) convicted of assault, sentenced to 10 weeks prison (suspended), resigned 17 March 2025
Reform's first Westminster by-election win. Six-vote majority. Con collapsed from 16% to 7%, split between Reform and potential Lab tactical voters. Lab vote held better than feared (~53% to 38%). Seat won by scandal effect (Labour MP convicted) + national anti-government swing. Abnormal trigger: weight reduced to 0.6.
Model Signal
Why discounted: Abnormal trigger (misconduct). Result inflated by protest effects specific to the by-election context.
This swing signal was retired in the v2.4 reconciliation — it fed only one of the model’s two calculation paths, creating an artificial gap between them — and contributes nothing to the current GE forecast. Shown for transparency.
Historical Context
By-elections are an imperfect signal for general elections. Turnout is lower (31–59% here vs ~60% at GEs), protest voting is stronger, and tactical voting is often explicitly coordinated. An earlier version of the model nudged national vote shares using by-election swings at a 0.08 weight; that signal was retired in the v2.4 reconciliation and no direct adjustment is currently applied. The relationship now runs the other way: each contest gets a forecast frozen before polling day and scored against the declared result. Our calibration work on 2019-parliament by-elections supports this caution — challenger surges do not transfer to general elections; the only component with out-of-sample support is governing-party underperformance.
| Makerfield | Aberdeen | Arbroath | Gorton | Runcorn | GE average | |
|---|---|---|---|---|---|---|
| Turnout | 58.8% | 37.4% | 31.4% | 47.5% | 46.2% | ~60% |
| Con vote share | 2.2% | 49.5% | 19.0% | 1.9% | 7.2% | ~17% |
| Lab-Reform gap | +20.3pp | -3.2pp | -2.9pp | -3.3pp | 0.0pp | ~-3pp |
An earlier version of this note called the Conservative vote share “the starkest illustration of by-election squeeze”. Aberdeen South ended that generalisation: where the Conservatives began as the credible local challenger they polled 49.5%. The squeeze is a function of local competitiveness, not a universal by-election law.