Saturday, 3 May 2025

A Very Late National Prediction

 Normally we take the polled swing from last election, add that to the pendulum and start from there. This year, though, the polling is basically exactly where the election landed - negligible swing on a two-party-preferred basis!

There's a little more variation at the primary vote level, but even that has the 2022 result well inside the recent variation:


That's boring - our prediction is just a copy-paste of the 2022 results.

So, let's try something else. At the very least, we don't seem to be looking at much of a swing, so we can lock in any seats classified as "fairly safe" (i.e. margins > 6 percentage points):


Next, we're luck to have a lot of seat-by-seat polling. Let's add in everyone where that polling has been giving a consistent result: 


And lastly, let's look at the history of the much-more-numerous-than-usual remaining seats, and a general gut feel, to finish us off (the reason this post is so down-to-the-wire):

Banks – LIB

Traditionally a Labor seat, Banks was won in 2013 by David Coleman who continues to contest the seat. Having weathered the swings back and forth since the end of the Rudd-Gillard years, the Liberals are probably resilient enough to hold on here.

Bass – LIB

While less robust for the Liberals in modern time, Bass has also has a less stalwart Labor history in its early days. While this will surely be a close one, I think Bridget Archer’s incumbency and the lack of expected major swings in general can hold this one for the Liberals.

Blair – ALP

Shayne Neumann won Blair with the Kevin Rudd landslide of 2007 and hasn’t lost it over the following almost-two-decades. Running again, that streak could well continue.

Bradfield – IND

Bradfield has been Liberal since its inception in 1949. It’s once of those seats where Labor has such a low chance of winning, it’s feasible for an independent to out-place them on primary vote, pick up their preferences and then vault into a winning position. This nearly happened in 2022 for Nicolette Boele, who is contesting the seat again this year. With, if anything, a slight swing this year to minor parties and independents, she may well take the seat this time.

Brisbane ALP

Brisbane has moved about historically between Labor and Liberals, and last election the Greens finally won. As an inner city seat, it is a strong option for the Greens, but the major parties may have seen it as winnable too and put a lot of resources in here. If so, the Australian pattern of one-term Geens members may continue, and their preferences when defeated would likely get Labor over the line.

Bullwinkel – LIB

Bullwinkel is a new seat, but is made of parts of Hasluck and Swan, with mixed voting histories, as well as more rural Coalition strongholds of Canning, Durack and O’Connor. Though nominally held by Labour this is untested, and at the recent state election a number of seats in this area were won by Liberals or Nationals despite a strong Labor result elsewhere.

Calare – IND

Calare has been won by Nationals and Independents since 1996. In 2022 it was won by Andrew Gee for the Nationals against Independent Kate Hook. Now Gee is an Independent, Hook is running again and the Nationals have fielded Sam Farraway, making for an interesting three-way race. Preferences will be unpredictable and chaotic. Polling in the seat suggests the Nats can beat Hook again, but will struggle to beat Gee.

Casey – LIB

Liberal since 1984, and with 2025 not poised to be a year of shock upsets, expect the Liberals to take this one.

Chisholm – Tossup

History gives little instruction in Chisholm. I’ve tried not to do this in recent years given the ultimately low stakes on this blog, but I can only call this with a coin-flip so let’s call it as it is – a tossup – and hope it doesn’t come down to this seat in the final prediction.

Cowper – NAT

National since 1963. National again. Only Independent Cas Heise stands a chance at unseating them, and didn’t do it in 2022, so will have to fight very hard to pull it off this time around.

Curtin – IND

The seat has only ever been Liberal or Independent. Independent Kate Chaney took the seat last election, and with greater name recognition and a high media profile, she’ll likely keep it.

Deakin – ALP

The closest seat in the race, if any seat will flip this is the one to bet on. So I will – ALP to take Deakin from the Liberals.

Dickson – LNP

It’s a close one, it’s a hugely contentious one, but ultimately the Liberals will have put in whatever resources it takes to keep their leader, Peter Dutton, in his seat.

Forrest – LIB

Liberal since 1972, there is no real suggestion ALP can take this. Some speculation has been put behind prominent Independent Sue Chapman, but I think that’s a tough ask this year when the 2PP is still considered to be Liberal vs Labor.

Fowler – IND

Suggestions the Labor could regain the seat from Independent Dai Le are not unreasonable, but certainly the less likely outcome in my view.

Goldstein – IND

Likewise, Liberal winning seats back from Independent Zoe Daniel is a big ask.

Griffith – ALP

A three-way race between Labor, Liberal and Greens will be unpredictable, and all three parties want this seat. Ultimately, if Labor falls out first, they’ll preference Greens, while you’d expect both Greens and Liberals to preference Labor over each other, giving Labor the upper edge in a game of pure chance (which an election never is).

Hunter – ALP

Labor since 1910. Labor Again.

Kooyong – IND

I don’t think the major parties have done themselves any favours this year in trying to oust Independents like Monique Ryan.

Lingiari – ALP

A tight one to be sure, but Lingiari has been Labor, holding out against the Country Liberals, since it’s start in 2001.

Lyons – Tossup

What can I say. It’s a tough one.

Mackellar – IND

The fight between Liberal and Labor has probably reduced both parties in the eyes of voters, which will continue to play well of incumbent Independent Sophie Scamps.

McEwen – ALP

McEwen’s a weird one historically. Labor couldn’t win it in Rudd’s first popular election, but then did under Gillard. They held on in the swing back to Liberals and hold it still. Given this tenacity, I don’t expect a change this year.

Menzies – LIB

A Liberal seat named for the Liberal founder that’s been Liberal since it was created.

Monash – IND

The mixed polling here arises from the consistent result that polls framed as Labor v Liberal see the Libs win, and those framed as Liberal vs Independent incumbent (and former Liberal) Russell Broadbent see the latter squeeze ahead with a margin of a few percentage points.

Paterson – ALP

A mixed history to be sure, but Meryl Swanson has built a decent support base over her time in office.

Reid – ALP

A Labor seat with only a small deviation in the 2010s, it’s a strong chance for Labor. Certainly not a sure thing, but the only reason this wasn’t a clean sweep on the seat-wide polling was a single 50-50 split result last year.

Robertson – ALP

A bit of a bellwether seat, given the national results are expected to return Labor in some form, let’s say the same for Robertson.

Ryan – GRN

I’ve been pretty down on the chances for the Greens so far (see Brisbane and Griffith), but they really out-did Labor here last time, and they’ll be sure to scoop up the lion’s share of preferences if that repeats.

Shortland – ALP

Labor since 1949, like Reid the only polling saying otherwise was reflecting a single 50-50 split.

Sturt - LIB

Liberal since 1972. The most recent local polling suggests a change here, but I’m not convinced.

Tangney - LIB

Last election was the first time Labor won this seat since 1984. Local polling tends to be breaking their way, and the power of incumbency shouldn’t be underestimated, but if I always played by the numbers there’s be no point commenting at all, so I’m going to take the long-shot and say the Libs could regain this one.

Wannon – LIB

Liberal since 1955, it’s a tall ask to unseat them here. There is, to be sure, some very strong polling for Independent Alexander Dyson – up to 61.9% in one case – but I’m not sure that’ll materialise on the ground today.

Werriwa – ALP

Labor since 1934. Come on.

Final Prediction



That's Labor 74, Coalition 58, 12 Independents (!) plus Katter and Sharkie and two Greens. With two tossups, Labor could reach 76, but minority government is more likely. With such a large cross-bench, though, Labor has plenty of options.

Friday, 7 March 2025

Bonus: WA Electoral Maps

It's been a long while since I last did one of these, but the official maps are not very useful for those who like to fill in a cop at home.

I've made these ones for my personal use, so I figures I might as well post them here for others who may be interested. There is an anti-aliased version to print out and annotate by hand, and an aliased version for use with basic image software.

Anti-aliased:


Aliased:



Sunday, 2 March 2025

New WAs of Voting

Western Australia has changed how it elects its Legislative Council, now adopting a single, state-wide electoral district which elects 37 Councillors through proportional representation. For a Councillor to be elected, then, they need a quota of 1/38th of the votes +1 (disregarding any remainder) or ~2.63% of the vote.

There isn’t, to my knowledge, any polling on people’s voting intentions in the 2025 Legislative Council election. However, historically, voting in the Council and Assembly has been generally comparable.


Notes: This chart only plots parties running in 2025 where they ran in the Legislative Council and Legislative Assembly in the same year.

This is somewhat surprising, as I would have expected the plethora of candidates on upper-house ballots to entice more voters away from the major parties who make up the predominant options in the lower-house.

Given there is little evidence that people vary their voting preference between the Legislative Assembly and Council despite radically different electoral processes, it is fair to assume the relatively minor change in counting method will not significantly divert the average voter.

The equivalence between voting in the two houses only seems to break down significantly when polling below about 1% or 1.5% where parties can perform better in the Council elections with poorer, or virtually absent, Assembly success; this may be a symptom of having candidates in only a handful (or less) Assembly races but access to much larger voter groups in the Council, a phenomena greatly exaggerated under the new system where state-wide exposure is available to Council candidates.

It is also worth noting that polls in the leadup to elections do not tend to overestimate “Other” voters, which one might assume was the case if undecideds weren’t attracted to any major party.

Note: Other here is defined as any party other than Labor, Liberal, National or Greens.

Current polling has Labor at 42%, Liberal at 32%, Greens at 12%, One Nation at 4% and Nationals at 3% of the primary vote.


From this we can safely assume on first preferences, with a little flexibility that’ll all wash out in the preference flows: 16 Labor Councillors, one National, 12 Liberal, four Greens with a fifth well on the way, one One Nation and a good start on a second.

That alone accounts for 34 of the 37 upper house seats, and would require Labor to pick up all three remaining to secure a majority. It’s still a very workable upper-house for Labor without this, though, with the ability to secure a clean majority on left-of-center issues by working with the Greens or on core business-as-usual matters by working with the Liberal party (e.g. supporting employment opportunities and keeping the economy afloat) if the minor parties start becoming too “activist” for the government’s liking.


There are three independents currently in the Legislative Council running in 2025: Kingston, Moermond and (following a recent legal name change) Trump. I don’t see all of these holding onto their seats. A high profile in the South West likely won’t carry any of these, though Mr. Aussie Trump may secure some support from fringe voters enamoured with the state of US politics.

Similar at-the-ballot impressions may favour the Animal Justice Party, Australian Christians, Legalise Cannabis, Stop Pedophiles! and to a lesser extent Libertarian and Sustainable Australia Parties. Shooters, Fishers and Farmers may also get support in key regional areas where they’ve built up a presence.

I’d suspect one of these to cut through on luck of the preference draw (taking a wild guess, based on past successes, Legalise Cannabis), Greens to get their fifth seat with aid of Animal Justice or Sustainable Australia, and One Nation to get their second from preferences of Libertarians and Australian Christians.



WA: The (Polling) Pit and the Pendulum

Western Australia goes to the polls next weekend with what looks like an easy win for Labor. The party has consistently polled 10 points ahead on a two-party-preferred (2PP) basis since 2023 and holds 53 of the Legislative Assembly’s 59 seats.

However, some caution is required; the 2021 electoral results were obviously an aberration deriving in part from a very successful early response in WA to the COVID19 pandemic that largely kept the state open while the east coast suffered with frequent lock-downs and outbreaks. Labour not only secured about 70% of the 2PP vote in 2021, they reduced the seats held by the Liberal party to an extent that made them the minority member of the Coalition. I am not aware of any serious observer who considers this to reflect a new status quo in Western Australian politics, and it would be folly to assume that an electoral prediction could simply draw on 2021 data as a starting point.

Simply drawing on 2021 data as a starting point

We can calculate the anticipated state-wide swing to the incumbent government by subtracting the previous 2PP electoral result (69.7%) from the latest polling numbers (56%) which comes out to -13.7 percentage points.

We can then apply this uniformly to the pendulum calculated by Antony Green and get a feel for which seats are likely to flip.

DISTRICT INCUMBENT ALP MARGIN -13.7 PP
Albany ALP 11.0% -2.7%
Armadale ALP 33.8% 20.1%
Balcatta ALP 25.8% 12.1%
Baldivis ALP 35.8% 22.1%
Bassendean ALP 31.7% 18.0%
Bateman ALP 6.7% -7.0%
Belmont ALP 29.4% 15.7%
Bibra Lake ALP 28.2% 14.5%
Bicton ALP 16.2% 2.5%
Bunbury ALP 22.5% 8.8%
Butler ALP 32.6% 18.9%
Cannington ALP 30.7% 17.0%
Carine ALP 3.9% -9.8%
Central Wheatbelt NAT -9.3% -23.0%
Churchlands ALP 1.6% -12.1%
Cockburn ALP 28.1% 14.4%
Collie-Preston ALP 23.3% 9.6%
Cottesloe LIB -7.4% -21.1%
Darling Range ALP 14.1% 0.4%
Dawesville ALP 13.1% -0.6%
Forrestfield ALP 22.9% 9.2%
Fremantle ALP N/A N/A
Geraldton ALP 9.3% -4.4%
Girrawheen ALP 33.4% 19.7%
Hillarys ALP 18.7% 5.0%
Jandakot ALP 18.2% 4.5%
Joondalup ALP 25.5% 11.8%
Kalamunda ALP 14.5% 0.8%
Kalgoorlie ALP 11.2% -2.5%
Kimberley ALP 21.4% 7.7%
Kingsley ALP 16.9% 3.2%
Kwinana ALP 38.2% 24.5%
Landsdale ALP 25.6% 11.9%
Mandurah ALP 24.2% 10.5%
Maylands ALP 29.3% 15.6%
Midland ALP 26.9% 13.2%
Mid-West NAT -8.6% -22.3%
Mindarie ALP 27.9% 14.2%
Morley ALP 27.9% 14.2%
Mount Lawley ALP 21.9% 8.2%
Murray-Wellington ALP 17.3% 3.6%
Nedlands ALP 3.1% -10.6%
Oakford ALP 27.7% 14.0%
Perth ALP 29.2% 15.5%
Pilbara ALP 17.6% 3.9%
Riverton ALP 10.9% -2.8%
Rockingham ALP 37.7% 24.0%
Roe NAT -12.2% -25.9%
Scarborough ALP 9.5% -4.2%
Secret Harbour ALP 31.3% 17.6%
South Perth ALP 10.1% -3.6%
Southern River ALP 33.1% 19.4%
Swan Hills ALP 27.3% 13.6%
Thornlie ALP 30.6% 16.9%
Vasse LIB -4.3% -18.0%
Victoria Park ALP 27.7% 14.0%
Wanneroo ALP 28.5% 14.8%
Warren-Blackwood ALP 2.2% -11.5%
West Swan ALP 34.8% 21.1%

Notes:
Freemantle is marked N/A, as the 2PP result in that seat was a Labor v Greens race. 
Unsurprisingly most of the seats leaving the Labor fold were held by the Coalition before the 2021 election, and here are assigned to the Liberal or National parties based on the previous incumbent.
Geraldton is given to the Liberal parts, as they won the seat in the 2017 election, though the member defected to the Nationals in 2019.
Albany is given to the Liberals as this party came in second place in 2021 and held the seat in 2001; the Nationals last held Albany in 1956.

On these numbers the Coalition picks up 12 seats (11 Liberal seats and 1 National). This count is hardly surprising; the current 2PP polling (56:44) is quite close to the 2017 electoral results (55.5:44.5) forming the Legislative Assembly prior to the 2021 upset which cost exactly this distribution of seats.

That leaves the Labor party with 47 seats, ignoring Fremantle for the time being, and a safe enough margin to secure majority government even if they also lose the close fights in Bicton, Darling Range, Kalamunda and Kingsley. The Coalition only holds 17 (Liberal 13, Nationals 4).

Forewarning – this comfortable lead will not be substantially shaken by the analysis through the rest of this post.

Back to the Future

Perhaps, if the 2021 election was such an aberration, it is more appropriate to ignore that year entirely and compare current polling to the pendulum as it stood before that date.

As already noted, there is little movement between the 2017 results and the 2025 polling. A uniform swing of +0.5 percentage points is well within the margin of error any of the polls.

DISTRICT INCUMBENT PRE-2021 +0.5 PP
Albany ALP 5.9% 6.4%
Armadale ALP 25.2% 25.7%
Balcatta ALP 8.0% 8.5%
Baldivis ALP 16.6% 17.1%
Bassendean ALP 21.6% 22.1%
Bateman LIB -7.8% -7.3%
Belmont ALP 11.4% 11.9%
Bibra Lake
(Willagee)
ALP 17.7% 18.2%
Bicton ALP 3.6% 4.1%
Bunbury ALP 10.5% 11.0%
Butler ALP 20.5% 21.0%
Cannington ALP 17.6% 18.1%
Carine LIB -10.2% -9.7%
Central Wheatbelt NAT -22.2% -21.7%
Churchlands LIB -11.7% -11.2%
Cockburn ALP 14.3% 14.8%
Collie-Preston ALP 14.7% 15.2%
Cottesloe LIB N/A N/A
Darling Range LIB -3.5% -3.0%
Dawesville LIB -0.8% -0.3%
Forrestfield ALP 9.4% 9.9%
Fremantle ALP 23.0% 23.5%
Geraldton LIB -1.3% -0.8%
Girrawheen
(Mirrabooka)
ALP 23.3% 23.8%
Hillarys LIB -0.4% 0.1%
Jandakot ALP 1.8% 2.3%
Joondalup ALP 0.0% 0.5%
Kalamunda ALP 2.3% 2.8%
Kalgoorlie LIB -6.2% -5.7%
Kimberley ALP 13.1% 13.6%
Kingsley ALP 1.2% 1.7%
Kwinana ALP 20.7% 21.2%
Landsdale ALP 9.6% 10.1%
Mandurah ALP 18.0% 18.5%
Maylands ALP 17.9% 18.4%
Midland ALP 12.8% 13.3%
Mid-West
(NW Central + Moore)
NAT -14.8% -14.3%
Mindarie
(Burns Beach)
ALP 5.4% 5.9%
Morley ALP 12.3% 12.8%
Mount Lawley ALP 4.0% 4.5%
Murray-Wellington ALP 1.7% 2.2%
Nedlands LIB -8.0% -7.5%
Oakford N/A N/A N/A
Perth ALP 12.6% 13.1%
Pilbara ALP 2.2% 2.7%
Riverton LIB -4.2% -3.7%
Rockingham ALP 23.5% 24.0%
Roe NAT N/A N/A
Scarborough LIB -5.7% -5.2%
Secret Harbour
(Warnbro)
ALP 23.7% 24.2%
South Perth LIB -7.2% -6.7%
Southern River ALP 7.9% 8.4%
Swan Hills ALP 12.1% 12.6%
Thornlie ALP 15.8% 16.3%
Vasse LIB -14.6% -14.1%
Victoria Park ALP 16.8% 17.3%
Wanneroo ALP 8.6% 9.1%
Warren-Blackwood NAT -12.8% -12.3%
West Swan ALP 18.4% 18.9%

Notes:
Where seats were renamed, their pre-2023 names are provided in parentheses.
No data is provided for Cottesloe, as the most recent by-election gave a 2PP race between the Liberal and Greens. No data is given for Roe as this 2PP race was Nats against Libs.
Darling Range’s data is also based on a by-election.
Geraldton is shown as a Liberal seat even though, as noted above, the member joined the Nationals during this term. With that candidate no longer incumbent and not running in 2025 it is assumed the Liberals will once again be the Coalition party of choice in the seat.
Mid-West is, roughly speaking, an amalgamation of the preceding districts of North West Central and Moore. These were held by Nationals candidates with a 10.1 and 19.5 PP 2PP lead prior to 2021; this has been averaged to 14.3 PP above.
Oakford did not exist prior to 2023, and thus has no data here.

Applying a uniform 0.5 PP swing to Labor across the pre-election 2021 pendulum gives broadly consistent outcomes: Labor 41, Coalition 15 (Liberal 12, Nationals 3).

Of course, the pre-election pendulum doesn’t take into account the boundary changes in the districts (leading to a few of the issues discussed in the associated notes above). To properly calculate this pendulum in anticipation of Saturday’s election, we should actually go to the WAEC’s breakdown of results by polling place (e.g. Albany’s data at https://www.elections.wa.gov.au/elections/state/sgelection#/sg2017/electorate/ALB/results), develop a formula to resolve where these landed on a 2PP basis from the seat’s distribution of preferences data, then add up the place-by-place results within the new district boundaries. That’s an awful lot of work to moderately improve the utility of 8-year-old data which will then be force-fed into a very crude predictive model.

Instead, I’m going to look at the raw, blunt 2PP shift that resulted from Antony Green’s 2023 calculations (aberrant 2021 data and all) and add or subtract these from the pendulum above. So, for example, Albany was held with a 5.9 percentage point margin going into the 2021 election. Mr Green found the 2023 redistribution took Labor in Albany from a 13.7 PP lead post 2021 to 11.0 PP going into 2025.

That’s a drop of 2.7 PP. If we (naively) assume that is directly applicable back through time, we could say the 2023 boundary change drops the 2017 Albany margin from 5.9 PP to 3.2 PP.

This is called the ‘2023 Shift’ in the table below, and is applied to calculate a new pendulum. Where this column fades to white, it represents a shift that narrows the margin of the seat. Where the colour intensifies, it indicates the seat has become more entrenched. Finally, we apply the same 0.5 PP uniform swing based on polling to predict who wins the seat.


Note: the 2023 Shift for Mid-West is derived by averaging the respective -1.7 and -8.5 shifts of North West Central and Moore.

So Where Does That Leave Us?

We’ve applied polling to three different pendula now. In 50 of these seats, the data agrees across all three:

INCUMBENT 2025 -13.7PP 2021 +0.5PP NEW +0.5PP AGGREGATE
ALP -2.7% 6.4% 3.7%  
ALP 20.1% 25.7% 24.0% ALP
ALP 12.1% 8.5% 8.5% ALP
ALP 22.1% 17.1% 16.0% ALP
ALP 18.0% 22.1% 22.2% ALP
LIB -7.0% -7.3% -7.3% LIB
ALP 15.7% 11.9% 12.1% ALP
ALP 14.5% 18.2% 19.3% ALP
ALP 2.5% 4.1% 4.7% ALP
ALP 8.8% 11.0% 11.0% ALP
ALP 18.9% 21.0% 21.4% ALP
ALP 17.0% 18.1% 18.4% ALP
LIB -9.8% -9.7% -8.3% LIB
NAT -23.0% -21.7% -20.3% NAT
LIB -12.1% -11.2% -10.4% LIB
ALP 14.4% 14.8% 16.2% ALP
ALP 9.6% 15.2% 15.1% ALP
LIB -21.1% N/A N/A  
LIB 0.4% -3.0% -2.4%  
LIB -0.6% -0.3% -1.1% LIB
ALP 9.2% 9.9% 7.3% ALP
ALP N/A 23.5% 22.7%  
LIB -4.4% -0.8% -3.2% LIB
ALP 19.7% 23.8% 23.5% ALP
LIB 5.0% 0.1% -0.2%  
ALP 4.5% 2.3% 0.5% ALP
ALP 11.8% 0.5% -0.3%  
ALP 0.8% 2.8% 5.5% ALP
LIB -2.5% -5.7% -6.5% LIB
ALP 7.7% 13.6% 13.5% ALP
ALP 3.2% 1.7% 1.7% ALP
ALP 24.5% 21.2% 24.6% ALP
ALP 11.9% 10.1% 10.3% ALP
ALP 10.5% 18.5% 17.5% ALP
ALP 15.6% 18.4% 18.4% ALP
ALP 13.2% 13.3% 14.7% ALP
NAT -22.3% -14.3% -17.8% NAT
ALP 14.2% 5.9% 6.9% ALP
ALP 14.2% 12.8% 12.1% ALP
ALP 8.2% 4.5% 4.8% ALP
ALP 3.6% 2.2% 2.3% ALP
LIB -10.6% -7.5% -7.2% LIB
N/A 14.0% N/A N/A  
ALP 15.5% 13.1% 13.0% ALP
ALP 3.9% 2.7% -0.1%  
LIB -2.8% -3.7% -1.8% LIB
ALP 24.0% 24.0% 24.0% ALP
NAT -25.9% N/A N/A  
LIB -4.2% -5.2% -6.1% LIB
ALP 17.6% 24.2% 22.1% ALP
LIB -3.6% -6.7% -6.7% LIB
ALP 19.4% 8.4% 8.4% ALP
ALP 13.6% 12.6% 12.8% ALP
ALP 16.9% 16.3% 16.0% ALP
LIB -18.0% -14.1% -14.1% LIB
ALP 14.0% 17.3% 17.2% ALP
ALP 14.8% 9.1% 9.2% ALP
NAT -11.5% -12.3% -11.4% NAT
ALP 21.1% 18.9% 19.5% ALP

This still gives the Labor party 36 seats, enough to comfortably form a majority government.

The nine undecided seats are:

Albany, which has been a solid Labor district for over two decades. The Shire of Plantagenet is a new addition to the seat with a strong Nationals voting base, but while the Liberals have significantly recovered in the polling data, we’ve not seen similar gains for the Nationals. This’ll surely be a close race, but I’m tipping Labor to hold this one.

Cottesloe, which is a foregone conclusion for the Liberals. This is one of the two seats that the Liberal party held in the onslaught of 2021, and in a year where they make a come-back this is a no-brainer. Cottesloe only appeared as an unclear result because of ‘N/A’ data from pre-2021 – this is due to Labor preforming so poorly here that the 2PP race was between Liberals and the Greens (which the Libs won with a more than 20 PP margin), and there is no real suggestion the Greens could actually unseat the Coalition here.

Darling Range is a genuinely close race. This one really has to be decided by flipping a coin, and on no real basis at all except two of our three calculations turned blue, I’m predicting Darling Range for the Liberals.

Fremantle is under no real threat from the Coalition, and was only flagged for further consideration because on the current pendulum the Coalition doesn’t make it to the 2PP race. This pendulum has Labor’s margin over the Greens at 13.9 in a year when polling suggests the Greens vote is substantially up (more than 50% on last election and a third on 2017). If the Greens are going to win a seat, I’d put my money on Freo (where they did have success in 2009). But this was a by-election with no Coalition participation where the Greens primary vote broke 44%; I don’t see this happening in the 2025 general election and so I’m predicting Labor here.

Hillarys is close on the numbers, with only our outputs from the 2025 pendulum giving a result that’s not within a fraction of a percent of a tie. That said, that’s the pendulum with the aberrant 2021 data baked into it, and I think Hillarys is a perfect example of that behaviour. The district went from a never-red seat to Labor holding over 61% of the primary vote. The numbers say this’ll be a close one, but I think we’ll see a solid return to the Liberals here.

Joondalup is a real flip-flopper of a seat, and Labor won’t hold its 65% primary vote here. Will it turn blue again though? It’s a tossup and probably the closest race in the state this year. But two of our three analyses suggest Labor will hold it, and I backed the Libs on the coin-flip in Darling Range, so for balance let’s call this Labor.

Oakford is the one new district, so there’s not an easily accessible history to draw on. Antony Green’s pendulum gives them a very solid Labor lead, but based on data I think is very, very soft. Oakford’s localities previously sat in the districts of Armadale, Baldivis, Darling Range and Jandakot. Except for Darling Range which is a tossup on our list, these are all Labor seats, and in the first two instances very solidly so. Mr Green’s assessment also has those three districts becoming less Labor-leaning following the distribution, perhaps hinting at some very strong Labor areas being accumulated here. Looking back before the 2023 boundary changes, the Coalition has never won Armadale has (created 1983) or Baldivis (though less impressively; this was formed in 2017 and has only had one member). The Liberals do have a formidable history in Jandakot, but I still have to give the new district to Labor.

Pilbara will be a very close-run race this year. The Liberals haven’t won the seat since Brian Sodeman in 1980, but was taken by the Nationals for one term in 2013. The Nationals have out-polled the Liberals in every election here since they failed to run in 2005, and are the obvious challenger. But they’d have to rely on the swell in Liberal preferences, as the Nationals polling holds steady. Based on very little at all, I’m tipping Labor to hold this seat for now. 

And Roe, a very safe Nationals seat – the safest Coalition seat in the state, and only excluded from the table above by the fact the seat is so supportive of the Coalition that the 2PP race was National vs Liberal. Since 1950 (with a couple of periods where Roe didn’t exist) the Coalition has won every election here (normally by the Nats or their predecessors the Country Party). Which of these parties takes the seat is largely irrelevant to the rest of the state which is only looking to who will give a majority in the Legislative Assembly, but the Nationals regularly outperform Liberals by around 2:1 on primary votes so it seems pretty obvious the Nationals will win this one.

Conclusion

DISTRICT INCUMBENT PREDICTION
Albany ALP ALP
Armadale ALP ALP
Balcatta ALP ALP
Baldivis ALP ALP
Bassendean ALP ALP
Bateman LIB LIB
Belmont ALP ALP
Bibra Lake ALP ALP
Bicton ALP ALP
Bunbury ALP ALP
Butler ALP ALP
Cannington ALP ALP
Carine LIB LIB
Central Wheatbelt NAT NAT
Churchlands LIB LIB
Cockburn ALP ALP
Collie-Preston ALP ALP
Cottesloe LIB LIB
Darling Range LIB LIB
Dawesville LIB LIB
Forrestfield ALP ALP
Fremantle ALP ALP
Geraldton LIB LIB
Girrawheen ALP ALP
Hillarys LIB LIB
Jandakot ALP ALP
Joondalup ALP ALP
Kalamunda ALP ALP
Kalgoorlie LIB LIB
Kimberley ALP ALP
Kingsley ALP ALP
Kwinana ALP ALP
Landsdale ALP ALP
Mandurah ALP ALP
Maylands ALP ALP
Midland ALP ALP
Mid-West NAT NAT
Mindarie ALP ALP
Morley ALP ALP
Mount Lawley ALP ALP
Murray-Wellington ALP ALP
Nedlands LIB LIB
Oakford N/A ALP
Perth ALP ALP
Pilbara ALP ALP
Riverton LIB LIB
Rockingham ALP ALP
Roe NAT NAT
Scarborough LIB LIB
Secret Harbour ALP ALP
South Perth LIB LIB
Southern River ALP ALP
Swan Hills ALP ALP
Thornlie ALP ALP
Vasse LIB LIB
Victoria Park ALP ALP
Wanneroo ALP ALP
Warren-Blackwood NAT NAT
West Swan ALP ALP

That’s a prediction of 41 seats for Labor, 14 for the Liberals and 4 for the Nationals, giving a clear Labor majority in its third term.