analyse_site
ChatGPTPerform a geospatial planning analysis for a specific site. Given a site reference, returns all planning-relevant data that intersects or surrounds the site: - Which local planning authority (district) the site falls within - Planning applications on the site (full history) and within a 500m surrounding ring (last 3 years) - Allocations, SHLAA sites, and Local Plan Policies that overlap the site - Planning constraints: AONB, SSSI, flood zones, green belt, conservation areas, listed buildings, scheduled monuments, ancient woodland, TPOs, national parks, SAC, SPA, Ramsar, agricultural land classification, radon, surface water, coal mining, AQMA, and 20+ more layers - Land Registry titles intersecting the site This is the right tool when the user has a specific site in mind and wants to understand its planning context — as opposed to district-level tools which return data for an entire local authority area. GEOMETRY NOTE: All coordinates must be in British National Grid (SRID 27700 / OSGB36), not WGS84 (lat/lng). If the user provides lat/lng coordinates, ask them to convert to BNG first, or use a title number or site_id instead.
get_affordable_housing_policy
ChatGPTGet the affordable housing policy requirements for a UK district. Returns the policy-derived affordable housing percentage(s) the authority requires on qualifying residential developments. Each entry includes: - below_dwelling_threshold / above_dwelling_threshold — the affordable housing % required below and above the dwelling-number threshold at which the policy applies - policy — the policy reference / text the requirement is drawn from - page_number and url — the source document location Use this to answer questions like "what is the affordable housing policy in Camden?" or "how much affordable housing is required in South Oxfordshire?".
get_allocations
ChatGPTGet allocated development sites for a UK district. Returns individual allocated sites from the Local Plan, with address, policy notes, site size, and allocation type. Each site includes: - Site name and address - Allocation type: Adopted (full weight), Draft (limited weight), Withdrawn, or Deallocation - Allocation notes — the policy text describing what development is expected or permitted on the site - Site size (hectares) and units (dwellings) where available A district can have hundreds of allocations. Use keywords to filter to relevant sites, e.g. ['residential', 'housing'] or ['employment'] or a specific road name or area.
get_application_documents
ChatGPTList all documents attached to a planning application, with classification metadata. Given a planning application UUID, returns each document's id, title, category classification, and a direct URL to the document on the Landstack platform. Always share these URLs with the user — they can open the document directly. Document categories include: Officer Report, Decision Notice, Appeal Decision, Design and Access Statement, Planning Supporting Statement, Viability Statement, Transport Assessment, Flood Risk Assessment, Environmental Impact Assessment, Affordable Housing Statement, and 50+ more types. This tool returns metadata only — no document text. Use get_document_text to fetch the full content of a specific document once you've identified which one you want. Optionally filter by category (e.g. 'OFFICER_REPORT') to return only documents of that type.
get_document_text
ChatGPTFetch the full extracted text of a single planning document. Given a planning application UUID and a document_id (obtained from get_application_documents), returns the document's classification, full extracted text content, and a direct URL to the document on the Landstack platform. Always share this URL with the user alongside any analysis. Documents can be very large (50k+ characters). If the document exceeds the response size budget, the text will be truncated and a clear marker included so you know what you're seeing. The original character count is always returned.
get_five_year_supply
ChatGPTGet the housing land supply position for a UK district. Returns the authority's five year housing land supply position, recent housing delivery record, and the status of its SHLAA / Call for Sites process — the data needed to answer questions like "what is the five year supply position in Cotswold?" or "is the SHLAA open in Bristol?". Three sections are returned: - five_year_supply: the latest published position. projected_supply is the number of years of deliverable supply (e.g. 2.62 = 2.62 years). A value below 5.0 means the authority CANNOT demonstrate a five year supply — a key planning hook that adds weight to housing proposals. five_year_supply_demonstrated states this directly. buffer is the % buffer applied (typically 5% or 20%). - housing_delivery: annual delivered-vs-required figures. consequence flags Action Plan / Housing Delivery Test triggers where the authority underdelivered. - call_for_sites_status: whether the Call for Sites / SHLAA process is open. shlaa_stage is the descriptive stage, call_for_sites_open is true when the authority is currently accepting site submissions, and closing_date is the submission deadline where known. For the individual assessed SHLAA sites themselves, use get_shlaa_sites.
get_local_plans
ChatGPTGet the local plans in force for a UK district. Returns all active local plans for the district — there will often be more than one (e.g. an adopted district Local Plan plus one or more Neighbourhood Plans, or an emerging replacement plan alongside the adopted one). Each plan includes: - Name and type (Local Plan / Joint Spatial Plan / Minerals and Waste Plan) - Current stage in the adoption process (Scoping → Issues & Options → Preferred Options → Pre-Submission → Submission → Independent Examination → Adopted) - Status (Current / Emerging) — use this to judge weight in decision-making - Number of policies available (use search_local_plan_policies to retrieve them) - URL to the published plan document Use this first to understand what plans exist before fetching policies.
get_neighbourhood_plan_policies
ChatGPTGet the policies within neighbourhood plans for a UK district. THIS TOOL COVERS NEIGHBOURHOOD PLANS ONLY (parish-level plans). For district Local Plan policies, use search_local_plan_policies instead. Returns individual policies grouped by neighbourhood plan, showing which specific plan each policy comes from, its policy group (e.g. "Village Centre", "Core Shopping Zone", "Strategic Employment Sites"), and the full policy text. Each policy maps to a policy type: - Economy — employment, retail, economic development policies - Transport — highways, cycling, parking policies - Open / Green Space — parks, green infrastructure, amenity policies - Constraints and Conservation — heritage, design, environmental constraints - General Development — general development management policies - Proposed Development — specific site allocations proposed in the NP Use get_neighbourhood_plans first to see which plans are in force for the district and whether they are 'made' (full weight) or 'emerging'. Filter by plan_name to get policies from a specific plan, e.g. 'South Cerney'. Filter by policy_type to see just Economy or Transport policies across all plans.
get_neighbourhood_plans
ChatGPTGet neighbourhood plans for a UK district. Neighbourhood plans are community-led planning documents that set policies for a specific parish or neighbourhood area. Once 'made' (adopted), they carry full weight alongside the district Local Plan. Returns all neighbourhood plans with: - Plan name and the parish/area it covers - Status: 'made' (fully adopted) or 'emerging' (in preparation) - URL to the published plan document A district typically has many neighbourhood plans across different parishes. Use status='made' to return only those carrying full weight. Use alongside get_local_plans for a complete picture of planning policy.
get_shlaa_sites
ChatGPTGet Strategic Housing Land Availability Assessment (SHLAA/SHELAA/HELAA) sites for a UK district. A SHLAA assesses sites put forward by landowners for their potential to deliver housing or employment development. Each assessed site includes: - Site name and address - Assessment type: LAA Positive (suitable/available/achievable), LAA Negative (not deliverable), LAA Not Assessed, Call for Sites, or Ruled Out - Planning notes — the authority's assessment of the site's suitability, constraints, and potential capacity Use keywords to narrow results to specific areas or site types.
get_site_map
ChatGPTGet a satellite map image of a site with its boundary outlined. Given a site reference, returns a stable, hosted URL for a Google satellite (hybrid) map image with the site's boundary drawn as a red polygon. The URL is safe to embed directly in documents, reports, or messages — e.g. Markdown  or an <img> tag — and stays valid indefinitely. Use this whenever the user wants to see or include a picture/map of a site. By default only the URL is returned, which is cheap and all you need to embed the image in a document. Set include_image_bytes=true only if you need to view the image inline yourself (it returns the PNG as well, which is large). Accepts the same site references as analyse_site (title_number, site_id, wkt in BNG, application_number [+district], or client_site_reference). All coordinates must be British National Grid (SRID 27700), not lat/lng.
get_street_view
ChatGPTGet Google Street View images of a site's road frontage(s). Given a site reference, works out which roads front the site and, for each, returns TWO images from the same spot on the road: - frontage: looking at the nearest point of the site (what the plot looks like) - road_view: looking along the carriageway (what the road/access looks like) Each is a stable, hosted URL you can embed directly in a document (Markdown  or an <img> tag), under frontage.url and road_view.url. The result also includes an overview_map.url — a satellite locator showing where each numbered view was taken and which way it looks — useful to orient the reader. Each frontage also carries: - road: the road name - distance_m: how far the road is from the site - image_date: when Google captured the panorama Frontages with no Street View coverage are skipped. Use this when the user wants to see the site from the road, or a picture of the street frontage. By default only URLs are returned (cheap, all you need to embed). Set include_image_bytes=true only to view the images inline yourself. Accepts the same site references as analyse_site (BNG / SRID 27700 only).
list_planning_authorities
ChatGPTList UK local planning authorities with their stable integer IDs. Use this to look up the canonical district_id for an authority, then pass that ID to the district-scoped tools (search_planning_applications via district_ids, and the district_id argument on get_local_plans, get_allocations, get_shlaa_sites, etc.). Querying by ID is the reliable way to scope to an authority — it avoids name matching and the risk of resolving to the wrong council (e.g. a near-twin like East vs West Devon). Pass search to filter by a name fragment (case-insensitive), e.g. 'devon' returns every Devon authority with its ID so you can pick the right one. Omit search to list them all.
lookup_titles_by_address
ChatGPTLook up Land Registry title numbers from a list of addresses or postcodes. Takes a list of address strings or UK postcodes and returns matching title records from the Land Registry dataset. Each result includes the title_no, registered address, postcode, and tenure (Freehold/Leasehold). Use this when: - The user provides one or more property addresses and wants to know the title number - You need a title_no to pass to analyse_site for full planning context - Checking which titles exist at a specific address or postcode Inputs can be mixed — postcodes (e.g. "SW1A 1AA") use an exact match; anything else is matched as a case-insensitive substring against the registered address. Up to 20 titles are returned per input. If the goal is planning context for a specific property, pass the title_no straight to analyse_site without waiting for user confirmation — unless multiple titles are returned and it is genuinely unclear which one the user means.
purchase_titles
ChatGPTPurchase HMLR (England & Wales) Land Registry title documents. SPENDS MONEY. This buys official copies from HM Land Registry using the user's Landstack wallet balance — up to ~£140 for a full batch. Treat it as an irreversible spend. YOU MUST NOT purchase without explicit user confirmation. The tool enforces this: - Call it WITHOUT confirm (or confirm=false) FIRST. It returns a PREVIEW of the exact titles that would be bought and buys nothing. - Show the user that preview (the title numbers, whether the plan is included, that this charges their wallet) and get their explicit go-ahead. - Only then call again with confirm=true to actually purchase. Never set confirm=true on the user's behalf without them clearly agreeing to buy. Scope: England & Wales (HMLR) titles only — Scottish (INSPIRE ID) titles are not supported here. Maximum 10 titles per call. Purchases are asynchronous: titles come back as "queued" and complete shortly after — re-run analyse_site on the title to see the register once it lands.
search_company_ownership
ChatGPTSearch the publicly available HM Land Registry corporate ownership dataset (CCOD/OCOD) to find all titles registered to a company. Search by company name (substring match) and/or company registration number. Returns the matching company details and all their registered title records, including title number, address, tenure, district, region, and price paid. Useful for: - Finding all land/property owned by a developer, housebuilder, or landowner - Checking whether a site is owned by a specific company - Identifying corporate landholdings in an area - Overseas company ownership (OCOD data included) Note: This covers corporate/company ownership only. Private individual ownership is not in the public dataset and requires a title purchase.
search_local_plan_policies
ChatGPTSearch the policies within district-level local plans for a UK district. THIS TOOL COVERS DISTRICT LOCAL PLANS ONLY. For neighbourhood plan policies (parish-level plans like "South Cerney Neighbourhood Plan"), use get_neighbourhood_plan_policies instead. Returns policy summaries grouped by plan. A district typically has multiple plans in force simultaneously — policies from all of them are returned and clearly labelled with their source plan, so you know which plan each policy comes from and what weight to give it (Adopted carries full weight; Emerging plans carry weight proportionate to their stage). Without keywords: returns all policies across all plans for the district. With keywords: returns only policies whose policy number or summary text contains any of the supplied keywords (case-insensitive). Typical workflow: 1. Call get_local_plans to see what plans exist for the district. 2. Call this tool with relevant keywords to find applicable policies, e.g. ["housing", "affordable"] or ["green belt"] or ["heritage"].
search_planning_applications
ChatGPTSearch for UK planning applications with various filters. Use this to find planning applications by: - Application reference number or district/local authority - Keywords in the application description, or phrases in the full text of attached documents (officer reports, decision notices, supporting statements or others) - Decision status (granted, refused, pending, withdrawn etc.) - Submission date ranges (submitted_date_after / submitted_date_before) - Application decision date ranges (decision_date_after / decision_date_before) - Appeal submission date ranges (appeal_submitted_date_after / appeal_submitted_date_before) - Appeal decision date ranges (appeal_decision_date_after / appeal_decision_date_before) - Number of residential units, applicant name, application type, use class Each result includes a uuid, url (direct link to the application on the LPA's own planning portal — always share this with the user), and site_id. Use the uuid with get_application_documents to list documents, then get_document_text to read them. Use site_id or the planning app reference number with analyse_site for full geospatial planning context. Where an appeal exists, appeal_url links to the appeal record on the LPA portal. When document_keywords is supplied, results include a matching_documents array with document_id values and text snippets — pass the document_id directly to get_document_text to read the full document. Note: this tool searches by description text and metadata — it does NOT search by address. If the user asks about planning applications at a specific property address and keyword results are poor or empty, use lookup_titles_by_address to get the title_no, then call analyse_site with it instead.