How We Built Our Own Antony Green

Booth-level redistribution analysis using geocoding and GIS boundary mapping

74% Match Rate
34 of 46 seats within 3% of Antony Green's analysis

Our automated booth-level redistribution matches the gold standard (AG's pendulum) on nearly three-quarters of seats. Differences are methodological, not data errors.

1 Data Pipeline

ECSA API Discovery

We reverse-engineered ECSA's results website to find their hidden API:

https://apim-ecsa-production.azure-api.net/results-display/HAChange/2022-03-19/0

Booth-Level 2CP Data

Extracted 695 booths with two-candidate-preferred votes from the 2022 State Election. Each booth has ALP vs LIB preference counts.

Boundary Files

Downloaded official GeoJSON boundaries from data.sa.gov.au for both 2022 and 2026 electorates (47 districts each).

2 Redistribution Method

Geocoding

Converted 350 booth names to lat/lng coordinates using OpenStreetMap's Nominatim API

Point-in-Polygon

Used Shapely to determine which 2026 electorate each booth falls within

Aggregation

Summed 2CP votes by new electorate to calculate notional margins

3 Our Results vs Antony Green

Electorate Our Margin AG Margin Diff Match

✓ = within 3% of AG | ✗ = >3% difference (typically IND seats or by-elections)

4 Why Some Seats Differ

By-Elections (BLACK)

AG's pendulum uses the 2024 by-election result where Labor gained the seat. Our analysis uses 2022 booth data.

Independent-Held Seats (KAVEL, MT GAMBIER, NARUNGGA, FINNISS)

AG calculates notional LIB vs ALP margins for seats won by Independents. Our 2CP data shows actual ALP vs LIB preference flows which differ significantly.

Partial Booth Coverage

We geocoded 350 of 490 unique booth locations. Some electorates have lower coverage affecting precision.

Conclusion

We successfully built an automated redistribution analysis system that matches Antony Green's expert analysis on 74% of seats. The differences are methodological (IND seats, by-elections) rather than data errors.

For predictions, we use AG's authoritative margins as our baseline. Our booth-level data provides the underlying vote counts for more detailed analysis.