Everything known about ONE site, assembled and judged — the site dossier.
Give a `uprn` (from address_resolve or address_autocomplete) or a `land_id`
(from sourcing_search). Returns in one call what would otherwise be six:
* `site` — the land parcel: area, land use, built coverage, and the
boundary as GeoJSON you can put straight on a map
* `valuation` — our AVM against the last recorded sale, with gain and
years held
* `ownership` — the registered proprietor, type, company number
* `energy` — the latest EPC
* `auction_history` — every appearance, matched on address as well as
UPRN, and whether it ever sold
* `designations` — LIVE checks: conservation area, green belt, AONB,
national park, flood risk, listed buildings
* `signals` — the judgement
READ `signals` FIRST. It is why this exists rather than being six calls.
Each entry names what fired it and carries its evidence: repeat auction
failure with the guide-to-estimate ratio, long_held with the nominal gain,
mees_unlettable with the EPC band (F and G cannot legally be let),
under_built with the plot coverage, corporate_owner with the company
number. A site with nothing to say returns `signal: "none"` explicitly.
ABSENCE IS A REAL ANSWER, NOT AN ERROR. No registered proprietor means the
polygon-to-title backfill has not reached this parcel — it covers about 44%
— not that the land is unregistered. No EPC, no auction history and no
valuation are all normal, and each says so in its own block.
A designation check that FAILS is reported as UNKNOWN, never as absent. Do
not tell a user a site is unconstrained on the strength of a failed check.
A SCHEME PRICES THE BUILD. Pass `scheme_gia_m2` (and `scheme_units` for a
cost per unit) and you get a `scheme` block: build cost from the published
construction index times the regional factor, with on-costs. You must
supply `rate_gbp_m2` yourself — no £/m² benchmark is loaded, so without one
the block reads `not_available` rather than inventing a rate. It is
CONSTRUCTION COST ONLY: no land, finance, sales, S106 or CIL, so it is one
side of a residual and never a residual. Say that when you report it.
`precedents` summarises what nearby applications were decided: an approval
rate with its denominator, and a median decision time on the much smaller
sample that carries both dates. Quote each with its own n, and never as a
probability for this scheme.
`plot_utilisation` gives built coverage and unbuilt ground. Coverage is
footprint over area — a ground-plane measure, NOT a density — and unbuilt
ground is an upper bound before any constraint or access test, not a
developable area.
`include_designations=False` skips the live lookups and answers from the
warehouse alone, which is faster.
UK only. Costs 25 credits.