Using the model under-pinning our 2022 Australian federal election forecast, we run 10,000 simulations at each of the provided two-party-preferred (2pp) votes below to see how expected probabilities shift in individual electorates and across the electoral map change.
You can either opt to run the model as if the current polling was at the 2pp below (the “polling” option) or assuming the 2pp input would be replicated across the country on election day (the “election results” option). Note that the latter does not include the possibility of polling error (as it’s meant to replicate an election result).
I would also caution you against using the results of this tool to try and vote tactically in your electorate. The 2-candidate-preferred (2cp) figures displayed below are conditional on the candidates in question making the final two; hence the 2cp displayed is likely higher than if the candidate was included in the final two all the time (especially for candidates who don’t usually make it into the final two).
In those cases, you would expect the Greens to do better than Labor would against the LNP, but that doesn’t mean that you should expect the Greens to better than Labor against the LNP if you calculated GRN-vs-LNP 2cps in most possibilities (or, for that matter, if all Labor voters who prefer the Greens to the LNP switched to the Greens).
If you like models and analyses like these, please consider supporting us on Patreon or donating to us using the PayPal button on the sidebar.
Seat total predictive intervals
Labor
Lib/Nat
Greens
One Nation
Palmer’s UAP
All others
76 for majority
0
5
10
15
20
30
40
50
60
70
80
90
100
110
120
130
140
151
Predicted electoral map
Vote share confidence intervals
Labor
Lib/Nat
Greens
One Nation
Palmer’s UAP
All others
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
Note that vote share and 2cp quantiles have been rounded to better convey the precision of the forecast.
Seat-by-seat probabilities
The table below displays the number of times each party/grouping won each electorate in every 100 simulations for the two-party-preferred input above.
Note: not an estimate of the vote each party/grouping is expected to win in each electorate.
How does this model work?
Every time I run the model, it grabs 10,000 simulations from the 100,000 simulations generated by the full election forecast, and then adjusts them such that they match up with the 2pp we want to model.
To do so, it first derives primary vote estimates by looking through all 100,000 simulations for simulations where the 2pp was within +/- 0.5% of the 2pp we want to model, and then averaging the primary vote in those simulations. For example, if we wanted to model L/NC 50, we’d average the primary vote estimates for all simulations where the 2pp was between L/NC 49.5 and L/NC 50.5.
For polling simulations, we then adjust the 2pp lead down to account for the historical tendency of polls to tighten as election day approaches. Additionally, we also generate deviates from the average primary vote estimates derived above using the historical average accuracy of a single federal poll. This means that the uncertainty in this model will generally be higher than the uncertainty in our federal forecast.
For election-result simulations, we do generate primary vote deviates using the variance in primary votes for a given 2pp (simulations used are within +/- 0.1% of that 2pp). This is to simulate the possibility of a major party getting the same 2pp with different primary votes; e.g. a polling error solely between ALP and GRN or a polling error between ALP and OTH but with preference flow shifts to compensate.
We then adjust the primaries to ensure that the average 2pp in our simulations is equal to the 2pp we’re looking for. Next, we simulate an expected primary vote in each electorate using a similar methodology in our SA and federal election forecasts. The electorate-level primary vote simulations grabbed from earlier are then adjusted such that they match the ‘expected’ primary vote for modelled 2pp. This is a computationally cheaper way to simulate electorate-level variance without having to generate a new set of correlated deviates for each electorate.
From there, we calculate 2pp and 2cp for electorates where the final two are confirmed (i.e. the candidate with the 2nd highest primary has at least 33.3% of the vote) using historical preference flow data in similar matchups, with preference flow deviates generated using the variance in the historical data (and uncertainty – e.g. there haven’t been very many PHON vs ALP contests so the uncertainty is higher there). For electorates where the final two isn’t clear (i.e. the candidate with the 2nd highest primary has less than 33.3% of the vote), we simulate an iterated distribution of preferences using historical distribution-of-preferences data to get a 2cp estimate.
Data on vote quantiles, seat total quantiles, electorate winners and 2cp estimates is then collated for this model.
Do you intend to provide the option to simulate different primary votes?
No. At least, not for this election, and I doubt I will do it for future elections. It is already very computationally expensive to run 10,000 simulations 42 times (21 steps of “polled” 2pp, and 21 steps of “election result” 2pp) and the full model takes over two hours to run on my computer despite being fully parallel on every single processor core my poor computer has. During that time, the computer becomes practically unusable; I can only imagine how much time I would lose out of a day if the model had to simulate primary votes for six groupings (currently Labor, Coalition, Greens, One Nation, Palmer’s UAP and all others) especially considering the combinatorics of such an endeavour (even if I only provided three options per grouping, that’s 126 times I have to run the simulations, not including the different polling/result simulations).
I’m also not convinced it would be of much benefit (especially if I have to limit primary vote options to ensure the model doesn’t take ages to run), unless the major-party vote falls to the point where two-party-preferred is no longer a relevant metric.