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.
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.