Post-General Election 2024 Model Analysis

Final Projection

Fianna Fáil 48
Sinn Féin 41
Fine Gael 37
Independents 21
Social Democrats 6
Labour 5
Independent Ireland 5
PBP/Solidarity 4
Aontú 4
Green Party 1
100% Redress 0
Right2Change 1
Independents4Change 1

Actual Results (difference)

Fianna Fáil 48 (0)
Sinn Féin 39 (-2)
Fine Gael 38 (+1)
Independents 16 (-5)
Social Democrats 11 (+5)
Labour 11 (+6)
Independent Ireland 4 (-1)
PBP/Solidarity 3 (-1)
Aontú 2 (-2)
Green Party 1 (0)
100% Redress 1 (+1)
Right2Change 0 (-1)
Independents4Change 0 (-1)

This post is to compare how the projection model did in terms of the actual results. While the model itself is, as I have said many times, not designed to be predictive but rather to interpret polling, it ended up pretty close to the eventual outcome. This is a sign of two things – firstly that the polling was very good (enourmous credit is due to the teams at RedC, Ireland Thinks and IPSOS/B&A), and secondly that the model was good at interpreting those figures.

While I am pleased about the latter, the former is much more important – without good data inputs, the model would not have good outputs. The work here will, for all my efforts, ultimately only be as good as what is fed into it. There is still work to do to improve that interpretation – particularly around transfers – but the majority of the praise must go to the polling companies. Credit is also due to Ireland Votes and Dr. Ian Richardson for their work on interpreting how boundary redraws would likely impact FPV.

Regional polling figures (Ireland Thinks, RedC, IPSOS/B&A) in the final week of the campaign compared to actual results. I must emphasise again that these are extremely accurate and are the main reason for why the projections were as close to the actual result as they were.

Overall, the model’s projections bore out in 150 of the 174 seats – a total of just over 86%. This is really good, especially considering this was the first proper test for this experiment. You could probably knock one off for the Ceann Comhairle in Kildare South if you wanted, but then I’d claim back Donegal, as the model can’t properly ambiguate between Independents and Others!

If you add up the party total it ends up off by 26, rather than 24 – this is due to the way the projection misses net off against the people who actually took the seat, but there were 24 individual misses.

The model will never be perfect and can never be expected to get a 100% hit rate. Feeding in the actual regional data gives us 162 correct seats, or 93%. This corrects for general polling under/over-performance, while still having a gap, mostly due to transfers and local outliers (for example Sinn Féin in Cork). However, again, this does show that the model is pretty good at interpreting the regional polling numbers into seats.

There is much to discuss in the aftermath, and that will be best left to analysts with better expertise than I; this article will stick to the results in the context the polling and the modelling.

FPV projections will also be included below (rounded for ease of reading and approximated to 100% in the visual representation). IND/Os are grouped (as this is how they are polled) and then split out subsequently for interest, but it should be noted that those split-outs were much lower confidence in the first place. Note that these are effectively “median” FPVs, so actual results differing by a few points one way or the other is expected. Bear this in mind if any of the language I use subsequently is a little loose on this.

There were, as one would suspect, some significant misses on the tails, but overall the distribution was very good, with a mean average error per party and per constituency working out at just under 2%.


If you want to see the final pre-election projections, you can do so here, and I would also strongly recommend reading the “How to read these results” section if you are not familiar with this projection model.

Right, let’s get into it.

Results and comparison to projections for General Election 2024

This update includes analysis for every constituency. Bear in mind I will, to avoid long, repetitive sentences, use phrases like “correct”, “overperformance”, “underperformance”, “miss” and so on. Please bear in mind that these are being used for convenience – projections represent a range, so when something is described as an “overperformance” of 2% for example, it means relative to what the model had as the likely median point of that range, i.e. they landed in the upper part. Some results are outside of this range, certainly, but the vast majority are within some degree of expected variance, just a lower-probability part of it. This is in keeping with how the model is meant to work, but I figure it’s easier to explain once up here than over and over again in each section.

You can click the appropriate link in this table to jump to each constituency:

Carlow-KilkennyCavan-MonaghanClareCork East
Cork North-CentralCork North-WestCork South-CentralCork South-West
DonegalDublin Bay NorthDublin Bay SouthDublin Central
Dublin Fingal EastDublin Fingal WestDublin Mid-WestDublin North-West
Dublin RathdownDublin South-CentralDublin South-WestDublin West
Dún LaoghaireGalway EastGalway WestKerry
Kildare SouthKildare SouthLaoisLimerick City
Limerick CountyLongford-WestmeathLouthMayo
Meath EastMeath WestOffalyRoscommon-Galway
Sligo-LeitrimTipperary NorthTipperary SouthWaterford
WexfordWicklowWicklow-Wexford

Carlow-Kilkenny

PROJECTION: 1 SF, 3 FF, 1 FG
RESULT: 1 SF, 3 FF, 1 FG
CORRECT: 5/5

Not a lot to say on our opening constituency – the model got the seats right, and the FPV was very close the final result. Sinn Féin overperformed a bit, and Independents and Others were slightly overstated. The latter will be seen in other constituencies too, as their support in some areas turned out a little bit softer during the campaign. Overall the polling for them was accurate, but this is a good illustration of the kind of variance we can see at constituency level, even if in this case it had little relevance to the final result.

It’s worth noting that Fianna Fáil still managed to win 3 seats while coming in slightly below the model’s projection. This is a testament to the incredible vote management work done by the party across Carlow-Kilkenny.

Cavan-Monaghan

PROJECTION: 2 SF, 1 FF, 1 FG, 1 AON
RESULT: 2 SF, 2 FF, 1 FG
CORRECT: 4/5

Overall pretty good on FPV, with Fianna Fáil overperforming the projection a bit, with Sinn Féin and Fine Gael doing a touch better. The difference maker for the projection versus the result was Aontú, and even then a 2% difference isn’t a statistical problem. What it is, however, is an illustration of how small margins can affect the result. There were a lot of very close seats, and the last seat in Cavan-Mongahan was an example of somewhere that a small gap can flip the result. I did call out in the preview that this looked marginal, and it certainly was.

If Aontú pick up just 410 votes or transfers that otherwise went to Brendan Smith – a change of just 0.6% of overall FPV – the seat is theirs. This is an illustration of why modelling can never be 100% correct; marginal breaks that decide seats can be extremely small.

Also worth noting that Aontú did less well than the model expected from Independent Ireland transfers – 26% is pretty good between two parties, but wasn’t enough. We saw similar in reverse in the European Election in Dublin, where Independent Ireland’s Niall Boylan could be safely ruled out after only getting 23% of transfers from Aontú. Even a bigger transfer wouldn’t have made the difference there in the end, but at that point it was clear he was cooked. Similarly here, once Shane P. O’Reilly went out, and his transfer rate seen, it was apparent that Aontú would have needed a miracle to close the gap.

Clare

PROJECTION: 1 SF, 2 FF, 1 FG
RESULT: 1 SF, 2 FF, 1 FG
CORRECT: 4/4

Projection bore out here, despite a large gap where Independents/Others were over-estimated and Fine Gael underestimated. Three candidates from Fine Gael was still pointless, but even with a significant boost here they were pretty distant from a second seat in the end. The model ultimately saw more or less what happened in reality – Sinn Féin scooping enough transfers from Independents and left-wing candidates to never really give Fine Gael a shot at a second seat.

As for the Independent numbers, yeah, that was an issue in general; the model seems to overstate them a bit when there’s a ton of Independents in the tail. This is something to look at in future; it certainly replicated in some, but not all, other constituencies. It also had no idea how to deal with Violet-Anne Wynne, and I don’t know how something like that can be fixed systematically. A lot can potentially be learned from this constituency.

Also this was one of the few places where the model actually overestimated the Social Democrats, albeit by an ultimately insignificant amount.

Cork East

PROJECTION: 1 SF, 1 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 SD
CORRECT: 3/4

Now we get into one of the biggest challenges the model had – and one you’ll see played out over the next few constituencies – Sinn Féin severely underperformed their general Munster polling across Cork. This is why the gap for SF in Munster was the biggest polling “miss” (it wasn’t really a miss per se, given the MoE and confidence levels involved in regional numbers, but we will call it that for simplicity), and resulted in a number of differences between the model and the final result.

Cork East was certainly one of them. Independents and the Social Democrats appear to have eaten into their vote significantly. And despite underestimating Independents, the more crucial underestimation was on the Social Democrats. Liam Quaide was a strong candidate and I identified him as a good blind bet, but the model did not expect this performance – particulary his strength on transfers relative to the two big-name Independents.

Overall Cork should be a big concern for Sinn Féin though. This is somewhere they should be doing well; a underperformance totally out of line with their wider polling ought cause some serious searching as to why.

Cork North-Central

PROJECTION: 2 SF, 1 FF, 1 FG, 1 II
RESULT: 1 SF, 1 FF, 1 FG, 1 LAB, 1 II
CORRECT: 4/5

Again, this was a bad underperformance for Sinn Féin; in this instance Labour were the main beneficiary as they won the final seat, with Fine Gael also having a localised overperformance. The rest is all in line, and I’m particularly impressed with how close the model got Independent Ireland by simply assuming the new party affiliation would have zero impact and measuring Ken O’Flynn purely based on his personal performances as an Independent.

I was one of the people who was very critical of candidate strategies here. Neither Fianna Fáil nor Fine Gael helped themselves at all by running three. Even running ahead of projections, Fine Gael didn’t have anywhere near the base vote needed to make two seats realistic, and while Fianna Fáil wasn’t so bad, they would have needed some magical transfer management to jump either Labour or PBP, with taking the fifth seat basically impossible.

The big one of course, is Labour’s two-candidate strategy. While I will certainly admit it was not as bad as I originally thought, but I will note that plugging Labour’s actual regional FPV into the model does actually project the Labour seat – they simply beat the polling here, and that is to be applauded.

As for the strategy itself, there’s a lot of variables here. On the one hand, Eoghan Kenny got elected. On the other hand, he got just under 29% of John Maher’s transfers; that is an abysmal in-party transfer rate. I suppose the question is, could Kenny have got 950 additional preferences in the city if he had been the only candidate? I don’t know, and ultimately, we can’t argue with results.

What the Soc Dems were thinking running two, however, remains mystifying. Overall, however this was probably somewhere that the model was a bit too harsh on those split votes, and worth looking at more as we move forward.

Cork North-West

PROJECTION: 2 FF, 1 FG
RESULT: 2 FF, 1 FG
CORRECT: 3/3

Little remarkable here. The only Cork constituency where SF didn’t underperform, but they were never in the running anyway. Fine Gael ran Fianna Fáil a bit closer than the model thought for the final seat, but not enough to swing it. There was some praise in media for Aontú’s performance here, and while creditable, it was worse than their polling indicated, and a decrease on 2020.

Cork South-Central

PROJECTION: 2 SF, 2 FF, 1 FG
RESULT: 1 SF, 2 FF, 1 FG, 1 SD
CORRECT: 4/5

Another Cork constituency where Sinn Féin struggled enormously – and consequently where the modelling showed a seat that was in reality not even a remote prospect. This is tied for the biggest miss under the modelling; while I expressed in the preview that I felt the model was being a little generous to Sinn Féin, I had no idea it would be by this muich.

While Fianna Fáil and Indepdendent Mick Finn benefitted from this, neither of those changed the outcome; it was the Social Democrats who significantly outperformed the polling here. Pádraig Rice ran a strong campaign and while he certainly did benefit from accumulating left-wing transfers, he also did very well on FPV. This is also very useful for future work – part of the problem the model had with the SDs in Munster was it knew they would increase their vote, but had no idea how it would be distributed as the data from 2020 was not helpful. We now have data on where their areas of strength are, and this should help with interpreting polls for future projections.

Cork South-West

PROJECTION: 1 FF, 1 SD, 1 II
RESULT: 1 FF, 1 SD, 1 II
CORRECT: 3/3

Despite plenty of chatter about how Fine Gael were coming for Holly Cairns’ seat, the model thought she was in a good position and that bore out. In fact it bore out so hard it happened even with the model underestimating Fine Gael. The likely distribution of transfers favoured Cairns and she beat the projections herself too. This was a constituency I got a lot of flack for the model not showing an FG seat in, and I’m not going to take a victory lap (wait until Dublin Mid-West for that) – but what I will say is that projecting seats is tricky, and people will get stuff wrong. Making definitive proclamations on what will and won’t happen, and yelling at people who disagree, will only make you look silly in the long run.

The model hated FG running two candidates here, and it became clear during the campaign that their relationship with eachother was fractious; ultimately they ended up well short of where they needed to be to overhaul the Soc Dems or Fianna Fáil. I don’t know if running one fixes it, but running two certainly wasn’t the solution this time either.

Worth noting that once again Sinn Féin underperformed badly in Cork, though this was never somewhere they were in the hunt. Michael Collins under-running general Independent/Other polling feels interesting but I’m not sure how to interpret that; it certainly was of no significance in this election.

Donegal

PROJECTION: 2 SF, 2 FF, 1 IND
RESULT: 2 SF, 2 FF, 1 100R
CORRECT: 4/5

The model’s projection was by and large pretty good here – the miss was due to 100% Redress and Thomas Pringle having their positions more or less swapped. This is unfortunately a limitation in the modelling I have discussed multiple times – when there are two IND/O candidates, it is very difficult to project relative performance – and we had no data to indicate 100R were ahead of Pringle.

I could have labelled it an IND/O seat and moved on. Maybe I should in future.

Dublin Bay North

PROJECTION: 1 SF, 1 FF, 1 FG, 1 SD, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 SD, 1 IND
CORRECT: 5/5

Dublin Bay North was a bit of a mixed bag – ultimately the correct outcome projected, but Fianna Fáil and Fine Gael, particularly the former, outperforming the projection. This constituency was repeatedly flagged as being extremely volatile, so I’m not surprised to see these a bit out, but not by enough to even come close to changing the result.

Labour did significantly worse than the model thought here, while an adjustment was in place for not having Aodhán Ó Ríordáin as the candidate anymore, it was a much bigger drop than estimated. I’m not sure there is a systematic way to factor this in; it would require using local election data, which, while it may have reflected here, has a very high noise-to-signal ratio and would have resulted in substantial errors elsewhere.

I am impressed with the model’s projection on Barry Heneghan – the seat was there on transfers in the model and this is exactly what happened. The data pointing to his success may be a bit of a surprise given the lack of a track record, but it was there, and the model was ahead of many commentators in seeing this possibility. This is an illustration of why the model has to include transfers, as difficult as they are to model; ignoring them would result in worse interpretations of polling.

Dublin Bay South

PROJECTION: 1 SF, 1 FF, 1 FG, 1 LAB
RESULT: 1 FF, 1 FG, 1 LAB, 1 SD
CORRECT: 3/4

Another slightly paradoxical one – the model was mostly pretty good here in terms of FPV but didn’t project the final seat correctly, despite actually slightly underestimating Sinn Féin. The model did see the SF seat as vulnerable but had them as more likely to hold than not. It was correct about Fine Gael’s prospects for a second seat.

Fine margins matter a lot, and the Social Democrats not only outperformed projections on FPV, but did extremely well on transfers; enough to close the gap and take a seat here. The model generally had SD transfers going up, but not by enough, and combined with the FPV boost, it was enough.

Worth noting – and there will be a few more examples of this – that I said a few times in the run up that we have no idea of what Aontú on 5% in Dublin looks like. We still don’t know, because they fell short of it, but it does result in a few anomalies like this where they significantly underperformed the polling.

Note: During the time I was writing this, Eoin Hayes has managed to get himself suspended from the Social Democrats parliamentary party. For comparative purposes, I will still be counting the seat as SD unless he departs from the party permanently.

Dublin Central

PROJECTION: 1 SF, 1 FG, 1 SD, 1 I4C
RESULT: 1 SF, 1 FG, 1 SD, 1 LAB
CORRECT: 3/4

Dublin Central was the only constituency where I didn’t include a candidate in the projections; there simply was no way to work out how Gerry “the Monk” Hutch would fare. As it turns out, he almost won a seat, ultimately being overhauled by Labour at the last. Considering that, the rest of the projection was in the right range more or less across the board, with the exception of a miss on Clare Daly, which I don’t feel too bad about as I had been very open that the data behind this was extremely low confidence in the first place.

For what it’s worth, feeding the actual provincial level data into the model does show the Labour seat. A reminder that small swings can make a big difference – Labour outperforming their regional polling by 1% was enough to win them seats in places they would have lost if they had come in in bang on the polling. Considering MoEs and confidence levels, this is the kind of thing that projection models will never have perfect sight of.

Dublin Fingal East

PROJECTION: 1 SF, 1 FF, 1 FG
RESULT: 1 SF, 1 FF, 1 LAB
CORRECT: 2/3

So. Interesting one here – the model was about as close as close can be on the Labour seat, with them marginally disfavoured. However, even getting that right wouldn’t have made a difference – as it would have come at the expense of Sinn Féin instead of Fine Gael. This was a pretty significant underperformance for Fine Gael, and one that cost them a seat – another example of a constituency nuance we did not have granular enough data to spot.

Labour beating their polling is no surprise here; I have spoken both here and elsewhere about how Duncan Smith beat Labour’s trends in 2020, and he did so again this year. The Social Democrats also had a creditable overperformance, but one that did not change the final results.

Dublin Fingal West

PROJECTION: 1 SF, 1 FF, 1 IND
RESULT: 1 SF, 1 FG, 1 LAB
CORRECT: 1/3

Model had two misses here. The first was a very close one between Fine Gael and Fianna Fáil, so I consider that the kind of marginal one that sometimes breaks one way, sometimes the other, and was reflected in the closeness in the FPV in the model. Despite going the other way, the model was ultimately very close to their actual results.

The second is more significant – the model has been very high on Tony Murphy for a while, and this was not borne out, with Labour winning the seat instead. We’ll come back to Labour in a second, but Murphy is a good illustration of a challenge that can happen with Independents. As the model primarily relies on using polling growth/decline to project outcomes, there are situations it can’t see, such as there being a “cap” on support. That appears to be the case with Murphy, who (along with other Independents/Others) significantly underperformed the general trend in Dublin. This indicates there’s a hard limit to his support base; I’m not sure how best to account for this in future, and how universalisable it may be, but it is something interesting to consider in future.

The model being a large distance off on Labour (tied for the largest gap between actual and projected FPV) doesn’t surprise me – there was a huge improvement here from 2020, and we didn’t have the data to project this, as observed in the preview. I have written repeatedly about not wanting to intervene with the model’s outputs where we have no clear data, as it would render the whole experiment pointless. I stand by the reasons for not changing the call here even though I knew there was a high probability it would result in a miss on the output.

Dublin Mid-West

PROJECTION: 2 SF, 1 FF, 1 FG, 1 IND
RESULT: 2 SF, 1 FF, 1 FG, 1 IND
CORRECT: 5/5

Alright. This is the one victory lap I will allow myself. Paul Gogarty, man. There were some calls in the model that seemed very out there, and this was one of them. Naturally, not all of them bore out, but this one sure did. And this wasn’t a late realisation – the model has had him in or close to that seat since February 2021. At first I thought the model was doing something strange, but the projections stayed through several updates, both major and minor, and became a little bit of a meme, and eventually I started to believe myself, although I not pretend I didn’t always have doubts.

I never should have doubted. The model knew. The model always knew.

Also the model was pretty good in terms of FPV across the board here, but mostly just feeling the vindication on it seeing how strong Gogarty’s position was from the data long before anyone else (or even myself) was giving him serious consideration to win a seat. And this isn’t just about the meme – if there is an indication in this project of the value of a data-based approach to projecting seats, it’s right here. Yes, it will have shortcomings, should never be considered absolute or the only source of truth, and the data will never be perfect, but it can see things like this from far away, when nobody else is even looking.

Dublin North-West

PROJECTION: 1 SF, 1 FF, 1 SD
RESULT: 1 SF, 1 FF, 1 SD
CORRECT: 3/3

Result was pretty close to the projection here – particularly given that it was having to factor in the effect of the candidate change for the Social Democrats. Candidate changes are hard to model with great confidence – you can look at Dublin Bay North above to see how substantial the impact can be, or Dublin Bay South for another example of the projection being on point – but this one worked out pretty well in the end. It’s very difficult to unpick personal vs party votes, particularly because these aren’t wholly discrete. I don’t think there’s a systematic way to calculate these as the variance can be quite high. Overall the model did pretty well on these, but will never be able to get all of them right.

The one noticeable gap is for PBPS; in a generally tough election for them, Conor Reddy was a bright spot, more than doubling his 2020 FPV and absolutely blowing past the general trends for the party. This is another illustration of how the right person in the right place at the right time can overperform in ways that we don’t have granular enough data to anticipate.

Dublin Rathdown

PROJECTION: 1 FF, 2 FG, 1 GP
RESULT: 1 FF, 2 FG, 1 SD
CORRECT: 3/4

While the modelling was pretty decent here, the final seat went to the Social Democrats instead of the Greens; small gaps in performance between the three centre-left parties on FPV was a factor, but what was much more impactful was Sinéad Gibney’s transfer friendliness, which was much more significant than had been estimated by the model.

Gibney outpolled incumbent Green TD Catherine Martin by less than 150 votes; by the time Martin was eliminated, the gap had grown to over 2,000. While Sinn Féin and PBP transfers did make up the bulk of that, Gibney also beat Martin on Labour transfers and kept relatively close pace in ones from the right. This reflects something we saw more broadly as well, as the SDs appear to have taken the Greens’ place as the more transfer-friendly party of the centre-left.

Dublin South-Central

PROJECTION: 1 SF, 1 FF, 1 PBPS, 1 R2C
RESULT: 2 SF, 1 FF, 1 SD
CORRECT: 2/4

The FPV here was pretty good, but in a constituency where seats where expected to be close under the model, small differences resulted in two misses. In the projection everything bar one for Sinn Féin was marginal, with the model giving one seat as close between Fianna Fáil and Fine Gael, and the other two to be a fight between various left-wing parties. The Social Democrats were very much on the outside of that, but beating their polling on FPV plus, in a really impressive show, hauling in far more transfers than modelled, won them the seat.

The second seat for Sinn Féin was, under the model, a more likely prospect, and their vote management being slightly better than modelled was enough to swing it. I’m not shocked at this – we have very little historical data on SF multiple-candidate vote management outside of a few constituencies along the border – but it was better than what I could put together from that scant data.

That said, successfully suppressing your lead candidate’s vote in order to boost up two others without endangering anything is a really had thing to do, especially with someone as well regarded and popular as Aengus Ó Snodaigh. On top of that, they managed their second preference split really well, when a misallocation of a few hundred preferences would have seen them miss out on the second seat. So credit is very much due to SF’s strategy and management here.

Dublin South-West

PROJECTION: 1 SF, 1 FF, 1 FG, 1 LAB, 1 PBPS
RESULT: 1 SF, 1 FF, 1 FG, 1 LAB, 1 PBPS
CORRECT: 5/5

Modelling was reflective of the result here, and the sweating we saw from some quarters over Paul Murphy’s seat from the initial count was misplaced – he landed exactly where he was projected as most likely to be, and was never in any serious danger. That said, even a small underperformance of the polls – a statistical blip – and it could have been a different story, so I understand the pre-election concern. But once we had the first count, he was good.

The model was also ahead of the curve on the Labour seat here, which first popped up in January, and although it would not always be favoured, it was close even when not, and ultimately was seen as the most likely outcome by the model. I mentioned this at the time, but the key factor here is Katherine Zappone’s past transfers. Her vote was disproportionately Labour-sympathetic (one might indeed argue that she took a lot of voters from Labour), and it seemed quite likely that, with her not running, a lot of voters would go “home” to Labour. While caution must always be a factor with this kind of analysis, I think the results validated it in this specific instance.

Dublin West

PROJECTION: 1 SF, 1 FF, 1 FG, 1 PBPS, 1 AON
RESULT: 1 SF, 1 FF, 1 FG, 1 PBPS, 1 GP
CORRECT: 4/5

The seat for Aontú was always a close call here, and while Ellen Troy did still fall under what the polls indicated, it’s worth noting she was a closer to that benchmark than many of her colleagues across Dublin ended up being. But small differences ended up swinging it here, as Roderic O’Gorman held on for the Greens, fending off Troy and Labour. It must be said that this was impressive, especially considering O’Gorman has been targeted politically and personally on a level few others – maybe Paul Murphy and Hazel Chu – have been over the last few years.

While O’Gorman ended up a thousand votes to the good in the end, it was not plain sailing – at one point he was barely 300 votes away from elimination. As it happens, if he had gone out then, the model still would most likely have got the wrong result, as one must suspect Labour’s John Walsh would have leapfrogged Aontú. A key thing here was that Aontú were much less transfer friendly than the model had estimated – for example, they failed to beat the Greens or Labour on FF transfers.

Ruth Coppinger managed to get a little bit ahead of this fray and ultimately cruised through, unbothered, moisturised, and bouyed by a superb performance in the Sinn Féin and Social Democrat transfer piles – reflecting very strong mutual transfers between PBP and the SDs seen all over the country in this election.

It’s also worth noting that this Fine Gael performance was a good bit below the polling; again this is a case of the impacts of retirements being hard to calculate with great confidence. In the end it was not material to the result, but still worth observing.

Dún Laoghaire

PROJECTION: 1 FF, 2 FG, 1 PBPS
RESULT: 1 FF, 2 FG, 1 PBPS
CORRECT: 4/4

Not a lot to say here. It’s Dún Laoghaire. Despite it initially looking like Fine Gael might have messed up their vote management a little bit, they still had more than enough votes to be comfortable in the end. Nothing else interesting happened, the modelling was very reflective of the result, and that’s about it.

Oh, actually there is one thing – there was a fair bit of talk in some quarters in the run up to polling day about Ossian Smyth potentially holding the seat here for the Greens. This, frankly, never made any sense and I have to assume was an attempt to discover some intrigue in an otherwise locked-up race. As I said before, he would have needed to be enormously ahead of the Green trend, and to have someone else mess up spectacularly to hold a seat here. Neither happened and I’m not sure anyone out there had any reasoned indication that this was actually likely.

Galway East

PROJECTION: 1 SF, 1 FF, 1 II, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 IND
CORRECT: 3/4

Galway East is a good illustration of somewhere where the model didn’t handle transfers very well – which was always going to be a challenge – it significantly overestimated how many transfers Independent Ireland would get in general, but most crucially from Fianna Fáil relative to what went to Fine Gael. That’s the primary reason for the miss here – the FPV gap isn’t ultimately material. I also think the model was too harsh on FG running three candidates, which although ultimately pointless, didn’t hurt them in the end.

I did flag this as somewhere with significant room for error in the preview, and that was the case here. It did get the Sinn Féin seat right, which I recall being controversial to some people – albeit they came in at the lower end of the projected range for their votes.

Galway West

PROJECTION: 1 SF, 1 FF, 1 FG, 2 IND
RESULT: 1 SF, 1 FF, 1 FG, 2 IND
CORRECT: 5/5

This one was fairly straightforward in the end, projection was pretty good and it would have taken a major upset for a change here. Worth noting that the consituency poll done by TG4 & IPSOS/B&A here did understate Sinn Féin and Fianna Fáil a bit, and pointed to a closer race than we actually got – but nothing outside of the margin of error.

The only note of interest I’d make is that Independent Ireland definitely gave Noel Grealish a scare – they likely chipped away a little bit of his vote and if they had flipped less than 500 preferences of his to their candidate, they’d have taken the final seat. The projection did suggest they’d be in the mix here, but limitations around assigning votes between Independents meant that the model couldn’t show Grealish as being the one at risk.

Kerry

PROJECTION: 1 SF, 1 FF, 1 FG, 2 IND
RESULT: 1 SF, 2 FF, 2 IND
CORRECT: 4/5

Well, I called this straightforward last month and that is exactly why I, like everyone else, should avoid definitive proclamations! Fine Gael did worse than expected and Fianna Fáil got that big overperformance versus polling here, combined with good vote management and a strong campaign from Michael Cahill, and managed to grab the final seat.

Naturally, there were local dynamics at play that the data couldn’t capture – there was unrest in Fine Gael about the choice of candidate – but even the TG4 and IPSOS/B&A poll had Fine Gael in a comfortable position. This was one of the misses that illustrates that there will always be limitations to this kind of modelling – even plugging in the actual regional data gives FG the last seat.

Kildare North

PROJECTION: 1 SF, 2 FF, 1 FG, 1 SD
RESULT: 1 SF, 2 FF, 1 FG, 1 SD
CORRECT: 5/5

Projection aligned very closely with the final result here, and seats panned out as expected, so not a lot to go over. There was some skepticism around the second Fianna Fáil seat – and the data did show it as close – but ultimately came down on the right side of it, even with FG coming in in the upper part of their range and Fianna Fáil in the lower part of theirs.

Fine Gael running three candidates here was an unforced error for sure, and the modelling was right to view it harshly, although it’s not clear it was decisive in the end.

Kildare South

PROJECTION: 2 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 LAB
CORRECT: 2/4

I’m not surprised by one of the misses here – I had suspicion the model was overestimating Cathal Berry, as I mentioned a couple of times previously, and it was very close between him and Mark Wall. I’d say this was one of the marginal ones that came down on a different side, but in the end it wasn’t close – Berry hit a “cap” in his support that meant he couldn’t follow polling trends, and Labour came in in the upper part of their range. As mentioned in Fingal West, it’s hard to know if there’s a systemic way to look at these support “caps” Independents hit; it tends to occur at a level we don’t have data for.

The other however, the model didn’t see coming. While I did mention before that it was hard to know how Sinn Féin would do, Shónagh Ní Raghaillagh ran a strong campaign and reduced Patricia Ryan to a non-factor, significantly outdoing SF’s general polling trend. The upshot of this was, for the second election in a row, Fianna Fáil fumbled away an eminently winnable seat in Kildare South – and unlike 2020, we can’t blame poor candidate strategy. Getting beaten on transfers by Sinn Féin is troublesome enough, but losing to them out of the right-wing piles? This was a mess for FF – and this transfer pattern is certaintly not something the model saw happening.

Laois

PROJECTION: 1 FF, 1 FG, 1 IND
RESULT: 1 FF, 1 FG, 1 IND
CORRECT: 3/3

This went as expected – and I think it’s worth noting that the model somehow was pretty much bang on about Brian Stanley’s support level, and how much it would suppress Sinn Féin support. The one thing that stands out is the Fine Gael overperformance, and I genuinely believe this is due to Willie Aird being a really good candidate. I haven’t discussed this before as this definitely falls into my opinion and outside the data, but I’ll get it out here – the vibe I always got from Aird was that if you opened a dictionary and looked up “Fine Gael TD for Laois” there would just be a picture of him.

Once again we see that the right person, in the right place, at the right time running a strong campaign – can beat the projections and the polling trends. Of course lining all those up is very difficult to do, but Fine Gael managed it ably here. No material impact on the result, of course, but a very impressive performance.

Limerick City

PROJECTION: 1 SF, 1 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 LAB
CORRECT: 3/4

Modelling was mostly good here – although that Sinn Féin underperformance feels notable. We will need a better sense of ED tallies to diagnose this, while the projection doesn’t intuitively show a centre-left squeeze, the geographic distribution of votes will give us a better idea of what will happen.

The modelling indicated the final seat as being very close between Independent Frankie Daly and the Social Democrats, but Daly came in towards the bottom of his range – possibly another case of a “cap” on an Independent candidate – and was much less transfer friendly than modelling expected. In the end of course, neither of these candidates made it, as Labour’s Conor Sheehan beat the trends and got the final seat.

Sheehan’s FPV was in line with the projection, but what swung it for him was transfers – naturally doing better than modelling showed, but also jumping three other candidates is an impressive feat, and outdoing the SDs on transfers is also notable, given how transfer friendly they were in general. To put it another way the question here was, what is stronger, national/regional trends, or Limerick being Limerick? Ultimately the latter won out – another reminder that there will always be local nunaces we will never capture 100% accurately in the data.

Limerick County

PROJECTION: 1 FF, 1 FG, 1 II
RESULT: 1 FF, 1 FG, 1 II
CORRECT: 3/3

Not a lot to note here – Independent Ireland did better than expected, Fianna Fáil did a bit worse than expected, but none of it made much of a difference in a constituency that has been fairly locked up for a good while.

Longford-Westmeath

PROJECTION: 1 SF, 2 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 2 FG, 1 IND
CORRECT: 4/5

Fairly straightforward here – the final seat was always going to be between Fianna Fáil and Fine Gael, and in this constituency, FG overperformed the polling indications while FF underperformed them, to such a combined degree that things weren’t particularly close in the end.

Something that is worth noting is that once again we saw geography overpower party lines here – more of Peter Burke’s surplus went to Fianna Fáil’s Robert Troy than to his own Fine Gael running mate. It made no difference in the end of course, but notable that the 2020 pattern we saw in Longford replicated here with Westmeath votes. Also worth noting that FG won both “races” against FF, beating them in both counties, a reversal of 2020.

Louth

PROJECTION: 2 SF, 1 FF, 1 FG, 1 LAB
RESULT: 2 SF, 1 FF, 1 FG, 1 LAB
CORRECT: 5/5

Result projected correctly and both FPV and transfers were broadly in line, with Labour’s Ged Nash beating the polling trends to end up winning the seat more comfortably than the model had him doing, while Kevin Callan was not as close as projected. Callan was transfer friendly, albeit a touch less than the model thought he would be, overhauling a couple of people ahead of him and nearly jumping a third, but it was apparent from the first count that the width of his path was measured in atoms.

Other than that, things went as expected, with Fine Gael’s Paula Butterly skifully navigating the mess created by the ill-judged selection of John McGahon and stepping successfully into the lead candidate role for Fine Gael. None of the top five really came under any pressure as the votes were counted.

Mayo

PROJECTION: 1 SF, 1 FF, 2 FG, 1 AON
RESULT: 1 SF, 1 FF, 2 FG, 1 AON
CORRECT: 5/5

Aontú winning a seat here was always close in the model, and the fact that they underperformed the projection and still came away with the final seat is interesting. An important factor in this pattern is anti-migrant, far-right Independent Stephen Kerr, one of the few far-right candidates who significantly beat his projection on polling day. Just under 40% of Kerr’s transfers went to Aontú, basically offsetting the FPV underperformance and putting things back in line with the modelling.

I think this was somewhere the model did particularly well – there was not a lot of chance given to Aontú here, and there was plenty of talk about how the final seat was Fianna Fáil’s or Fine Gael’s. And whoever said that had a point; the margins here were very fine, Lisa Chambers was eliminated by less than 200 votes, but the model had the final seat between Aontú and Independent Patsy O’Brien, and that’s what happened.

While Fianna Fáil didn’t have the base vote to pick up the last seat, Fine Gael very much did. Running four candidates was an avoidable blunder, and their vote management was very poor. One must credit Kiera Keogh and Michael Ring for the strategy that led to her getting a seat, but that is perhaps reflective of a broader lack of co-ordination and poor strategy at a party level. They should have run three and won three seats here; the model saw that running four made that much more difficult, and that bore out.

Meath East

PROJECTION: 1 SF, 1 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 IND
CORRECT: 4/4

Pretty much all as expected here. Gillian Toole breezed into the final seat, even if she did land towards the bottom of her range in the projection. Fine Gael’s vote management was such that they couldn’t even run her close, and it wouldn’t have mattered anyway even if they had done a better job of it. Aontú doing a bit better than the data showed was also a factor – it may have put some pressure on Toole’s FPV, but it was apparent that transfers from them would break her way by a significant amount.

Meath West

PROJECTION: 1 SF, 1 FG, 1 AON
RESULT: 1 SF, 1 FF, 1 AON
CORRECT: 2/3

If Longford-Westmeath was somewhere where Fine Gael overperformed poll and Fianna Fáil underperformed them, this was the reverse. I mentioned this in the preview as a possibility, and it happened to such an extent that FF pulled off the upset. That’s bascially it, the projection had FG well ahead but FF managed to flip it around on the day.

Interestingly, what settled it in the end was transfers from ex-FG man Noel French; not only were his transfers not enough to bridge the gap between FG and FF, between the two, they actively favoured FF. This is a pattern we’ve seen in a couple of places – previous party membership is a weak indicator of how transfers (in both directions) will go – although it’s certainly not consistent and can vary a lot between individuals.

Offaly

PROJECTION: 1 FF, 1 FG, 1 IND
RESULT: 1 FF, 1 FG, 1 IND
CORRECT: 3/3

Not a lot here, ended up going pretty much as the projection showed – and as most people said it would, to be fair – but it is worth noting how close Sinn Féin came in the end to edging out Fine Gael for the last seat. The model saw it as fairly close, but it ended up even tighter in the end as both parties overperformed their polling, and Aoife Masterson came less than 120 votes short of a significant upset. There were plenty of fine margins in this election and this was another one of them – where the smallest movement, something to small to be picked up in data, could have changed the outcome. In the end, it didn’t but it’s a good illustration of the small gaps hidden by topline seat results.

Roscommon-Galway

PROJECTION: 1 SF, 1 II, 1 IND
RESULT: 1 SF, 1 FF, 1 II
CORRECT: 2/3

I can’t really pin the miss here on the model too much – this was one constituency where I had to take a stab at working out the likely FPV of a new entrant, in this case ex-FF Senator Eugene Murphy running as an Independent, and then run it through the model. While Murphy’s vote didn’t actually end up too far off, the upshot here was a significant overestimation of how much support he would pull away from Fianna Fáil, who won a seat fairly comfortably in the end. This was, as mentioned in the preview, always a low-confidence call, and I got Murphy’s impact wrong.

On the plus side, the the projection did get Independent Ireland, Sinn Féin and Fine Gael’s FPV pretty much spot in a radically redrawn constituency, which is good. It also correctly saw that FG’s two candidate strategy was ill-advised.

Sligo-Leitrim

PROJECTION: 1 SF, 1 FF, 1 FG, 1 IND
RESULT: 1 SF, 1 FF, 1 FG, 1 IND
CORRECT: 4/4

Let’s start this off with the positives – the model got the end result right. Now let’s address the elephant in the room: Marian Harkin. The model simply did not account for her FPV dropping as it did, nor, as much as I would love to claim credit, did it forsee that she would be transfer-friendly enough to come out on top from an extremely sticky situation and hold her seat. It also underestimated Independent Ireland, which is not surprising in some ways given them being a new entrant here, but is notable given the model was pretty good when it came to FPV in places like both Galway constituencies. A good reminder that even sometimes when the modelling gets the result right, there’s sometimes lot more going on under the surface!

Also worth noting here is the relative overperformance of Fianna Fáil and underperformance of Sinn Féin; not material in the end but interestingly a similar pattern to Cavan-Monaghan and Donegal.

Tipperary North

PROJECTION: 1 FF, 1 LAB, 1 IND
RESULT: 1 FF, 1 LAB, 1 IND
CORRECT: 3/3

No surprises here, and everything landed pretty close to the projection. This was, in fairness, a pretty straightforward constituency to call in the current polling environment. Once Labour started ticking up a bit, the question of whether or not the model would miss on Alan Kelly (who is one of those small-party outliers with geographically compact support that we have discussed many times, and thus much more resistant to general polling trends than most) became moot.

Tipperary South

PROJECTION: 1 SF, 1 FG, 1 IND
RESULT: 1 FG, 2 IND
CORRECT: 2/3

The final outcome ended up different from the projection here, but I don’t think it’s a big deal – this is one of those marginal seats that was tilted by a relatively small underperformance (certainly within the MoE!) by Sinn Féin, and even then, Browne was eliminated before Healy by less than 100 votes; if it had gone the other way, Healy’s transfers would more than likely have elected Browne. These are the kind of fine margins that can go either way, and should be expected under any kind of plausible modelling.

Waterford

PROJECTION: 2 SF, 1 FF, 1 FG
RESULT: 2 SF, 1 FF, 1 FG
CORRECT: 4/4

Waterford was one where the model swung around a lot as polling changed, but ultimately ended up in the right place, even if it did underestimate Fianna Fáil and Fine Gael a bit. Ultimately it came down in favour of Sinn Féin taking the second seat ahead of Independent Matt Shanahan, and this bore out, though it would not have taken a massive swing for this to break the other way, so it’s probably more valuable that the model saw this as close than that it got the precise outcome correct.

This is a constituency I very much want to see the ED tallies for – I mentioned before that the dynamics in West Waterford would be very interesting, given that most of the major candidates were clustered around the city and Tramore, and I’d like to see how that ended up. The topline results certainly point in that direction, at least.

Also the final elimination is fascinating – the Social Democrat transfers went more for Sinn Féin than for Shanahan, an instance where ideological alignment overpowered not just geography, but also personal connection (the SD candidate, Mary Roche, was originally Matt Shanahan’s replacement on the council).

Wexford

PROJECTION: 1 SF, 1 FF, 1 LAB, 1 IND
RESULT: 1 SF, 1 FF, 1 LAB, 1 IND
CORRECT: 4/4

This one was pretty much fine, a few gaps alright but nothing material, and nothing unexpected in a heavily redrawn constituency with a few new candidates and a seat dropped. In an inverse of Dublin Bay North, the model did overestimate the impact of retirement on Labour, as George Lawlor did brilliantly – so much so that the correct impact retirement for him was zero. I mean that – if we put Brendan Howlin’s 2020 performance into the model with no adjustment, it gives Labour a projected FPV of 13.7% – in reality, Lawlor got 13.8%.

The biggest point of interest is Verona Murphy; while the model was pretty good at projecting the overall Independent/Other score, it had things more evenly spread while, in reality, it was Oops! All Verona. The machine we saw during the local elections appears to be very much in place, and from what I have heard in passing about her performance in certain ED tallies, this has potential to turn into a Tipperary-type situation.

Also, I said it in the preview, and elsewhere, and will say it again – Fine Gael running two candidates here was foolish and, while we cannot be certain what would have happened with one candidate, it did them absolutely no favours when it came to the attempt to win a seat.

Wicklow

PROJECTION: 1 SF, 1 FF, 1 FG, 1 SD
RESULT: 1 SF, 2 FG, 1 SD
CORRECT: 3/4

The projection was for the most part pretty good here, but had no way to anticipate an astonishing underperformance from Fianna Fáil’s Stephen Donnelly, with Fine Gael as the main beneficairies, both in terms of votes and taking his seat. I had mentioned before that FG was targeting this seat, but didn’t think it likely they would swing it and I was wrong, as Wicklow went from two Steves to zero Steves in the blink of an eye.

What is particularly interesting about this is that it doesn’t feel like an overwhelming FG vote – barely 40% of Simon Harris’ transfers went to his running mate, which is an utterly atrocious in party transfer rate in general, let alone from a surplus, where the #1 vote ballots aren’t mixed in with lower preferences. That indicates to me that what buried Donnelly was primarily a personal vote for Harris, and indications of how poorly Donnelly did in some Greystones boxes supports that theory.

Wicklow-Wexford

PROJECTION: 1 SF, 1 FF, 1 FG
RESULT: 1 SF, 1 FF, 1 FG
CORRECT: 3/3

This one was always going to be very straightforward unless something weird happened, and it didn’t. The Fianna Fáil overperformance and Fine Gael underperformance is somewhat notable, but not material, and not entirely surprising that there was a bit more variance in a completely new constituency than the projection expected.

Other notes

I will be taking a bit of a break until things settle in and we get a few months of post-election polling. In addition, there are several things I believe I can improve based on the results of the election, although I will say that overall the model worked well on its first go-round. And there are plenty of outdated things on this site that need a refresh as well – not least the constituency pages, but also things like the FAQ and methodology pages have barely been updated since 2021, and are frankly no longer fit for purpose.

I hope the article above has been helpful in understanding both the value and limitations of the modelling and what this project seeks to do, and also provided some insight with the publication of the FPV figures – but please do bear in mind, as explained at the start, what these represent!

And most importantly, thank you everyone for your support, interest and engagement. This is something I started in my living room nearly four years ago, and it is absolutely wild that this project got enough interest for me to have been invited on RTÉ, the BBC and Virgin Media over the last few weeks.

Also Tony and Martin – would never have been able to do any of this without you being the first guys to see something of value here and give me the opportunity and platform to reach a broader audience. Thank you.

***********

Thanks so much for reading! This website is done entirely in my spare time and run without ads, so if you want to donate, please do so via Patreon or Ko-Fi – any support is greatly appreciated and 100% of any donations received are invested into the costs of running and improving the site.