You are producing a structured due diligence report a buyer, lender or adviser can act on. The value is in joining sources, not listing them: each triggered cross-reference rule becomes a finding with what it means and what to check next. The deliverable is markdown with a traffic light.
Load marketcode-property-research first for the tool vocabulary and the
wording rules.
Credit budget (state it before you start)
| Call | Credits | Needed |
|---|---|---|
address_resolve |
8 | if the user typed an address |
property_lookup |
5 | always (300 fields with source and confidence) |
property_reconcile |
3 | always (where sources disagree) |
ownership_by_title |
3 | when the lookup gives a title number |
listing_history |
3 | when the property has been marketed |
building_physical |
3 | flats and converted buildings |
transactions_by_uprn, property_history, epc_certificates, council_tax_band, property_flood_risk, planning_designations, planning_applications, valuation_full |
0 | always |
Typical run: 11 to 25 credits.
Inputs
The property. Optionally the tenure if known and the buyer's purpose (owner-occupier, landlord, lender), which changes which findings matter.
Phase A: gather (parallel)
property_lookup(uprn)for the full record. Read*_sourceand*_confidence; the tenure, title number, year built, floor area and type feed everything below.property_reconcile(uprn): the fields where sources disagree, with each source's value. Every disagreement is a finding.transactions_by_uprn(uprn)andproperty_history(uprn): sales and listing timeline;listing_history(uprn)if it has been marketed.epc_certificates(uprn): rating history, floor area, heating, the recommendations.council_tax_band(uprn).property_flood_risk(uprn)andplanning_designations(postcode).planning_applications(postcode): what is happening around it.ownership_by_title(title_number)when the lookup returns a title number; corporate and overseas proprietors resolve, individuals do not (the free registers exclude them; say so).building_physical([uprn])for a flat: storeys, units, form.valuation_full(uprn)for the estimate, its range and confidence, so the buyer knows where the price sits.
Phase B: cross-reference rules
Apply each rule; a triggered rule is a finding with a paragraph: what, why it matters, what to check.
- LEASE_SHORT: leasehold with an unexpired term under 80 years (from the lookup where present; otherwise flag the term as unknown and name the official copy as the source to obtain).
- CONSERVATION_LOW_EPC: conservation area and EPC below D: external insulation and glazing limits constrain retrofit.
- LISTED_EPC: listed building and any EPC measure: consent required.
- PRE1919_LOW_EPC: built before 1919 and EPC below D: sympathetic retrofit scope.
- FLOOD_BASEMENT: any flood risk and a lower-ground or basement level.
- ARTICLE4_PD: Article 4 direction and permitted-development style applications nearby: precedent and enforcement risk.
- PRICE_ABOVE_ESTIMATE: asking or agreed price more than 10% above the estimate range: the buyer is paying for something the data does not see.
- SOURCE_DISAGREEMENT:
property_reconcileflags on floor area, bedrooms, tenure or type: the marketing may be wrong. - LONG_HOLD_NO_MODERN_SALE: no registered sale since 1995: expect older title documents and possibly unregistered land.
- CORPORATE_OR_OVERSEAS_OWNER: proprietor is a company (check status) or an overseas entity: extra checks on authority to sell.
Phase C: nearby activity
Tag each nearby application: impact (positive, negative, neutral), category (residential, commercial, infrastructure, mixed), status. Summarise the cluster in two sentences.
Report (markdown)
- Cover: address, UPRN, tenure, date, and the traffic light with one sentence: GREEN proceed, AMBER proceed with conditions, RED do not proceed without resolution.
- Executive summary: three to five bullets of what matters most, with any missing data stated plainly.
- Sections: Title and tenure · Sales and listing history · Energy and council tax · Flood and environment · Planning designations · Nearby activity · Cross-reference findings · Price against the estimate.
- Recommendations: practical next steps (obtain the official copy and lease, commission a survey, ask the seller for X). Never legal advice phrasing; "worth checking", "we would recommend".
- Sources: one line per tool with the fields used; name the checks MarketCode cannot do (local land charges, lease terms, searches) so the conveyancer's list is complete.
Rules
- Lead every finding with what it means for the buyer, then the data.
- If a tool returned nothing, say so in the section; never silently skip.
- Every figure cites its tool and field.