Project Overview and Business Context
The client was a proptech startup building tooling for residential mortgage brokers. Brokers needed fast indicative valuations to advise clients on affordability before committing to a property survey, and lenders needed a desktop valuation layer to triage cases before instructing a panel surveyor. Neither use case required a RICS-certified formal valuation: both needed a well-documented, data-driven estimate that was accurate enough to inform initial decisions. The HM Land Registry Price Paid dataset is the definitive public record of residential property transactions in England and Wales, updated monthly with full address, price, property type, tenure, and date. Combining that dataset with EPC certificate data, Ordnance Survey address matching, and a comparables analysis model creates a reasonable automated valuation model. The AI layer adds two things: a narrative report explaining the valuation rationale in plain English, and a confidence band that contextualises how reliable the AVM estimate is for that specific property type, location, and market condition. FCA Consumer Duty obligations apply to mortgage lenders using automated tools to inform lending decisions. The product is positioned as a desktop triage tool, not a formal valuation, and all reports carry explicit disclaimers that a RICS-qualified surveyor's formal valuation is required before mortgage completion. This positioning was confirmed by the client's FCA compliance advisor before launch.
Technical Architecture and Stack Decisions
The data layer is the foundation of this build. PostgreSQL stores a locally maintained copy of the HM Land Registry Price Paid dataset (updated monthly via their bulk data download) alongside EPC certificate data from the MHCLG open data portal and Ordnance Survey AddressBase for address matching and property attribute data. The comparables engine is a Python service that, given a subject property address and valuation date, retrieves the 20 most similar transactions within a 0.5-mile radius and 24-month window, filtering by property type (detached, semi-detached, terraced, flat) and tenure (freehold, leasehold). Similarity weighting applies higher weight to transactions of the same sub-type, closer in date, and within a tighter radius. The AVM estimate is the weighted median of comparables, with adjustments for floor area differences where EPC data is available. GPT-4o receives the comparables table, the AVM estimate, the property address, and a structured system prompt requesting a narrative valuation report. The report covers the local market context, the comparable selection rationale, the estimated value range, the confidence band with an explanation, and caveats. The Next.js frontend presents the full report with a map of comparable transactions, confidence band visualisation, and a PDF export function. The HM Land Registry API is used for real-time transaction lookups on recently sold properties that may not yet be in the bulk dataset.
Key AI and ML Components
GPT-4o handles the narrative report generation layer. The system prompt is designed to produce reports that read like a desktop valuation from an experienced estate agent: commentary on the local market, an explanation of why specific comparables were selected and weighted, a value range estimate with a midpoint, and a list of factors that could move the value above or below the range (property condition, extension potential, local school catchment, transport accessibility). The model receives structured data rather than raw text, which improves consistency and reduces hallucination risk. All numerical claims in the report (comparable prices, distance from subject property, days on market) are sourced directly from the comparables data passed to the model, and a post-processing step validates that no figures in the generated report diverge from the input data. The AVM engine itself is a statistical model, not an LLM: weighted median with adjustment factors. This separation between the quantitative valuation logic (auditable, reproducible) and the narrative layer (GPT-4o) is important for both reliability and for the FCA disclaimer positioning.
Challenges Solved and How
Address matching is the most common source of failure in Land Registry-based AVMs. User-entered addresses rarely exactly match AddressBase canonical forms. The address matching layer uses a combination of postcode lookup, phonetic matching on street names, and a fuzzy match on the full address string, with a confidence score for each match. Low-confidence matches prompt the user to confirm the matched address before proceeding. Thin comparable markets (rural properties, unusual property types, recently developed areas) produce unreliable AVM estimates. The system applies a comparables sufficiency check: if fewer than five comparable transactions are found in the primary search window, the radius and date window are expanded progressively. If fewer than three comparables are available after maximum expansion, the report flags an unreliable estimate and recommends a full surveyor valuation without attempting a numerical AVM. GPT-4o narrative accuracy on market commentary required calibration. Early versions produced generic market commentary that did not reflect local conditions. The system prompt was updated to include a local market data summary (average price per square metre by postcode district, 12-month price change) computed from the Price Paid database, giving the model factual local context to anchor its commentary.
Outcome and Measurable Results
The client deployed the MVP to 12 mortgage broker firms in the first quarter. Average valuation report generation time was 85 seconds from address entry to PDF download. Broker feedback indicated that 91% of reports were accurate within 10% of the eventual RICS formal valuation on the same property, measured across 340 cases where a formal valuation followed the AVM. Confidence band calibration was validated: properties where the AVM flagged low confidence showed higher divergence from formal valuations (average 14%) than properties with high confidence scores (average 6%), confirming that the confidence signal was informative. Two mortgage lender clients using the tool for desktop triage reported a 43% reduction in cases sent for full surveyor instruction before pre-approval, with lenders filtering out clearly unviable cases at the AVM stage.
Lessons for Similar Projects
Data quality determines AVM accuracy, and data quality takes time. Plan a sprint dedicated to data ingestion, cleaning, and address matching before writing any AI code. The Land Registry dataset is comprehensive but requires significant normalisation before it supports reliable comparables analysis. Keep the valuation engine statistical and the narrative layer AI. The valuation estimate must be reproducible and auditable for FCA compliance. Using an LLM to generate the numerical estimate introduces unpredictability that creates regulatory and reputational risk. Use LLMs for what they do well: producing clear, contextualised narrative explanations of data-driven outputs. Build the confidence model before building the narrative. Knowing when your AVM is unreliable and communicating that clearly is more valuable than a confident estimate that is wrong. Estate agents and lenders trust tools that know their own limitations.