NSW 2019 – lower house swing map and new pendulum


Counting has now concluded for the Legislative Assembly as part of the New South Wales state election – the Legislative Council will be concluded on Friday Monday.

In this post I am featuring a map of the two-candidate-preferred (2CP) vote across New South Wales at the booth level, as well as the 2CP swing where appropriate.

I have also assembled the new NSW post-election pendulum, which tells us something about the challenge in front of Labor in 2023.

Firstly, the map. I have plotted every ordinary election-day booth across the map, showing the winning two-candidate-preferred vote. The size of the number reflects how large the booth is. Booths with a majority for Labor are in red, Liberals and Nationals are in blue, Greens are in green, and independents and Shooters are in yellow/orange. Colours are darker where a majority was 55% or more.

You can also toggle the map to show the 2CP swing. I have no swings in six seats where the 2019 top two is different to any combination available in 2015. These seats are Barwon, Cabramatta, Dubbo, North Shore and Wagga Wagga. Sorry, the swing maps are blank for these seats. Secondly, I matched booths between 2015 and 2019 but did not make an effort to account for booths which do not have a match. So in some cases it’s possible the swings may look extreme where a booth has been abolished or created. For example, there’s one booth in Coogee with a swing of 20% to the Liberal Party. Still, I think the map is useful at giving a sense of the general trends.

I won’t spend much time analysing this data. It’s mostly the same as the data I used for my previous posts focusing on particular areas such as southern Sydney, the inner west, the north coast and western NSW.

Secondly, I have assembled a post-election pendulum at the end of this post. You can compare this to the pre-election pendulum.

Firstly, we are a lot closer to the Coalition losing its majority than we were before the election. The Coalition needed a uniform swing of 3.2% and a loss of six seats to lose their majority. That figure is now a uniform swing of just 1.3% and a loss of two seats to lose their majority, with East Hills and Penrith standing out as the most marginal Coalition seats.

Labor has a lot fewer marginals of its own. Labor previously held seven seats by margins of less than 5%, and 16 held by margins of less than 10%. Now they only hold three seats by margins of under 5%, and twelve seats by margins of under 10%. Part of Labor’s success last month was consolidating their own base which fractured in 2011.

The task needed for Labor to win a majority, however, doesn’t look any easier than before March 23.

Labor needed to win thirteen seats to form a majority, which would have been achieved with a uniform swing of 8.7%. They now need eleven seats, which could be achieved with a uniform swing of 7.6%. Of course, swings are never uniform, but it gives you a sense of the scale needed.

Finally I need to mention that this pendulum is useful to give you a sense of where the parties now stand, but it will never be used in an election. The boundaries of NSW state electorates will change between now and 2023, and thus the margins of these key seats will change, although the overall shape of the pendulum will likely look similar.

Coalition Seats Labor Seats
Seat Margin Seat Margin
East Hills LIB 0.5% Lismore ALP 1.3%
Penrith LIB 1.3% Coogee ALP 1.6%
Dubbo NAT 2.0% vs IND Kogarah ALP 1.8%
Upper Hunter NAT 2.6% Strathfield ALP 5.0%
Holsworthy LIB 3.3% The Entrance ALP 5.2%
Goulburn LIB 3.5% Port Stephens ALP 5.8%
Heathcote LIB 5.0% Londonderry ALP 6.5%
Tweed NAT 5.0% Gosford ALP 7.3%
Riverstone LIB 6.3% Granville ALP 7.6%
Seven Hills LIB 6.4% Maroubra ALP 8.5%
Bega LIB 6.9% Auburn ALP 9.1%
Camden LIB 7.6% Rockdale ALP 9.5%
Ryde LIB 9.0% Swansea ALP 10.6%
Myall Lakes NAT 9.2% Prospect ALP 10.7%
Oatley LIB 10.5% Charlestown ALP 12.4%
Parramatta LIB 10.6% Wyong ALP 12.4%
South Coast LIB 10.6% Cabramatta ALP 12.9% vs IND
Coffs Harbour LIB 10.8% Canterbury ALP 13.0%
North Shore LIB 11.1% vs IND Maitland ALP 13.2%
Mulgoa LIB 11.3% Bankstown ALP 13.8%
Monaro NAT 11.6% Macquarie Fields ALP 14.8%
Kiama LIB 12.0% Blue Mountains ALP 14.9%
Terrigal LIB 12.3% Heffron ALP 15.1%
Epping LIB 12.4% Mount Druitt ALP 16.4%
Manly LIB 12.9% vs GRN Summer Hill ALP 16.5% vs GRN
Wollondilly LIB 13.8% Liverpool ALP 16.7%
Lane Cove LIB 14.3% Campbelltown ALP 17.0%
Clarence NAT 14.5% Blacktown ALP 17.7%
Miranda LIB 14.6% Newcastle ALP 17.7%
Oxley NAT 14.9% Fairfield ALP 17.9%
Drummoyne LIB 15.0% Shellharbour ALP 18.3%
Albury LIB 16.0% Cessnock ALP 19.3%
Hornsby LIB 16.3% Keira ALP 19.7%
Hawkesbury LIB 17.5% Wollongong ALP 21.4%
Bathurst NAT 17.9% Lakemba ALP 22.4%
Baulkham Hills LIB 18.7% Wallsend ALP 25.4%
Vaucluse LIB 19.3% vs GRN
Cronulla LIB 19.6%
Port Macquarie NAT 20.3%
Ku-ring-gai LIB 20.5% Murray SFF 3.5% vs NAT
Wakehurst LIB 21.0% Ballina GRN 5.4% vs NAT
Willoughby LIB 21.0% Barwon SFF 6.6% vs NAT
Pittwater LIB 22.4% Balmain GRN 10.0% vs ALP
Castle Hill LIB 24.7% Sydney IND 11.8% vs LIB
Davidson LIB 25.5% Newtown GRN 13.8% vs ALP
Cootamundra NAT 27.1% Orange SFF 15.2% vs NAT
Tamworth NAT 29.5% Wagga Wagga IND 15.5% vs LIB
Northern Tablelands NAT 32.8% Lake Macquarie IND 22.1% vs ALP
Liked it? Take a second to support the Tally Room on Patreon!
Become a patron at Patreon!


  1. Hi Ben!

    Do you have a general sense about what the statewide 2PP swing to Labor was?

    Just curious at this stage.

  2. Hi Wreathy – the 2PP is going to end up (roughly) being 53.2 to Coalition and 46.8 to ALP. That’s be a swing of approx 1.2%.

  3. In Coffs Harbour, the TCP figures are shown as red/blue Labor vs Nat going by the Red Rock booth where Labor won the TPP, but Labor didn’t make the last two candidates once preferences were distributed, Independent Sally Townley did. NSWEC still has a Labor v Nat booth TCP count, so I’m not even sure the correct TCP is available at booth level for Nat vs Ind, as it should be.

Comments are closed.