How We Built Our Own Antony Green
Booth-level redistribution analysis using geocoding and GIS boundary mapping
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.