Shipping most weeks · 82 updates

What's New

New data layers, features and improvements to DA Leads. We ship often — this is where it lands.

August 2026
Fixed

Coverage notes now follow more source-level licence exclusions

Property Intelligence coverage notes now remove claims for excluded NSW, VIC and Queensland planning sources and for excluded SPEAR development applications, while retaining claims for sources your key can still receive. The response continues to name the excluded source IDs under the per-key delivery scope and points to meta.delivery_policy_applied for the machine-readable policy.

Fixed

Childcare Polygon reports now verify their location context

Childcare Polygon reports without a verified suburb now identify the catchment by its centre coordinates instead of producing an unlocated generic title. A supplied suburb is used for ABS demographic context only when a development record inside the Polygon carries the same locality; otherwise the response withholds those demographics and reports the validation result in scope.filters.

New

Project intelligence fields are staged behind explicit access

The DA API now documents opt-in application identity and evidence-backed fact expansions, together with a versioned project endpoint. These fields are behind an explicit Project Intelligence entitlement: existing API keys, default /api/v1/das responses, record counts and categories are unchanged.

The identity layer can preserve official application aliases without folding or removing the original DA rows. Candidate matches are not returned. Project facts are returned only when a field has passed its own evidence and accuracy gate; no evaluated field currently passes that gate, so the new fact expansion is empty rather than publishing unverified values. Coverage will differ by publisher and state as official sources are added and independently checked.

Fixed

Suburb unemployment now comes from the 2021 Census, at suburb scope

A suburb page carried two unemployment rates that disagreed with each other. The written summary used the ABS 2021 Census figure for the suburb; the tiles above it used a quarterly figure from the Department of Employment and Workplace Relations Small Area Labour Markets series. Hobart read 13.1% in the text and 5.5% in the tile. Bridgewater read 11.8% and 20.2%.

The tile was the wrong one. SALM is only published for SA2 regions and local government areas. There is no suburb-level series, and we had been attaching the nearest same-named SA2 region to each suburb, averaging the rate where several matched and adding up the head counts. An SA2 region is usually much larger than the suburb that shares its name, so the labour force printed on a suburb page frequently described a different area: Cambridge in Tasmania has 1,454 residents and the page showed a labour force of 4,996. Across the 2,783 suburbs carrying that data, 1,523 of them showed a labour force larger than the suburb's own population.

Unemployment, labour force, unemployed and participation now all come from the 2021 Census, counted on the suburb's own boundary, and every tile says so. The quarterly trend chart and its SALM caption are gone, because there is no suburb-level quarterly series to draw. This trades freshness for scope: the Census is five years old and will read as stale for suburbs that changed sharply since, which is why the year is printed next to the figure.

Two smaller corrections came with it. The Employed count was missing people who were employed but away from work in the Census week, and the Part-time share was derived by subtracting the full-time and unemployment shares from 100, which mixes two different denominators. Both are now counted directly. Full-time and part-time are shares of the employed and are not expected to add to 100, since the remainder is the away-from-work group.

SALM data is still collected. It no longer appears on suburb pages or in the public map panel.

Fixed

Suburb employment rates, family composition and occupations corrected

Four Census fields on suburb pages were built from column names that do not exist in the ABS 2021 DataPack. A name that does not exist reads as zero, so the numbers stayed plausible while being wrong.

Employment. People who were employed but away from work in the Census week were left out of the labour force, which inflated unemployment and deflated participation on every suburb. Carlton was published as 12.3% unemployment and 58.7% participation; the ABS gives 11.4% and 63.2% in the same row, and those are the figures now shown. Across the 545 Victorian suburbs with a labour force of 1,000 or more, participation was previously out by a median of 4.0 points and up to 6.2; it now matches the ABS to the rounding.

Single parent families. The share was zero on every suburb, so the tile never appeared. It is now published: Carlton 13.8%.

Family composition. Couples with and without children were counted in people rather than in families, while being labelled as composition shares. They are now family counts, so the shares changed: Carlton couples without children moves from 48.9% to 59.1%. "Couples with children" also now includes couples whose children are all 15 or over, which the previous figure dropped.

Occupations. Technicians and trades workers never appeared in any suburb's occupation list. The category is now present, and it is one of the three largest occupations in 620 of the 936 Victorian suburbs that report at least 200 people across all eight occupation groups, the largest in 192 of them.

Ancestry, languages, housing stress, volunteering and need for assistance are unchanged. The importer now validates every DataPack header it reads and fails the import rather than treating an unknown column as zero.

Changed

Childcare register content withdrawn pending publisher consent

Childcare content sourced from the ACECQA national registers is withdrawn from every DA Leads surface. ACECQA's website terms licence the registers for personal and non-commercial use; commercial reproduction or distribution requires the publisher's prior written consent, which we do not hold. This content returns if and when that consent exists. Like the ACARA removals this is a licensing withdrawal rather than a defect, so it is announced as we act rather than with notice.

  • The map's register-backed childcare layer is gone, together with its NQS rating filter and hover cards, and that tile source is retired. In its place a locations-only childcare layer now draws from the Overture Maps places dataset (CDLA-Permissive-2.0): names and points, no ratings, and its coverage is Overture's, not the register's.
  • /api/map/features-at's childcare collection now carries Overture location rows only (data_source: "overture_places": name and point, no ratings or places), with an explicit childcare_status of withheld_pending_publisher_consent recording that register quality facts are withheld. Overture's coverage is thinner than the register's, so an empty or short list is not a finding about how many services exist near the point.
  • /api/v1/property no longer delivers poi.childcare_500m on any key, and the keyless sample carries no register rows.
  • The childcare site screening memo no longer includes existing operating services, their ratings or approved places. It leads with what is ours to sell: our tracked application pipeline, the planning screen, ABS demand and open-register school access. The memo says explicitly that supply facts are withheld rather than rendering a blank.
  • Articles built on register aggregates are unpublished, and blog illustrations that plotted named services in rating colours are retired.
  • Schools are unaffected. School points, catchments and attributes come from the state education open registers under their own licences.

If you stored earlier responses or exports containing register rows, treat that content as subject to ACECQA's terms rather than ours: we cannot licence what we do not hold.

Changed

The documentation snapshot gate has been removed

Property Intelligence keys could be bound to a SHA-256 of the deployed API contract, and a mismatch between the two returned 403 until the binding was updated. That gate has been removed. meta.documentation still identifies the deployed contract and remains useful for pinning a release in your own logs, but it no longer governs access and cannot refuse a request. What protects a licensed customer is unchanged: this changelog, the five business days written notice before a planned breaking change, and the variation clause in each licence. The API documentation as at a licence's Effective Date remains that licence's initial technical baseline. The 8 August entry below describes the earlier behaviour and stands as a record of it.

Fixed

Council application links corrected and classified

Development application links now distinguish a reference-specific council page from a general register or search entry. Each DA in the Property Intelligence response carries an additive council_url_type:

  • application_record means the URL is constructed for that application reference. It does not guarantee that the council site is currently online or that the publisher has retained the record.
  • search_entry means the publisher supplies only a general register or enquiry entry and the application reference must be searched manually.
  • unknown means DA Leads cannot safely classify the destination.

Brisbane Development.i links no longer pass the public DA number to an internal document identifier parameter, which could open an empty results table. Melbourne planning permit links now use the public permit reference rather than a page-internal numeric appid that could become stale. These are compatible, additive fixes within v1.

Changed

Parcel boundary geometry now follows key entitlements, with full cadastre attribution

The resolved.parcel boundary polygon in the Property Intelligence API is now delivered only to keys with geometry access, in line with every other geometry category. Keys without geometry access keep all parcel identifiers and values (lot/plan, PFI/SPI, LGA, state) and receive an explicit geometry_omitted marker instead of the polygon. Responses that include the parcel boundary now carry the state cadastre attribution, and the licence where one is recorded, in meta.geometry. Tasmanian school intake area boundaries are temporarily not delivered while we confirm reuse terms with the data custodian; all other school catchment coverage is unchanged.

Fixed

Flood consistency notes now recognise planning-scheme flood overlays

scores.flood.official_layer_note now recognises relevant flood and inundation overlays returned under planning.overlay, not only layers already grouped under hazards.flood. This closes cases where a reassuring screening score appeared beside an official planning overlay without explaining the difference. The note names the delivered layer and its response path; it does not reinterpret a planning overlay as a modelled flood depth or professional flood assessment.

Improved

Property responses now distinguish clear, unavailable and unassessed coverage

For each path listed in meta.coverage_status, the response now reports whether data was returned, the lookup completed without a hit, the lookup was unavailable, or the path was not assessed. checked_clear means no feature was found within the documented scope of the datasets we hold; it is not a certificate that no legal or real-world constraint exists. For empty paths not listed in coverage_status, continue to read coverage_notes and the source documentation rather than treating the array as clear. Planning overlays and school catchments also include an additive common_core object with stable cross-state fields while their existing source-native properties remain unchanged.

Fixed

School searches now return every matching school inside the requested radius

poi.schools_500m now returns every licensed open-school point inside school_radius_m, up to the existing 5 km request limit, instead of applying a presentation cap after the search. Primary and secondary school options in the detailed walkability score are likewise no longer truncated to three, and their displayed counts match the distinct options returned. Other walkability categories keep their existing three-option presentation limit, and the school disclosure change does not alter the score calculation baseline.

Improved

Property responses now carry a complete delivered-source attribution inventory

meta.attribution.sources now follows every source actually referenced in the delivered response, including attribute-only planning, hazard, amenity and score inputs rather than geometry sources alone. Per-key delivery policy is applied before the inventory is built, so withheld sources are neither delivered nor credited as if they were present. Authenticated responses also identify the exact API documentation snapshot that governs the contract; the keyless sample deliberately omits that self-referential hash while retaining the same coverage, core and attribution shape.

Fixed

NSW school catchments now keep primary and secondary schools distinct

NSW school catchment enrichment now preserves the school level when matching abbreviated names such as PS and HS. Where the NSW Department of Education open register resolves the school, its website and establishment date replace older annual catchment-build values. This prevents a secondary catchment from carrying the neighbouring primary school's URL or establishment date. ACARA/My School attributes remain withheld from commercial responses.

Fixed

WA DPLH-071 zone names and closed ANEF ranges are now complete

Property Intelligence responses now preserve a readable planning-zone name for the WA wa_plan_zone source (DPLH-071) when that layer publishes its zone class without a separate description; this fallback does not apply to other planning sources or overlays. Aircraft-noise results now populate anef_max only for the source's supported closed five-point bands from ANEF 15-20 through ANEF 35-40; open-ended, malformed, conflicting and minimum-only values continue to return null rather than an inferred upper bound. The response coverage notes explain those null semantics and distinguish the score computation time from the publisher's source currency.

Fixed

Contract-aligned usage periods

Property Intelligence API keys can now have their unique-address quota reset on the agreement's Effective Date anniversary day instead of being forced onto a calendar month. Existing keys without a billing-cycle anchor retain their current calendar-month behaviour.

The response usage.resets_at, quota enforcement, repeat-address deduplication and quota alerts all use the same per-key period.

Responses now expose billing_period_key, billing_period_basis, unique_addresses_this_period and period_quota. The existing unique_addresses_this_month and monthly_quota fields remain as compatibility aliases.

Fixed

Split-parcel planning zones now include licensed geometry when requested

When include_geometry=1 is used with a geometry-enabled Property Intelligence API key, each additional planning.zone that overlaps the resolved parcel can now carry its clipped GeoJSON rather than only the zone under the query point being drawable. Nearby zones that do not overlap the parcel remain values-only, and source delivery policy and response size limits continue to apply.

Fixed

School and childcare point updates no longer wait for an API restart

When an open state school register or childcare register is refreshed, running workers now detect the atomically published file within one minute and reload only that local point index. Repeat Property Intelligence lookups can therefore receive refreshed points without counting the same address twice in the current billing period; the AI map assistant now reads that same childcare file rather than a legacy path that was never produced. A childcare refresh is rejected before publication if any expected state or territory is missing from the download or loses reasonable coverage during geocoding.

Fixed

Melbourne permit lifecycle refresh

Melbourne planning permit discovery now uses the council register's current date-filter parameters. Active permits that have left the discovery window are also rechecked by exact application reference on a bounded rotating schedule, so later lifecycle decisions can replace stale application statuses.

This is a periodic source refresh, not a real-time or statutory status guarantee. Consumers should continue to follow the returned council source URL for decisions that require current official confirmation.

Changed

ACARA school attributes removed, type and sector now from state open data, school links corrected by state

The 2026-08-06 entry said the school attributes that also originate with ACARA were under the same licence review and that we would announce it here if any of them came out. The review has finished.

  • acara_id, type, sector and year_range are removed from school rows in /api/v1/property. They reach us the same way ICSEA did, through ACARA's Data Access Program, and carry the same My School terms of use: personal and non-commercial, no Creative Commons grant. Like yesterday's removal this is a licensing removal rather than a defect, so it is announced as we act rather than with notice. If you stored earlier responses, treat these four fields as gone rather than stale.
  • School type and sector come back from the state open registers, as school_type and school_sector. They are read from the same CC BY datasets the coordinates come from, so they arrive on exactly the rows that already carry a school point, and the school_location_licence and school_location_attribution already on those rows cover them: 2,156 of 2,172 New South Wales catchment rows (99.3%) and 1,534 of 1,566 in Victoria (98.0%). The other states have no verified open register yet and therefore get neither field, the same way they get no school point. The names are new rather than reusing type and sector so that the origin of a value is readable from the payload.
  • The values you will actually see are narrower than the registers publish. The catchment layers cover government schools, so school_sector is Government on every delivered row in both states: filtering for Catholic or Independent returns nothing. school_type is the register's own label and the two registers do not share a vocabulary. Victoria delivers Primary, Secondary and Pri/Sec; New South Wales delivers Primary School, Secondary School, Central/Community School and Infants School. Each register defines further values that no catchment row currently resolves to, so treat these as the current observed sets rather than closed enumerations, and do not compare the two as a shared code list.
  • There is no open replacement for year_range or acara_id. Neither register publishes a year range in the form the removed field used, and an ACARA identifier can only come from ACARA. Both are gone with nothing behind them rather than quietly refilled from another source.
  • school_url and established stay, and we have fixed a matching fault in both. school_url does come from ACARA, but it holds a hyperlink to the school's own website: it points at a third party's resource rather than reproducing a dataset, and it is where you can look up under the terms that apply to you what this API no longer carries. established is not ACARA data at all, despite arriving in the same file: it is taken from the New South Wales data.nsw school register (Date_1st_teacher), the same CC BY source as the coordinates, so it is licensed for this use and is delivered on New South Wales rows.

Both are attached to a catchment by matching the school's name, and that matcher compared names without regard to state. A Queensland catchment could therefore take the website of a same-named school in Victoria, and one in five Queensland rows carrying a link did exactly that. The matcher now filters by state, which makes an interstate match impossible. Because the catchment files rebuild annually, the response also checks each school website's own domain against the row's state and withholds the link when they disagree, and withholds established on any non-New South Wales row, so the correction applies from today rather than at the next rebuild. Within a state a link can still land on the wrong school where two schools share a name stem, which is the fault behind the mismatched school attributes reported to us this week; treat school_url as indicative until we record that fix here.

meta.coverage_notes.schools states all of this in the response. The keyless sample at /api/v1/property/sample and the examples in the OpenAPI spec are filtered through the same removal rules, so they cannot advertise a field the live response no longer returns.

New

Every response now says when we last fetched what is in it

You can now tell how current a response is without asking us. Development application records carry last_fetched_at, the UTC time we last fetched that record from the council's own site, refreshed on every scrape that re-encounters it whether or not a field changed. It is our fetch time, not a council publication date, and it is null for most records today: we only started recording it on 10 April 2026, so 136,369 of 876,829 records carry a value so far and a null means we have not re-fetched that one yet, not that anything is wrong with it. On /api/v1/property the meta block adds as_at, when each part of the response was computed or retrieved (results are cached per parcel, up to 90 days for scores and 7 days for layer lookups, so this can be considerably older than your request), and source_currency, a per-source entry giving last_fetched_at plus a basis saying how that date was established and a refresh_schedule saying whether anything re-pulls the source on a fixed cadence. Read basis before you build on the date: refresh_log is a recorded download from the publisher, index_ingest is only when the rows entered our index and the pull itself was earlier by an amount we did not record, pipeline_run_log is the start of our last completed council scraping run, and unknown means we hold no record at all rather than that the source is fresh. None of these dates is the publisher's own currency or amendment date, so a source can be changed upstream at any moment after the time we show. On the Pro plan last_fetched_at is queryable through /api/v1/sql alongside date_fetched, which stays what it always was: when we first fetched the record.

Improved

School coordinates rebuilt from state open data, My School measures removed from the API

Two changes to school data in /api/v1/property, one restoring a field and one removing several.

  • Coordinates are back for Victoria and New South Wales, from each education department's own open data. Victoria comes from the DataVic school locations dataset (CC BY 4.0, all sectors) and New South Wales from the data.nsw master dataset (CC BY, government schools). Matching now uses the state school code as well as the name, so coverage is 2,156 of 2,172 New South Wales catchment rows (99.3%), against 72.1% on the source we served before, and 1,534 of 1,566 in Victoria (98.0%), three rows fewer than the 98.1% that source reached. Each coordinate carries school_location_source, school_location_licence and school_location_attribution: CC BY requires you to credit the department wherever you publish the data. The other six states carry no school point until we have an open register we can license, their catchment boundaries are unchanged, and meta.coverage_notes.schools states which states carry points.
  • ICSEA, ICSEA percentile, enrolment and teaching staff are removed from API responses. These four measures reach us through ACARA's Data Access Program and are published under the My School terms of use: personal and non-commercial, with no Creative Commons grant, so they cannot be redistributed through a licensed feed. Our earlier source by source rights review covered hazard and planning layers and did not cover the school sources. This is a licensing removal, not a defect, so it is announced as we act rather than with notice. If you stored earlier responses, treat these four fields as gone rather than stale. The remaining school attributes that also originate with ACARA are under the same licence review; if any of them come out, it will be announced here.
Improved

last_fetched on /api/v1/councils is now last_fetched_at, in UTC ISO-8601

Two changes to the per-council freshness field on /api/v1/councils, both breaking if you read that field. It is renamed from last_fetched to last_fetched_at, and the old key is gone rather than kept alongside the new one. Its value now comes back as 2026-08-05T06:01:36Z instead of 2026-08-05 06:01:36, so it matches the last_fetched_at on individual DA records exactly rather than sharing a name with a different format. This breaking change is recorded here. We did it in one step, on the day the matching per-record field arrived, because carrying two spellings and two formats for the same idea would have locked the confusion in permanently. The meaning is unchanged: the most recent time we fetched anything from that council, across all of its records. If you parse the value, expect %Y-%m-%dT%H:%M:%SZ. The same rename applies to sources[].last_fetched on /api/v1/pipeline-status, whose values keep their existing format. Nothing else on either endpoint moved.

Fixed

cost_band on a DA is now a band of that DA's cost

On development application records, cost_band used to carry our classifier's guess at project value read off the description text, which had nothing to do with the cost the council published. The two fields disagreed in most records that carried both, and a record with no cost could still come back with a band. cost_band is now derived from cost alone, so the two can never contradict each other, and it is null whenever there is no usable council figure rather than whichever label the classifier happened to write. The bands are <$100k, $100k-500k, $500k-1M, $1M-5M and >$5M, the same buckets our emails and map already used, and figures below $1,000 get no band because they are placeholders ($0 occupancy permits, $1 fit-outs) rather than small jobs. The classifier's estimate is still available under its own name, estimated_value_band. It is an AI reading of the description text, published close to verbatim, so expect inconsistent labels ($50k alongside <$50k). Where the model produced no usable estimate the field is null, the same as when it produced none at all. It is present on 39% of records and is often the only value you get, because fewer than ten of the councils we hold publish a construction cost at all: only 0.6% of records carry one. If you cached earlier responses, refetch: bands that looked plausible before were often wrong.

New

Suburb demographics through the API

Two new endpoints, GET /api/v1/suburbs and GET /api/v1/suburbs/{sal_code}, return the census-derived figures from our suburb profiles across 14,017 suburbs nationally: the tenure split (owned outright, mortgaged, rented) for 13,600+ of them, with dwelling structure mix, bedroom counts and age bands wherever ABS cell sizes allow — each row's suppressed and unavailable fields name exactly which blocks it could not stand behind, so a gap is always labelled. All of it is ABS Census 2021 data (CC BY 4.0) with the attribution string included in the response, so it can go straight into client reports. Median prices and rent figures are deliberately not part of the feed: the price series draws on sources whose terms do not permit commercial redistribution, and we would rather leave a section out than ship data we cannot license to you.

Fixed

Commute and religion figures fixed on suburb pages

The commute breakdown on our suburb pages was built from a total that left out trams and light rail, and left out people who worked from home. Work from home was the largest group in the 2021 Census, so the tile for it was blank everywhere and the remaining shares were inflated: Carlton read 40.6% driving, and reads 18.1% now. Read the four tiles as shares of everyone with a job, including those who did not travel to it, not as shares of commuters. They do not add to 100 because car passengers, ferry, motorbike and multi-mode trips are not shown. The religion summary had the same kind of fault and could never show "No religion", which is the most common answer in most of the country; it now appears, and "Other religions" no longer double-counts the Sikh population it contains. None of these figures are part of the API.

New

Flood and bushfire extent geometry on licensed lookups

include_geometry=1 now also attaches flood and bushfire extent shapes to the hazard entries it returns: the mapped extent clipped to roughly 1.5 km around the subject, simplified to about a metre, in the same GeoJSON form as the planning layers. Geometry ships only for sources whose publisher licenses redistribution — each one individually checked — and meta.geometry now reports exactly which categories and hazard sources carried shapes in that response, with the attribution to display. Hazard sources that do not license redistribution keep returning the hit and its properties, just without a shape, so a missing polygon never reads as a missing hazard.

New

Walking distance bands on the walkability score

Property Intelligence API responses with include_geometry=1 now carry scores.walkability.walking_areas: three GeoJSON rings at 400, 800 and 1,200 metres around the subject, the same straight-line basis the walkability score itself is computed on. Each response labels the method explicitly (straight_line_distance) with a note spelling out that these are distance bands, not road-network isochrones, so the geometry never claims more than it measures. The bands are generated from the subject coordinate alone, carry no third-party content, and are marked as self-generated in meta.geometry. Batch enrichment requests can now pass include_geometry through as well.

New

Heritage and character overlays for six South East Queensland councils

Council heritage and character overlays now cover six South East Queensland councils instead of one. Brisbane gains its local heritage areas, the areas adjoining state heritage places, pre-1911 building sites and the traditional building character overlay — 9,031 extra polygons on top of what was already there. Gold Coast, Sunshine Coast, Logan, Moreton Bay and Redland get their local heritage places, the land in proximity to them, and their character areas and buildings where the scheme has them. They come through the API under planning overlays and appear on the map alongside the existing overlays, each polygon carrying the planning scheme and council it came from.

Read the coverage honestly: no Queensland council is loaded as a complete planning scheme. These five are loaded for heritage and character only, and Brisbane is a named subset of its scheme rather than all of it. So an empty overlay result never means "the scheme was checked and nothing applies" — it means none of the families we hold apply, and anything outside that list was not checked. The coverage note in every API response and in area reports now names both sides of that line. Flood and bushfire are separate layers and unaffected. Some councils simply have no character overlay in their scheme, so nothing is missing when one shows only heritage.

New

Noise, land cover and contours as per-property surfaces

A new include_surfaces=1 parameter on the Property Intelligence API returns a surfaces block with the three area layers our own map draws around an address, clipped to the same ~1.5 km window as the layer geometry: a modelled noise grid (Lden dB and score per node, with the model path asserted on every build), the 10 m land-cover grid behind the heat view (ESA WorldCover, CC BY 4.0), and elevation contour lines from the state mapping services, routed and attributed per state. Every layer that cannot be delivered says so in meta.surfaces.unavailable with a reason, rather than silently going missing.

Fixed

Corrected tenure percentages, and a fourth tenure category

The tenure percentages in our suburb data left one of the four ABS Census tenure categories out of the denominator, so owned outright, mortgaged and rented each read high. They now divide by all four stated categories, and the missing one is published alongside them as other (life tenure schemes, rent-free occupancy). Of the 9,841 suburbs affected, half move by less than a point, but a tenth move by more than five and the largest single share moves by 43 points, so please refetch rather than adjust: the error scales with how common other tenure is locally, which is much higher in remote and Indigenous communities than in metropolitan suburbs. Tenure is also now available for 13,659 suburbs rather than 9,841, because a category with a genuine count of zero no longer reads as missing data. Dwellings whose tenure was not stated remain outside both numerator and denominator, so these are shares of dwellings with a stated tenure rather than of all occupied private dwellings.

Fixed

Low-confidence geocode warnings, and corrected traffic source labels

Two corrections from our own pre-emptive audit. First, when an address resolves with low confidence the response now says so: resolved carries an explicit warning below a 0.6 match-confidence threshold (calibrated against 170 real G-NAF records), instead of silently returning the best guess. Candidates were always in the payload; now the response tells you when to look at them. Second, the noise model's measured traffic counters were all labelled as a Victorian source even where the reading came from another state's road authority; every counter now carries its actual publisher, and the attribution blocks in exports follow the data instead of assuming one state. Scores and dB values are unchanged by either fix.

Improved

Licensing review of council flood datasets served through the API

We completed a per-source licensing review of the council flood studies behind the flood layers, checking what each publisher actually permits. Twenty-two council flood datasets whose licence terms do not permit commercial redistribution are no longer included in /api/v1/property responses. This is a change to the licensed delivery surface only: the map, our own site reports and the flood score are unaffected, and no coverage was dropped from the underlying library. If a council flood layer you relied on stops appearing in API responses, this is why. Worth knowing either way: most council study extents were always reference layers rather than score inputs. scores.flood.official_layer tells you, per address, whether an official overlay was hit, checked with no hit, or unavailable, and flood_zones names the overlays that answered.

New

Social housing now available at SA1 grain

Social housing now ships at SA1 grain — 59,965 areas, roughly a block or two rather than a whole suburb — alongside the existing SA2 layer. Area profiles and the API show both, so you can read the local and the district picture together. Same ABS 2021 Census cell definition as before, checked by rederiving the existing SA2 layer from source and matching all 2,453 features. One thing to expect rather than treat as a bug: SA1 counts will not sum exactly to their parent SA2, because the ABS perturbs small counts independently in each geography. Across the 2,392 SA2s we can join, the median difference is around 5%; the largest areas land within about 2% and the smallest drift furthest. The share is also capped at 100 for the handful of tiny SA1s where perturbation pushes the count past the total.

Fixed

Noise accuracy now quoted against instruments, and day/night levels realigned

Two corrections to the noise score: one to a number we published about the model, one to numbers in the response itself.

  • The headline accuracy figure now quotes instruments, not models. We had been leading with 3.58 dB mean absolute error. That is the model's error against the professional acoustic-model reference samples it is calibrated on. Against 199 real noise-logger readings from published environmental assessments the figure is 6.2 dB MAE, biased about 2.3 dB high. The instrument number now leads everywhere and 3.58 is labelled as what it actually measures. The per-state detail is unchanged and still ships in scores.noise.measured_validation.
  • leq_day_db, leq_night_db and leq_db now come from the same chain as lden_db. They had been produced by a different path, so the period levels and the day-evening-night level in one response could disagree: on a 317-point check, 62% failed to reconstruct Lden from their own period columns within 3 dB. lden_db and the score are unchanged; the period columns move on most road-exposed parcels. Our own 90-day response cache was rolled over, so the next request for an address returns the corrected columns. If you stored earlier responses, re-fetch them.

The API's noise coverage note was rewritten at the same time. It had said traffic-count calibration was strongest in particular states, which was true of the older serving path but not the current one, where counters set the dominant source name and the confidence range rather than the level itself on the default path. They still feed the level directly on the physics fallback path, and lden_source tells you which one answered.

Improved

/v1/sql now rejects non-literal LIMIT values instead of silently ignoring the cap

The SQL query endpoint caps every query at 1000 rows, but the old check only recognised a literal number after LIMIT: a parameterised count (LIMIT %s with the value passed in params) matched nothing, so the cap never applied and the query ran uncapped. That request shape now returns HTTP 400 with "LIMIT must be a literal whole number on this endpoint (max 1000)" instead of silently returning more rows than intended. If you were binding the row count as a parameter, write the number directly in the query text (LIMIT 500) rather than as a bound placeholder; LIMIT %s remains fine for WHERE/IN values, just not for the LIMIT clause itself.

Fixed

School coordinates disappeared from API responses without an announcement

In the early hours of 1 August (AEST) a scheduled data refresh deleted the point file that /api/v1/property reads school coordinates from at request time. The file was treated as a build leftover; the live service reads it. From the next process restart, school catchment rows came back with no school_lat and no school_lng at all, and poi.schools_500m came back empty, in every state. Nothing announced it, and we found out because a customer told us.

Catchment boundaries, zoned school names and the rest of the response were unaffected. On 6 August the refresh job was changed to refuse to delete files the running service reads, and a missing point file is now logged as an error instead of degrading in silence. Where the coordinates come from now is in the entry dated 6 August. A removal like this should have appeared here on the day it happened.

July 2026
Improved

Noise scores publish how they perform against real noise loggers

Every noise response for an address we can place in a state now carries a scores.noise.measured_validation block: how many real instrument points we compared against, the model's bias and mean absolute error at those points, and the caveats that decide how to read them. Two things changed because of it. The confidence interval is floored at the state's measured error instead of being derived only from acoustic-model samples, and a measured bias of 3 dB or more (a doubling of acoustic energy) now sets low_confidence with a note naming the number, so you can act on the direction of the error rather than just its width. States with no instrument coverage at all say so explicitly rather than staying silent, because silence reads as validated. No score moved: score and estimated_db are untouched, only the interval and the confidence flag around them changed.

Fixed

Noise sources always listed, and school catchment points for QLD and SA

Two API fixes found by running the full sandbox address set:

  • scores.noise.sources was missing entirely on parcels with no measured road or rail source in range, so absence looked like a broken field. The block now ships even when nothing is in range, carrying search_radius_m on its own, so absence reads as coverage. The noise detail cache was bumped at the same time, because it was pinning empty results recorded before traffic-counter coverage grew.
  • school_lat / school_lng came back null on Queensland and South Australian catchments. Queensland abbreviates school names in the catchment layer (SS, SHS) and South Australia carries the name in a different property, so neither matched the school index. Both are resolved now.
New

Flood score now shows modelled water depth from council studies

The flood score has learned to answer the question that actually matters: not just "is this address in a flood zone", but how deep the water gets. For 55 study areas across NSW and Brisbane, clicking a property on the map now returns the modelled water depth at that point in a 1% AEP (1-in-100-year) flood — for example "~0.7 m" — extracted from the councils' own hydraulic flood studies (TUFLOW-class models, published under CC BY 4.0), with the source study named on the panel. Where a depth grid covers the point, it also drives the score: shallow nuisance water and metre-deep floodplain no longer read the same. Coverage spans 48 Brisbane catchments (the council publishes its full study grids) and seven NSW council study areas from Central Coast to Central Darling; everywhere else the score continues to rest on overlays, terrain and water proximity. Modelled study output, not a survey of your property, and labelled as such.

New

Bushfire mode now shows an indicative BAL

The bushfire score now speaks the language the industry actually uses. On the map, click any address in a bushfire-prone area and the panel now leads with an indicative Bushfire Attack Level (BAL-LOW through BAL-FZ) in plain English, saying what it means for how a home must be built, with the 0-100 risk score kept as a supporting detail. The BAL is worked out with the AS 3959 Method 1 approach from three inputs shown right in the panel: the vegetation class, the distance from the address to that vegetation, and the effective slope. Because those inputs are read from 10 m satellite land cover and modelled terrain rather than measured on site, every result carries a confidence range instead of a single false-precision answer. It is an indicative pre-screen, not a certified assessment: a compliant BAL for a building permit still needs an accredited assessor on the ground. The same indicative BAL runs on the bushfire score page.

Improved

Every score now reads laser-surveyed ground elevation

The elevation layer under the flood, bushfire and walkability scores has been upgraded from a coarse national grid to Geoscience Australia's LiDAR bare-earth model: an airborne laser survey covering ~245,000 km2 of populated Australia in every state and territory, with sub-metre height accuracy. That is a real jump for SA, ACT and NT, which previously had no fine elevation source at all: flood height-above-drainage, bushfire slope and walkability slope penalties there now read survey-derived ground heights instead of a coarse model. The water-level simulation renders against the same laser-surveyed terrain, live state services fill any coverage gaps, and every flood response still carries an elevation_confidence flag telling you which source answered. Screening-grade as always: a terrain read, not a hydraulic model.

New

Easements now returned for five states and territories

Statutory easement layers went live across VIC, NSW (including carriageways), QLD, TAS and ACT, sourced from state cadastral data and served on the map, in site reports and under planning.easement in the API. Victoria's easements are held as centrelines rather than polygons, so point lookups there now match line sources instead of silently returning nothing. Honest limits, published in the response coverage notes: spatial layers understate the full easement set and the title register remains the point of truth (Queensland says so itself), and SA and WA easements are paid state products we do not hold.

New

Feasibility: local DA benchmark, profit ranges and shareable reports

Three upgrades to feasibility. Local DA benchmark — under the dwellings input you now see how many comparable applications were approved near your site and their median dwelling count (e.g. "7 approved nearby · median 2 dwellings"), pulled from our own DA records within 800 m to 2 km. Profit as a range — the headline result now runs pessimistic and optimistic cost variants instead of a single false-precision number, and every report stamps the vintage of its cost assumptions (stamp duty FY2024-25, build rates 2025-26). Publish a report — turn a feasibility session into a shareable public page; published reports show suburb-level location only, with the street address withheld and coordinates coarsened.

Improved

Flood coverage grows to 45 council flood studies

Council flood studies feeding the map and the flood score jumped from 34 to 45 — 28 in NSW and 17 in Queensland — in one coverage sprint. New additions include Sydney's biggest growth councils (Blacktown, Campbelltown, Liverpool, Fairfield), Newcastle's three flood types, and Far North Queensland (Cairns, Cassowary Coast, Hinchinbrook). Victoria and the ACT were already covered statewide by planning overlays. The mapped studies now span LGAs home to roughly half of NSW's population and about 90% of Queensland's. The flood score page carries a per-state coverage table, including what we still don't have — the remaining Sydney metro councils keep their studies behind logins, and that gap is listed rather than papered over.

New

Opt-in GeoJSON geometry on the Property Intelligence API

Licensed API keys can now ask for the shape of a layer, not just the fact that it was hit. Add include_geometry=1 to a /api/v1/property call and the statutory planning layers — zones, overlays, heritage, easements and growth areas — plus school catchments come back with GeoJSON alongside their properties, ready to draw on your own map panel. Geometry is clipped to roughly 1.5 km around the query point and simplified to about a metre, with size guards of 150 KB per feature and 1.5 MB per response; each response carries its CC BY attribution in meta.geometry. Full-layer rendering is not part of this: that is the vector tile service, licensed separately. The option is off by default and enabled per key.

Improved

Heat Island now reads the ground, not just the satellite

Click a property in heat mode and the map now paints the neighbourhood's actual ground cover on a 10 m grid — tree canopy in cool green, built and paved surfaces in hot orange, grass and water in between — framed at street scale around your address. The verdict (cooler / moderate / hot) and its drivers now come from that ground cover, with tree canopy first. This also fixes a real failure mode: the old satellite-temperature comparison could rate a fully paved CBD block "cooler than its surroundings" and credit greenery that wasn't there. The day-night 3D shadow cycle is still available as a fold-out explorer.

New

Walkability mode animates the walking range growing

The walkability score now shows what "within a walk" means instead of just stating it. On the map, click any property and the map sweeps a walking budget from 0 to 15 minutes: rings grow outward along the real street network and amenities light up one by one as they come into reach, with a live count in the panel. A play button and slider let you scrub the time budget yourself. The legend now speaks plain English (5 min walk = about 400 m), and its ring and amenity rows are clickable to switch layers off. Every result carries a one-line verdict of what daily life on foot looks like from that address, and the property you clicked stays outlined on top of every layer. The same animation loops on the walkability score page across three real Melbourne addresses.

New

Flood mode plays a water-level simulation on real terrain

The flood score now shows its terrain evidence instead of just stating it. On the map, click any property and watch water rise over the local drainage line against real 30 m elevation: low blocks go under within a metre, ridges stay dry, and a ground-profile cross-section tracks exactly when the water reaches your property. The overlay legend now speaks plain English (floodway = main flow path), the flood zone that actually covers your property gets highlighted on the map, and every result carries a one-line verdict. The same simulation runs on the flood score page across three real Melbourne addresses. Terrain fill, illustrative; not a hydraulic flood model, and labelled as such.

New

Heat island mode plays a summer day-night cycle

The heat island score now shows the part that matters most: what happens after sunset. On the map, click any property and use the Day-Night Heat Cycle player: the map light follows the summer sun through 24 hours, and the 3D buildings shift from daytime heat colours to a night palette where low-rise cools to blue while the dense fabric stays warm. That is the urban heat island in one animation. The panel shows a modelled surface temperature as you scrub, anchored to the real MODIS day and night satellite readings (and labelled as a model), every result carries a one-line verdict of how much hotter or cooler the address runs than its surroundings, and the legend rows are clickable to switch the building layer off. The same cycle runs on the heat island score page.

New

Bushfire mode shows fuel risk as an ember glow

The bushfire score now makes the risk feel like what it is. On the map, click any property and the burnable vegetation (trees, shrub, grass) glows with a warm ember tint that slowly breathes, its warmth following the score, so the bush around a High Risk address visibly glows while a Very Low Risk one stays green. The glow is deliberately directionless: it shows where the fuel is, not where a fire would travel. The fuel backdrop extends well past the viewport like flood's terrain window, with the 500 m radius the score actually measures drawn as a dashed ring. Every result carries a one-line verdict including real fire history (how many of the last 30 seasons burned, and when), and the legend rows toggle the fuel, ring and planning-overlay layers. Illustrative fuel exposure, not a fire-spread prediction, and labelled as such. The same glow runs on the bushfire score page.

New

View quality mode scans the horizon like a radar

The view score's horizon rose now explains itself. On the map, click any property and the eight-direction horizon chart plays a radar sweep: a scan line makes one pass and lights each compass direction up as it crosses it, reaching far from centre where the horizon is open sky and pulled tight where terrain or towers close it in. Every result carries a one-line verdict naming what makes or breaks the outlook at that address (ocean distance, elevation advantage, or the towers next door), and the legend's building rows are clickable to switch the 3D layer off. The same sweep runs on the view quality score page.

New

Contamination mode pulses every source and frames your property

The contamination score now shows where the risk signals actually come from. On the map, click any property and every nearby source pulses: red rings spread from official EPA register records, amber rings from industrial land uses (fuel, waste, workshops). The camera now frames the property you clicked instead of the whole 2 km scan circle, so the address stays the subject; clicking a record in the panel flies the map to it. Every result carries a one-line verdict (an official record 300 m away reads very differently from a dry cleaner at the edge of the scan), the provenance line states plainly whether the state register was checked, and the legend rows are clickable to switch the register and industrial layers off. The same pulses run on the contamination score page across three real Melbourne addresses.

New

Site screening expands to data centres, warehouses and englobo land

The 19-constraint red-flags screen now covers three new sectors alongside energy: data centres, warehouse / logistics sites and englobo residential land. Each sector gets its own constraint weighting (a subdivision is screened as the future residents' exposure, not as an industrial plant) and a real sample report generated on a real parcel. Browse all four at /solutions/, or start with the 13 field guides behind them on the blog.

New

Dwelling approvals heatmap

See where new homes are actually being approved across Australia. Turn on Dwelling approvals (SA2) under Planning on the map and every statistical area is shaded by its rolling 12‑month count of new residential dwelling approvals (from ABS Building Approvals). The greenfield growth corridors light up dark; established inner suburbs stay pale. Hover any area for the exact number. Refreshes monthly.

New

Draft activity centres (VIC)

A new Draft activity centres (VIC) layer maps the Victorian Government's proposed Train & Tram Zone catchments — the core, inner and outer areas around activity centres slated for more housing. They're drawn with a dashed outline to make clear they're proposed, not yet gazetted, so you can see where upzoning is likely to land next. The already‑gazetted Housing Choice and Transport Zones ride the normal planning zone layer.

New

Public transport stops, now by mode

The PT stops layer now colours every stop by its transport mode — train, tram/light rail, bus, coach or ferry — and adds a mode filter so you can show just the ones you care about (e.g. train stations only). Coverage now spans all eight states and territories, including Darwin and regional Queensland — around 250,000 stops in total.

Improved

More planning intelligence on the map

A big batch of new planning layers went live across the states:

  • VIC — exhibited (in‑progress) planning scheme amendments, VPA precinct structure plans, and precinct‑level future land use.
  • NSW — Development Control Plan boundaries, developer contribution plans, and coastal management areas.
  • WA — Region Scheme zones & reserves, Special Control Areas, and consolidated flood layers.
  • QLD — Priority Development Areas.

Find them under Planning, Hazards and the other layer groups.

Improved

Smarter parcel filters

The Parcels layer gained real filters — narrow by registration year with a slider, hide road reserves, or jump straight to a VIC lot by plan/SPI. Isolate exactly the lots you're chasing instead of hunting the whole map.

New

Search inside DA documents

Ask the map's AI assistant to search the actual planning documents attached to a development application — plans, reports, decision notices — by keyword, and jump straight to the source. No more scrolling council portals. (Pro)

Improved

Planning zones, now colour-coded

Planning zones are now shaded by purpose — residential, commercial, industrial, rural, environment and more — so you can read zoning across a whole suburb at a glance, with filters to show just one family. Overlays were restyled as clean boundary layers so they stop drowning the map.

New

Social housing density layer

A new map layer shades each area by its share of social housing (ABS Census, SA2 level) — useful context when you're weighing where to build and what mix makes sense.

New

Property Intelligence API

A new API lets businesses and developers pull DA Leads' parcel, zoning, scores and planning data straight into their own tools — with a free sandbox to try before you commit. See the API docs.

June 2026
Improved

More flood coverage

Flood layers expanded right across NSW and QLD — 30+ more council flood maps plus Brisbane, Hawkesbury and Wollongong flood extents now feed the map and the site checks.

New

DA or Complying Development?

The Reports tab now flags the likely approval pathway for a site — whether a project could go through faster as Complying Development (CDC) or needs a full DA — factoring in NSW environmental overlays like acid sulfate soils, wetlands and foreshore areas.

Improved

Faster, sharper address search

Address search got quicker and more accurate — autocomplete now runs on our own national address index (G-NAF), so it finds the right place with fewer keystrokes.

Improved

Satellite view on the map

Flip the map to a satellite basemap to see actual rooftops, vegetation and site context — with parcel boundaries drawn on top so you never lose the lot lines.

May 2026
New

Energy site screening

A tool for renewable-energy developers — screen a candidate site (solar, wind, BESS) against planning, environmental, heritage and hazard constraints, and get an evidence-backed red-flags report with per-constraint maps. Currently focused on South Australia and the eastern states.

Improved

Colour the map by score

You can now shade the whole map by a score — every parcel coloured by its score value — to read a suburb at a glance before you zoom into a single site, with a legend that explains the scale. Started with Noise; Flood, Bushfire, Solar, Walkability and more followed.

New

Save the parcels you're watching

Save parcels you want to come back to — a saved list with search, so the lots that matter are one click away instead of lost in the map.

New

Property scores arrive

A new kind of insight lands on the map — scores for the things that shape a site. First up is Noise: how loud a property is from road, rail and air, shown right in the inspector. The first of a growing family of environmental scores (Walkability, Flood, Bushfire, Solar and more followed).

New

Suburb profiles

Interactive suburb profiles — development activity, market context and AI-written insights for any suburb, shareable by URL. A fast way to get the lay of the land before you dig into individual sites.

New

Ask AI on the map

Ask questions about any property in plain English — "what can I build here?", "any recent DAs nearby?" — and the map's AI assistant answers using live parcel, zoning and DA data, right in the panel. (Beta)

Improved

A proper map on mobile

The map got a real mobile experience — a bottom-sheet inspector you can drag, bigger touch targets, long-press to select a parcel, and filters that stick in the URL so you can share exactly what you're looking at.

April 2026
New

Schools & childcare on the map

A Schools & Childcare layer landed — every school with its ICSEA rating, catchment zones coloured by type, and childcare centres with their NQS rating — all filterable, so you can weigh a site's education context in seconds. Nationwide (ACARA), across all states.

New

Granny flat feasibility

Assess a granny flat / secondary dwelling on any site — the feasibility tool now models a granny-flat footprint and site plan with state rule packs, and suggests it when you're weighing a renovation or extension.

New

Explore Australia on the map

The interactive map went live — parcels, development applications and natural‑hazard layers (bushfire, flood, coastal, heritage) plus a full address layer, as seamless, clickable layers right across the country. Click any lot to open its details.

March 2026
New

Developer API

A public API launched for developers — pull DA and permit data straight into your own systems with API keys, rate limits and a management console. See the API docs.

New

Suburb & site reports

Auto-generated reports for suburbs and individual sites — market data, satellite cover imagery and development context — plus site discovery that surfaces for-sale listings and large lots worth a second look.

New

See any site in 3D

The feasibility view gained a 3D toggle — building massing and site layouts render in three dimensions, so you can picture what actually fits on a block before committing to a design.

New

Feasibility calculator

Run a development feasibility on any site. Pull the zoning and local median prices, set your assumptions, and get an AI-written read on what you could build and whether the numbers stack up.

February 2026
New

DA Leads is live

DA Leads launches. Search live development applications from council planning registers right across Australia, find the businesses behind them in the directory, and read the guides — the starting point for spotting projects early.

Want the deep dives? Read the blog, or open the map to try the latest.