A simple, static web page to compare Telstra, Optus and Vodafone (TPG) mobile coverage at an Aussie address, or between two.
🔗 Runs entirely in the browser Live demo
Coverage comes from open Australian Government data and is an approximate, predictive estimate. It is not the carriers' live maps.
A data-version toggle lets you switch between the 2025 ACCC Mobile Infrastructure Report (default) and the earlier 2021–22 dataset, and each compares all three networks side by side.
From 30 June 2026, the ACMA's Telecommunications (Mobile Network Coverage Maps) Industry Standard 2026 requires carriers to publish standardised 4G/5G maps labelled good / moderate / basic / no coverage, and the ACCC has warned providers that coverage claims must line up with those maps. This tool helps consumers compare and sanity-check, then points them at the official, standard-compliant maps.
| Concern | Source | Notes |
|---|---|---|
| "Is this address covered by carrier X?" (2025, default) | ACCC Mobile Infrastructure Report 2025 (ArcGIS query, point-in-polygon) |
Open, keyless, CORS-open. "Total Outdoor" layers: 20 = Telstra, 14 = Optus, 25 + 31 = TPG (own + its coverage on Optus under the MOCN deal) |
| "Is this address covered?" (2021–22, baseline) | Infrastructure RKR by-provider | Layers: 0 = TPG, 1 = Optus, 2 = Telstra |
| Map overlay | Same service as the selected version, ArcGIS export image per viewport |
Rendered under a Leaflet base map |
| Advanced: compare on the map | ArcGIS export with a dynamicLayers renderer override, one overlay per layer |
Overlay any networks' Coverage / 5G / 4G at once. Colour = network; within a network 5G is vivid, 4G lighter. A colour-blind toggle gives each network×technology combo its own fill shape (Telstra 4G ╱ / 5G ╲, Optus 4G — / 5G ❘, Vodafone 4G ✕ / 5G +; total coverage stays solid) so any overlays are distinguishable without colour. 5G/4G are 2025-only; Vodafone includes its MOCN coverage on Optus. (3G retired — not shown.) Each layer is separate, so toggling one is instant and never re-renders the others. |
| Advanced: tower sites | sites service (2022), queried by map extent | Tower sites in the current map view (no address needed), loaded once zoomed in and coloured by carrier — the selected network, or all three |
| Address → coordinates | OpenStreetMap Nominatim | ≤1 req/sec, cached, no autocomplete. Prefers a precise address/town point over an admin-boundary (LGA) centroid, and warns when only an area centroid is found |
| Base map tiles | OpenFreeMap vector tiles (MapLibre GL, rendered inside Leaflet) | Keyless, no registration, no usage limits, commercial use allowed. Data © OpenMapTiles / OpenStreetMap. Falls back to OpenStreetMap raster tiles if WebGL is unavailable |
| Distance / "between" | Haversine + great-circle sampling (pure JS) | Straight line, not road route |
The carriers' own maps are proprietary — they can't be legally/technically overlaid on a static site — which is exactly why the app leans on the open government dataset for comparison and deep-links to each carrier for the authoritative detail.
- Government data is predictive, not measured, and still lags the carriers' live maps (which are updated at least quarterly under the 2026 standard).
- The 2021–22 dataset understates Vodafone (TPG) (its regional reach grew via the later Optus network-sharing deal); the 2025 dataset fixes this by including TPG's MOCN coverage.
- Most Telstra MVNOs ride the smaller Telstra Wholesale footprint (Boost is the exception) — so non-Boost Telstra brands may get less than the shaded Telstra area. The open data has no separate wholesale layer, so this is flagged with a note + a link to Telstra Wholesale's own map.
- Geocoding prefers a precise address or town/suburb point over a shire/LGA-centroid match, and warns when only an area centroid is found — but for best accuracy enter a full street address.
- The on-map colour comparison (Coverage / 5G / 4G per network) shows the network footprints; per-carrier 5G/4G exist only in the 2025 data. 3G was shut down in 2024, so it isn't offered.
It's static, but geocoding wants an HTTP origin (not file://), so serve the folder:
python3 -m http.server 8000
# then open http://localhost:8000or in your tool of choice.
- Create a repo and push these files to
main. - Settings → Pages → Build and deployment → Source: GitHub Actions (a workflow is included at
.github/workflows/deploy.yml), or choose Deploy from a branch → main → / (root). - Your site publishes at
https://<user>.github.io/<repo>/.
The included .nojekyll stops GitHub from touching the asset paths.
index.html # page structure + content (works without JS for the official links)
styles.css # mobile-first, high-contrast, WCAG 2.2 AA
js/config.js # endpoints, layer IDs, carrier→brand mappings, tunables
js/geo.js # Haversine + great-circle sampling (pure maths)
js/services.js # geocoding + coverage queries (all network I/O)
js/map.js # Leaflet map + dynamic government overlays
js/app.js # UI controller: form, toggles, results, accessibility
- The flow is address → map (with the network/technology layer filters) → text results below; the text results are the source of truth and the map is a labelled visual enhancement.
- Network/technology layers are
aria-pressedtoggle buttons; labelled inputs;aria-liveresult announcements. - Keyboard operable, visible focus, no colour-only meaning, reflows at 320px / 200% zoom,
forced-colorsandprefers-reduced-motionsupport. - A colour-blind pattern mode (advanced) gives each network×technology combo its own fill shape (Telstra ╱╲, Optus —❘, Vodafone ✕+) so overlays are distinguishable without relying on colour.
Everything runs client-side, straight from the browser — no backend, no API key. The app queries or renders data from four external services, and deep-links out to each carrier's own checker. Below is every source, what it provides, and a link to that root domain's terms of use and privacy policy.
| Source | What it provides | Terms of use | Privacy policy |
|---|---|---|---|
Australian Government spatial portal — spatial.infrastructure.gov.au (Dept of Infrastructure, Transport, Regional Development, Communications, Sport & the Arts). Data originates from the ACCC Infrastructure RKR audit / Mobile Infrastructure Report; licensed CC BY 2.5 AU. |
Coverage polygons (point-in-polygon "is it covered?" + map overlays) and mobile tower/site points | infrastructure.gov.au/copyright · disclaimers | infrastructure.gov.au/privacy |
ACCC — accc.gov.au (originator of the coverage dataset) |
The Mobile Infrastructure Report underlying the data above | Disclaimer & copyright | Privacy policy |
OpenStreetMap / Nominatim — nominatim.openstreetmap.org (OpenStreetMap Foundation) |
Geocoding (address → coordinates). Bound by the Nominatim Usage Policy: ≤1 req/sec, cached, no autocomplete | OSMF Terms of Use · data © OSM contributors | OSMF Privacy Policy |
OpenFreeMap — tiles.openfreemap.org (openfreemap.org) |
Base map vector tiles (rendered via MapLibre GL inside Leaflet). Keyless, no limits, commercial OK | Terms / FAQ · OpenMapTiles licence | Privacy — no cookies, no user data |
unpkg — unpkg.com (community CDN, served via Cloudflare) |
Delivers the Leaflet (1.9.4, BSD-2) and MapLibre GL (4.7.1, BSD-3) libraries + the Leaflet↔MapLibre bridge |
unpkg project (no formal ToS published) | Privacy policy |
unpkg caveat: unpkg is a best-effort community CDN with no uptime guarantee or formal terms. The version is already pinned; for production, consider self-hosting Leaflet or serving it from a CDN with a published SLA.
- Dataset (authoritative landing page): ACCC Mobile Infrastructure Report – data release on data.gov.au — the ACCC's Audit of Telecommunications Infrastructure Assets (Infrastructure RKR), sourced from Telstra, Optus and TPG. Licensed CC BY 2.5 AU.
- Live services the app actually calls (open any in a browser to inspect the layers):
- 2025 —
Mobile_Coverages_and_Sites_ACCC/MapServer. "Total Outdoor" layers used:20Telstra,14Optus,25+31TPG (own + its coverage on Optus under the MOCN deal). Per-technology Outdoor: 5G18/12/23,29; 4G19/13/24,30. - 2021–22 —
Communications/Mobile_Phone_Coverage_by_provider/MapServer. Layers:2Telstra,1Optus,0TPG. - Tower sites (2022) —
Communications/Mobile_Phone_Sites/MapServer, filtered by theMNOfield.
- 2025 —
All of these endpoints and layer IDs live in js/config.js under gov.versions, so they're easy to check or update if the services change.
The tool never scrapes or overlays the carriers' own maps — they're proprietary. It sends you to each carrier's official checker for the authoritative answer, so that carrier's own terms and privacy apply once you click through:
| Carrier | Coverage checker | Terms of use | Privacy policy |
|---|---|---|---|
| Telstra | our-coverage | Terms of use | Privacy |
| Telstra Wholesale (non-Boost MVNO footprint) | coverage map | Legal — Privacy & Terms | Legal — Privacy & Terms |
| Optus | living-network/coverage | Legal | Privacy |
| Vodafone (TPG) | coverage-checker | Website terms of use | Privacy |
- Coverage & tower data © Commonwealth of Australia — ACCC Audit of Telecommunications
Infrastructure Assets (Infrastructure RKR) / Mobile Infrastructure Report, via
spatial.infrastructure.gov.au. Licensed CC BY 2.5 AU. - Geocoding & map data © OpenStreetMap contributors (Nominatim), under the ODbL.
- Base map © OpenFreeMap / OpenMapTiles, data © OpenStreetMap contributors.
- Leaflet — BSD-2-Clause. MapLibre GL JS — BSD-3-Clause.
Telstra, Optus and Vodafone are trademarks of their respective owners, used here nominatively to identify each network. This is an independent tool, not affiliated with or endorsed by any carrier.
This project's own code is released into the public domain under
The Unlicense — do whatever you want with it, no attribution required.
See LICENSE.
The data the app displays is not ours to relicense — keep its attributions (ACCC coverage data
under CC BY 2.5 AU, OpenStreetMap/Nominatim, OpenFreeMap/OpenMapTiles, Leaflet, MapLibre GL).
Details in LICENSE.
Contributions welcome — the carrier→brand lists in js/config.js and index.html drift over time;
PRs to keep them current are appreciated.
