Sign in

Oliver Skånberg-Tippen

@oskanberg.bsky.social
211 followers 837 following 60 posts

Machine learning engineer, decarbonising the grid 🇩🇰🇬🇧

PostsRepliesMedia
Oliver Skånberg-Tippen @oskanberg.bsky.social · 08/10/2026
The irony is that the newly published essay 'The Right Way' goes to great length to lecture about policies needing to be judged against real-world impact and their unintended consequences, and not naively against intentions.
030
Oliver Skånberg-Tippen @oskanberg.bsky.social · 28/09/2026
I see a few regions with Ref on dead zero. Is this because it was calibrated to a baseline where there was no Ref candidate?
100
Reposted by Oliver Skånberg-Tippen
Ben Zaranko @benzaranko.bsky.social · 09/09/2026
Decided that this point is sufficiently important to deserve a chart
1105
Oliver Skånberg-Tippen @oskanberg.bsky.social · 07/09/2026
GB Energy?
101
Oliver Skånberg-Tippen @oskanberg.bsky.social · 07/08/2026
They do! NESO 2025 balancing report says they saved ~£700m with trading actions over two years. I think the real problem is that the specific plants that are dispatched are effective monopolies (and they know it). Calling them earlier to buy power ahead of time won't move their offers.
001
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Conservative recovery is certainly the story in recent weeks. But focusing only on party->party crosstabs hides the most significant change: to/from undecided voters. Most of the loss from Reform since their peak has been to non-voters, not to Con
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Estimated voting intention movement to/from Reform, since the 2024 GE
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
This chart shows the estimated net voting intention change to/from Labour. Gorton & Denton campaign period saw a large national swing to Green that 'hid' gains from LD progressives. That Green swing started reversing around the Makerfield campaign period.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Absolutely, a distinctive loss in phases first to the right and then to the left. Neither loss is really balanced by gains from the other side, so it is mostly a masterclass in pleasing nobody.
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Estimated voting intention moves to/from Labour since the 2024 GE
100
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
About half to Lab, half to "don't know"/"would not vote" bsky.app/profile/oska...
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Approximately half are leaving for Labour. The next significant group is reporting "don't know"/"would not vote" bsky.app/profile/oska...
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 25/07/2026
Estimated voting intention movement to/from Green party, since the 2024 GE
000
Reposted by Oliver Skånberg-Tippen
Ben Zaranko @benzaranko.bsky.social · 23/07/2026
This is an amazing chart - but it shows *relative* inequality. Because wealth has grown from 3.5 to 7 times annual GDP since 1991, the *absolute* wealth gaps are wider, and stagnant wages mean it's harder to earn your way up the ladder. So beneath the surface, still cause for concern.
22917
Oliver Skånberg-Tippen @oskanberg.bsky.social · 19/06/2026
Unfortunately the methodology requires a lot of simultaneous & comparable ward elections. Without that, inferring the vote flows from aggregate data is not possible. Will need to wait for polls!
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 15/06/2026
Is there a way to register for the event?
100
Oliver Skånberg-Tippen @oskanberg.bsky.social · 17/05/2026
No, afraid not. This is just based on vote aggregates
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 13/05/2026
Write up is here: oskanberg.github.io/2026-voter-f...
020
Oliver Skånberg-Tippen @oskanberg.bsky.social · 13/05/2026
I didn't include it because the write up was getting too long, but yeah I did also find that pro-Reform 2026 wards show systematically higher turnout growth. Lowest quartile (of Ref support) +5.9pp turnout, highest support +12.6pp turnout.
020
Oliver Skånberg-Tippen @oskanberg.bsky.social · 13/05/2026
Can confirm, there are no wards with more than 2 seats up in both 2024 and 2026. In fact, only 2 with 2 seats - the rest (517) are single seat wards.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 13/05/2026
Absolutely agree, these dynamics are obfuscated by the naive per-candidate normalisation. That the headline results are broadly consistent with/without those wards suggests that the effect is probably in the details (which we should not be reading much into, given the other modelling assumptions)
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
The document refers to a version where the ward filters are relaxed, so doesn't have that same seat # filter. Happy to check tomorrow if that earlier version did have any wards with 3 or more seats on the ballot.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
To answer directly: this case would be excluded in my first analysis (produced the original chart). Have since switched to an adaptation that divides party vote share by # candidates - v simplistic but found it didn't influence the results significantly, and grants many more usable wards
100
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
Write up: oskanberg.github.io/2026-voter-f...
oskanberg.github.io
Context
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
Write up here: oskanberg.github.io/2026-voter-f...
oskanberg.github.io
Context
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
Write up here: oskanberg.github.io/2026-voter-f...
oskanberg.github.io
Context
061
Oliver Skånberg-Tippen @oskanberg.bsky.social · 12/05/2026
I wrote up my approach, and included some further refinement here: oskanberg.github.io/2026-voter-f... Here's another Sankey diagram for all you chart nerds. I prefer this one because it is less confounded by the lack of Ref 2024 candidates.
Sankey diagram titled 'Voter flows, 2024 intent -> 2026 vote'
180
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Yes, significantly
120
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
It is comparing 2024 local elections with 2026 local elections - no GE votes included
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Yeah this is a fair point. The ward-level regression (in another comment) agrees that it's over-attributing to DNV - suggests right share is more like 40% mobilisation, 60% switching (not 65/35 as implied in the Sankey). DNV→Ref should probably be 7-8%, not 12%. Will update later.
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Also, no need for an apology, I like the critique. The model is very hand-wavy and any particular numbers should be taken with a huge amount of salt. My main point in the original post was "it is plausible that 'new' voters explain more than party-party swing, let's talk about that"
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Con->Ref doesn't rise in low-turnout wards, and DNV->Ref doesn't vary across turnout. Model already accounts for candidate availability. DNV→Ref % seems very stable across every stratification I've run.
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Agree on inflow, modelling limitation. But a lot is turnout arithmetic from low baseline: +9pp turnout is larger than lab/con 2024. If DNV->Ref off by x3 that would imply ~30% defection from all to Ref or Con->Ref 50%? Regression shows (0.5pp slope) ref correlation with turnout (not Con share)
020
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
on the second point: this is based on the comparable subset of wards that voted in both 2024 and 2026
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
But also: yes, heroic assumptions! Didn't expect this to be popular, so I'll post more details later, assumptions included.
000
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Honoured that anyone is thinking about my analysis so critically 🙂 some thoughts: - LE DNV pool is almost twice as large as GE data, so denominator is different in BES. Taken into account, it's more like 2x - Ref were not standing in the vast majority of wards in 2024
210
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Derived from turnout estimates that are reported with the results
040
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
No outliers removed. This is based on all wards that: - voted in both years - weren't by-elections in either year - had the same number of seats up in both years - reported turnout in both years
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
The chart above includes wards with boundary changes, so that likely feeds into the results. However, I did an ablation study and found that the effect sizes of including/excluding those wards is very small - on the order 1-2% on each voter flow
010
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
The chart shows an _estimate_ of voter flows, based on a model that attempts to optimise those estimates to match the change in ward results. I'll be posting a write up later today that explains more fully.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Note that Ref stood massively more candidates in 2026 than 2024, which explains a lot of that flow. I validated with some regression models that also suggest a larger turnout increase in those seats where Ref stood for the first time.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
This analysis was based solely on vote totals. I have no polling insights!
100
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
I expected that too, but this modelling suggests that those flows are v small (relatively). I think the intuition is: people that voted in the (low turnout) 2024 local elections tended to again, regardless of who they voted for. Lots of new voters in 2026, and the vast majority voted Ref
250
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Can't edit it now, but I'll make sure to clarify England in the write up I post later. And yes, the Scottish voting system makes this kind of analysis much harder!
080
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Will write up and share later!
180
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
I haven't written it up, but am happy to lay out the methodology and share later
1230
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
This is from my own ecological inference modelling, based on the ward by ward results. Happy to answer questions if you have them.
360
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
I am the origin! I was also surprised not to see more (e.g a larger lab->dnv). Should note: this is naive national level average, and small flows are excluded from the graph for clarity
290
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Yeah, I should also clarify that the chart shows a naive national average - conditions like the one you describe are very likely to be more extreme in some more localised areas.
110
Oliver Skånberg-Tippen @oskanberg.bsky.social · 11/05/2026
Kind of you to propagate the post into even more feeds!
140