Data Methodology

Broadband (NBN)

Bill Hero's NBN broadband dataset covers all publicly available residential plans from Australian retailers, scraped daily at 4am AEST from CIS documents linked on retailer offer pages, with structured fields for speed tier, contract, modem offer, and monthly price.

What this dataset covers

All publicly listed residential NBN plans from Australian broadband retailers. A plan is included if the retailer publishes a Critical Information Summary (CIS) document linked from a publicly accessible offer page, as required under the Telecommunications Consumer Protections (TCP) Code.

Excluded: business-only plans; plans sold exclusively via direct sales channels without a public CIS link; bundled plans that combine broadband with mobile or entertainment services where the broadband component price is not separately stated; and plans restricted to new customers in a specific development or estate.

Sources

Plan data is collected by au-telco-scraper, an internal scraper maintained by the Bill Hero team. The scraper extracts plan details from CIS documents and offer pages across all major NBN retailers. Bill Hero pulls from the scraper's API endpoint daily.

The upstream scraper runs its full pass at approximately 2am AEST. Bill Hero's ingest fires at 4am AEST, giving the scraper roughly two hours to complete before we pull the updated dataset. Plans are matched to a canonical provider registry by provider ID, so carrier slugs in the feed are normalised regardless of how each retailer names itself on its offer page.

Refresh cadence

Plans are refreshed daily at 18:00 UTC (4am AEST). The ingest pipeline deletes and re-inserts records for each plan identified by the scraper's canonical plan_id, making each run idempotent. After insertion, the updated broadband table is synced to the production database (Turso) within the same workflow run. The source_captured_at field in the JSON feed reflects when the upstream scraper last observed each plan, which may be slightly earlier than the Bill Hero ingest timestamp.

Speed tier methodology

Two speed fields are stored per plan. The speed_down_mbpsfield is a structured integer representing the plan's maximum download speed in megabits per second — this is the field used for all filtering and comparison logic. The speed_tierfield contains the raw text string from the retailer's CIS document (e.g., "NBN 100/20", "Superfast", "100 Mbps") and is inconsistently formatted across retailers. Callers should use speed_down_mbps for any programmatic use.

Standard NBN speed tiers in the dataset: 25, 50, 100, 250, and 1000 Mbps download. Plans at non-standard speeds (e.g., 20 Mbps legacy plans) are retained with their actual recorded speed. Upload speeds are captured in speed_up_mbps where stated.

NBN technology type

The tech_type field records the NBN access technology: FTTP (Fibre to the Premises), FTTC (Fibre to the Curb), FTTN (Fibre to the Node), FTTB (Fibre to the Building), HFC (Hybrid Fibre Coaxial), FW (Fixed Wireless), or SAT (Sky Muster Satellite).

Many retailers publish plans that are available across multiple technology types without separately listing them. Where a plan's CIS does not specify a technology type, the field is null. Technology-type availability for a specific address is a function of the NBN Co network map, which is outside the scope of this dataset.

Modem offer field

The modem_offer field (boolean, added May 2026) indicates whether the plan includes a modem or router offer at the time of scraping. A value of true means the retailer advertises a modem included, bundled, or offered at no additional charge with this plan. The field does not distinguish between unconditional inclusion, contract-bundled offers, or mesh system upgrades — retailers vary in how they describe modem offers, and the scraper captures the presence of an offer, not its precise terms. Refer to the retailer's CIS for the full conditions.

How prices are stated

Monthly prices in monthly_price_aud are the standard ongoing monthly rate as advertised by the retailer, GST inclusive. Promotional first-month discounts and introductory pricing periods are not modelled; the ongoing price is used throughout. Setup fees are captured in a separate setup_fee field and are not amortised into the monthly price.

Known limitations

The dataset captures advertised prices; it does not model whether a specific household can actually get NBN service at any given speed tier, which depends on their address and the local network technology deployed by NBN Co.

Promotional first-N-months discounts are not separately modelled. A plan advertised at $49/month for the first 6 months and $79/month thereafter will appear in the dataset at $79/month (the ongoing rate). This is intentional: ongoing-rate comparisons are more meaningful for long-run cost.

Bundled plans that combine broadband with mobile or streaming services are excluded because their total price is not directly comparable to standalone broadband plans. If a retailer offers its NBN plan only as part of a bundle, that plan will not appear in this dataset.

Verification & corrections

Errors in broadband data can be reported to data@billhero.com.au. Omissions or corrections are typically applied within 48 hours of verification.

Licence & attribution

Published under Creative Commons CC-BY-4.0. Attribution required: "Data via Bill Hero (billhero.com.au)". Commercial republication is permitted with attribution; bulk redistribution is rate-limited at 10 req/s per IP.

Citation format

Bill Hero (2026). Australian NBN Broadband Plans Dataset. https://billhero.com.au/data/broadband. Accessed [date]. CC-BY-4.0.

@misc{billhero2026broadband,
  author    = {{Bill Hero}},
  title     = {Australian NBN Broadband Plans Dataset},
  year      = {2026},
  url       = {https://billhero.com.au/data/broadband},
  note      = {Accessed [date]. CC-BY-4.0. Scraped daily from retailer CIS documents.},
}