How it works
How it is built.
No database
No server-side copy of any register and no harvested copy - the answer is as current as the register because it is the register.
Deterministic by contract
Deterministic means the same address always returns the same answer, because every value is looked up or calculated by a fixed rule - nothing is guessed or generated by AI. The planned AI features sit behind their own labelled boundary: a model may read documents and the receipts the engine produced; it never sets a register value.
Zero install
No local admin rights, no receiving system on the government side, no data migration - a browser is the whole deployment footprint.
At answer time
The flow.
Reads the selected address; opens the panel. Nothing is injected into the host page. The same workflow arrives as a managed Chrome and Edge extension.
One card per section of your own form, each face carrying its resolved count and headline finding.
Candidates from two keyless government endpoints, scored — the street number is a pin, not a weight; an unconvincing match is put to you, never guessed.
Runs every registry entry in parallel; results land as they arrive. A failed source is a named error in errors[] — never a silent blank.
Endpoints, fields, clauses and licences as data, not code — a new source or a new state is a registry entry.
Your own .xlsx or .docx edited locally as a zip; values from the run above, nothing uploaded, nothing leaving the machine.
- NSW ePlanning Spatial Services — planning controls
- NSW Planning Portal — address typeahead + spatial APIs
- NSW DCS Spatial Services — cadastre + AddressPoint
- SEED — environmental and contamination data
- NSW Spatial Services SIX Maps — 5 m DEM + imagery
- Geoscience Australia — national facilities dataset
- NSW DNSP zone-substation disclosures
- TfNSW Trip Planner — stops, departures, routed walking distance (the one keyed source; the key never leaves the server)
- NSW Planning Portal Online DA data API
- NBN places — serviceability
- NSW Flood Data Portal — flood studies lodged over the location (hosted by NSW SES)
Why a proxy at all: these four endpoints publish no CORS headers, and the Trip Planner needs an API key attached server-side. The proxy is an allow-listed relay that exists only for that — it forwards the request and the response, keeps no record of the lookup, and never sees more than the address.
The whole system, at answer time. Everything in the left box runs in your browser; the right column is the government endpoints it reads and the two ways it reaches them. There is no server in the middle of the picture because there is none in the product — the proxy relays four endpoints and keeps nothing.
Outputs
The answer.
Your template, filled and verified
Your own Excel or Word file back as a copy, formulas intact, and every cell written read back exactly before you are offered the file.
The building envelope
The lot against your setback as GeoJSON for your mapping platform, and the solid as CityJSON, DXF and glTF for design tools.
The same receipts
Each value in every export carries its source, the exact query that produced it, the minute it was read, its licence and the clause it answers.
Engine and registry
The guarantees.
The engine: deterministic.
Address matching is a parser and a scoring function. Compliance cells are arithmetic against a named clause. Template binding is a static map of label to clause to field. Nothing in that path is generated, summarised or inferred.
A model does the work that suits it, on the other side of that line: reading title documents, plans and certificates, and the Rulebook's clause-by-clause reading of the instruments. What it reads lands with its own receipt and its own confidence, and it never sets a register value. Both are dated on Releases.
And there is no pipeline to break.
Your browser talks to the government endpoints directly, which is why a lookup costs almost nothing to serve. What needs maintaining is a JSON file of endpoints and clauses: adding a source is adding data, fixing one is editing a line.
Low maintenance, not zero. When a government endpoint moves, the registry needs an edit.
The method
Three steps, and the honest limits of each one.
1. Resolve the address
Free text is parsed into parts, then matched against the NSW register — the ePlanning typeahead for speed and the DCS AddressPoint layer for geometry, scored together. The result carries a method (exact or approx), a confidence, and the flags behind the score. The address is then rebuilt from the parsed parts rather than echoed back, because the register spells the same address several ways and every downstream source is keyed off that one string. Victorian addresses are matched the same way against Vicmap Address.
Coordinates come from the address point where one exists, then the parcel centroid, then the building point with the unit dropped — and the report says which of those it used, because a parcel centroid and an address point are not the same claim.
The street number is a pin, not a weight: a 15 never scores as a 15A. When two candidates still tie, the panel puts them to you rather than guessing — the safe failure, and the one the statewide sweep below exercised.
2. Read the registers
A NSW address reads eleven government data services — ten NSW, one Commonwealth. A Victorian address reads four — three Victorian (Vicmap and VicPlan: planning, parcel, hazards) and the same Commonwealth one. Both add two link panels the browser assembles without fetching anything. Each is a JSON entry in the registry: endpoint, fields, clauses, licence, routing. They are called concurrently and directly, with no store in between. A source that times out returns a named error in its own slot; the rest of the report still returns.
The exception to "directly": three of the ten transit a thin allow-listed proxy — one because it needs an API key that stays on the server (Transport for NSW), two because the endpoints publish no CORS headers (the Online DA API and NBN). It forwards the request and the response, keeps no record of the lookup, and never sees more than the address. The other seven are read browser-direct and keyless, and that browser-to-government access is verified, not assumed.
3. Test against the clause
Compliance cells are arithmetic against a named clause, not a judgement. Every value is labelled with how it was obtained:
- authoritative
- read directly from the register that governs it
- derived
- computed from authoritative values by a stated rule
- approximate
- read, but at a coarser precision than the question wants
- assumed
- not read at all — a reader-supplied input. A different word because it is a different kind of claim.
What it cannot answer
Published rather than discovered. An absent value and a failed lookup are different facts, and neither renders as a blank.
The state Flood Planning Map covers around ten of the 128 local government areas. Everywhere else the field says "not mapped here" — never "no flood risk". Beside it the panel reads the NSW Flood Data Portal for the flood studies lodged over the location, each linked to its dataset page: a read of which studies exist, not a flood determination, which still lives in the study itself.
Lot and plan identifiers and an easement-geometry flag are read live from the cadastre. The title itself has no free API — the regulated broker fee is about $18.70 a document — so it is deep-linked to the brokers, not read.
No statewide register exists; councils hold their own. The field says that, where the answer would have been.
No open Sydney Water API, and Before You Dig has no public API. Deep links only, labelled as deep links.
No public API or GIS layer for either agency — only annual-report PDFs and an aggregate dashboard with no site-level data.
Some LEPs map maximum height in Reduced Level rather than metres. Where that happens there are no storeys, so no footprint is drawn — rather than a number invented to fill the cell.
The statewide DA map layer is frozen at 1 May 2023. A freshness probe reads its last-updated statistic on every request and, finding it stale, skips it for the Planning Portal’s Online DA API. The fuel-facility points were imagery-digitised in 2011/2012; the card reports the source date alongside the read time.
Not read from any instrument — they are reader-supplied inputs, and every value derived from them wears the assumed badge rather than authoritative.
Measured
What the built system does, as figures rather than adjectives — each measured on the date shown, against live production services wherever a service is involved, and most of them reproducible from the panel today.
- full run
- 10–13 seconds, all sources in parallel, once a session is under way — the first run after opening is slower. — Jul 2026
- values
- 53 from one address, each carrying the receipt tuple: source, exact replayable query URL, retrieved-at, licence, confidence grade, answering clause. — Jul 2026
- excel fill
- 19 of 19 cells on a rebuild of a planning team’s template, formula-safe, output re-opened and verified before download. — Jul 2026
- word fill
- 23 of 23 cells including the clause-cited permissibility table; run-split labels and merged-cell grids handled. — Jul 2026
- formulas
- 58 live cross-tab formulas across an 18-tab rebuild of the workbook, left intact and recalculating. — Jul 2026
- coverage
- 22 of the 39 lookup-answerable placeholders on the Dual Occ CDC rebuild fill automatically; the rest are design output and judgement, which a planner signs. — Jul 2026
- envelope
- Coordinate round-trip error 0.000e+0 m at every vertex; ground plane fitted to the 5 m elevation model at 0.08 m residual over 1,212 in-lot cells, terrain and parcel frames reconciling. — Jul / Aug 2026
- exports
- One geometry exported four ways — GeoJSON, CityJSON 1.1 (LoD1 Solid), DXF R12, glTF 2.0 — under 17 automated assertions, including that every exported solid is a closed 2-manifold. — Aug 2026
- contrast
- 212 WCAG contrast pairs across three themes, measured in code, not eyeballed. — Jul 2026
- codebase
- 25 modules, 41 dependencies; no language model anywhere in the value path. — Aug 2026
Verified at state scale
In August 2026 the engine the panel loads was run from a headless harness over 2,560 real NSW addresses, twenty in each of the 128 local government areas — drawn at even intervals through every address the government register holds inside that area's own boundary, by a fixed rule with no suburb list and no address hand-picked — against the live production services. 2,558 resolved, a statewide rate of 99.92% with a 95% confidence interval of 99.72% to 99.98%. Every one of the 128 areas is named in the results, and on every resolved address the area the engine returned is the area the address was drawn from. The two it left undecided are both unit addresses, and each is recorded as the named error it produced.
Terrain, the 5 m elevation raster export, is the one source that degrades under load, and it is reported on its own: a read past the engine's budget returns its named timeout error rather than flat ground, and the addresses it missed kept every other value they were read for. A sequential terrain-only pass over those addresses is published as its own file.
The harness and the complete per-address results are published here in full, every record as the harness wrote it, so the numbers can be checked and the run repeated:
- harness
- the sampling rule and the run, importing
/core/and/sources/from this site exactly as the panel does - results
- every address with the register id it was drawn under, the council area it was drawn from beside the one the engine named, every source's outcome, and every named error with the exact call that failed
- terrain pass
- the terrain-only sequential re-read of the addresses whose raster export had timed out, engine timeouts unchanged, with what recovered and what did not
- earlier run
- the first run, on 15 August: three addresses in every council area
Re-running is one command against live services and takes several hours at concurrency 5. The rule is fixed but the register grows, so a later run draws a sample a row or two shifted from this one; the published results carry the register id of every address drawn, so any pick can be checked. Expect the terrain figures to move with upstream load; expect the rest to hold.
The concept
Why a wallet of receipts.
A card tells you what it is before you open it.
That is the whole trick a wallet already knows. The logo, the category, the amount — you read an Amazon card without opening it.
So these nine do the same: the section, how much of it resolved, and the finding in words. Nine closed cards are the report at a glance. Opening one is a choice about detail, not the only way to find out what is inside it.
And the receipt is the part you keep.
A planner's due-diligence sheet gets checked by someone else. A number that cannot be traced back to where it came from is a liability, not an answer.
Every value here carries the query that produced it. Paste that query and you get the same answer back.
A colour is a name, not a verdict.
Amazon is orange whatever you spent. Major Site Constraints — the card beside this — is red on a clean site as much as a compromised one, which is why every card states its finding in words as well.
The exhibit: red whatever the rows below say — the words carry the verdict.
- Rail & road
- no rail within 300 m; no major road within 150 m
- Bushfire
- Not mapped as bush fire prone
- Heritage
- None mapped