UK postcode neighbourhood report
postcode_reportFull neighbourhood report for one UK postcode, assembled live from UK government open data.
Covers eleven categories: demographics (Census 2021), crime (data.police.uk), deprivation (IMD/WIMD/SIMD/NIMDM), property prices (HM Land Registry), broadband and 5G (Ofcom), noise (Defra), transport, amenities (OpenStreetMap), schools (DfE register: name, phase and distance only, no Ofsted grades) and planning constraints (Planning Data platform, Environment Agency).
Every figure carries the geography it describes (a postcode, an LSOA of ~1,500 people, or a whole local authority), the period it covers, and a benchmark where one exists. Read those: a crime count describes a 1 km square, and Ofcom mobile coverage describes an entire local authority, not the street.
Args:
postcode (string): UK postcode, spaces optional
categories (string[], optional): subset to fetch; omit for all eleven
include_sources (boolean): append publisher and licence per category (default false)
response_format ('markdown' | 'json'): default 'markdown'
Returns: Per category: a status, a one-paragraph summary, the facts (label, value, band, benchmark, geography, period, source id) and any caveats.
Statuses that are normal rather than failures:
"out_of_coverage": the dataset genuinely does not cover this nation. Census tables are England & Wales; police.uk excludes Scotland; Planning Data, Defra noise and the DfE school register are England-only. The reason and the devolved equivalent are given.
"unavailable": a pre-built extract has not been generated for this area yet (noise, currently).
"partial": some sources answered and some did not; check notes.
Examples:
"What's SW11 1AA like?" -> postcode="SW11 1AA"
"Is the broadband any good at M1 1AE?" -> postcode="M1 1AE", categories=["broadband","mobile"]
"Crime and schools near LA23 1AA" -> postcode="LA23 1AA", categories=["crime","schools"]
Errors:
"No such postcode" with suggestions when the postcode does not exist
Terminated postcodes are reported with the year they were withdrawn
Not a survey, valuation or conveyancing search. Check anything decision-critical against the source.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| postcode | Yes | A UK postcode, with or without a space, e.g. "SW11 1AA" or "m11ae" | |
| categories | No | Which sections to fetch. Omit for all eleven. Fetching only what you need is faster and much smaller — e.g. ["crime","schools"] for a family-safety question. | |
| include_sources | No | Append the publisher and licence of each dataset used (default false) | |
| response_format | No | 'markdown' to read, 'json' for the full structured facts | markdown |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ||
| postcode | Yes | ||
| categories | Yes | ||
| local_authority | Yes |