🏠 Automated Property Valuation Model — Live Regression
Watch an automated valuation model regress a property's estimated price from location, size and condition features, and see how the confidence interval narrows as comparable sales are added.
About the Automated Property Valuation Model
An automated valuation model (AVM) estimates what a property is worth without a human surveyor ever visiting it, by learning the statistical relationship between a property's features and the prices that similar, nearby properties recently sold for. This simulation implements the core of that pipeline honestly: a real multiple linear regression, fitted by ordinary least squares to a set of comparable sales, predicting price from square footage, a location desirability score, bedroom count, bathroom count and a condition rating. Every number on screen — the fitted coefficients, the R², the residual standard error, the confidence band — is computed live from the actual matrix algebra behind the regression, not animated for effect.
The headline feature is the confidence interval around the estimated value, and specifically how it behaves as data accumulates. With only a few comparable sales, the model's coefficients are poorly constrained and the band around the price estimate is wide; add dozens more comparables — one at a time, or with the auto-add feed running — and the band visibly tightens as the underlying (XTX)-1 term shrinks. Adjust the subject property's own sliders — bigger, better located, more bedrooms, better condition — and watch the point estimate slide along the fitted regression line in real time.
🔎 What it shows
A live scatter of comparable property sales (price vs. square footage), a fitted regression line with a shaded confidence band, a coefficient bar chart comparing fitted weights against the true generating weights, and a chart tracking how the confidence-interval half-width has shrunk as comparables were added over time.
🖱️ How to use
Drag the subject property's sliders (square footage, location score, bedrooms, bathrooms, condition) to move the estimate. Click "Add comparable sale" to add one data point at a time and watch the band tighten, or toggle "Auto-add" to stream comparables continuously; use Pause and Reset to control the feed and start over from a small sample.
💡 Did you know?
Real AVMs used by UK mortgage lenders are typically only trusted below a certain loan-to-value threshold precisely because of this same statistics: too few recent comparable sales nearby, and the confidence band is judged too wide to rely on without a human valuation.
Frequently Asked Questions
What is an Automated Valuation Model (AVM) and how do real ones work?
An AVM is a statistical or machine-learning system that estimates a property's market value from its measurable features — square footage, location, bedroom and bathroom count, condition, age — and from recent sales of comparable properties nearby, without a human surveyor visiting the property. Real-world AVMs (used by mortgage lenders, online estate portals and tax assessors) typically combine a regression or gradient-boosted model trained on millions of historical transactions with a local comparable-sales adjustment, then report both a point estimate and a confidence band reflecting how much comparable data was available nearby. This simulation implements the regression half of that pipeline with real ordinary least squares mathematics, not a lookup table.
Why does the confidence interval narrow as more comparable sales are added?
The half-width of the confidence interval for a regression prediction is proportional to the residual standard error multiplied by the square root of x₀ᵀ(XᵀX)⁻¹x₀, where X is the matrix of comparable features and x₀ is the subject property's feature vector. As more comparable sales (rows) are added to X, the matrix XᵀX grows and its inverse shrinks element-wise, which drives that square-root term toward zero. In plain terms: with only a handful of comparable sales, the model's estimate of each feature's price effect is uncertain, so the predicted price could be badly wrong; with hundreds of comparables spanning a range of sizes and conditions, the fitted coefficients become precise and the band around the price estimate tightens.
What is multiple linear regression and why is it used for property valuation?
Multiple linear regression models price as a weighted sum of features: price = b₀ + b₁·sqft + b₂·location + b₃·bedrooms + b₄·bathrooms + b₅·condition + error. The weights (coefficients) are chosen by ordinary least squares to minimise the sum of squared errors between predicted and actual sale prices across all comparable sales. It is popular for valuation because the coefficients are directly interpretable — "each extra 1,000 sq ft adds roughly this many pounds" — which matters for regulatory and consumer trust reasons, even though more flexible models (random forests, gradient boosting, neural networks) often achieve lower error in production AVMs.
What does the R² value shown in this simulation mean?
R² is the fraction of the variance in comparable sale prices that the fitted regression explains, calculated as 1 minus the ratio of the sum of squared residuals to the total sum of squared deviations from the mean price. An R² of 0.85 means 85% of the price variation across comparables is accounted for by the five features in the model; the remaining 15% is attributed to noise, unmeasured features, or genuine randomness in how buyers value a specific property. Because this simulation generates comparables from a true underlying model plus random noise, R² here is a direct, tunable measure of how much of that noise you have injected.
Why do different features get different-sized coefficients?
Ordinary least squares picks each coefficient to best explain the price variation attributable to that feature after accounting for all the others, so a feature that moves price a lot per unit change (like an extra 1,000 sq ft) naturally gets a larger coefficient than one with a smaller typical price effect (like one point of a 1–10 condition score), even if both are equally "important" in a statistical sense. The bar chart in this simulation lets you compare the fitted coefficients against the true generating coefficients, and watch the fitted values converge toward the true ones as more comparable sales are added and estimation noise shrinks.
What is the difference between a confidence interval and a prediction interval here?
A confidence interval (what this simulation displays) bounds the uncertainty in the model's estimate of the average price for properties with the subject's exact features — it narrows toward zero as more comparable data arrives, because with infinite data you would know that average exactly. A prediction interval instead bounds where one actual sale price is likely to fall, which must also account for the irreducible noise in individual transactions (buyer whims, negotiation, timing) and therefore never shrinks below roughly the residual standard deviation, no matter how much data you collect. AVMs quote something closer to a prediction interval in production because clients care about a single sale price, not an average.
What are the real-world limitations of automated valuation models?
AVMs struggle with unique or unusual properties that fall outside the range of nearby comparable sales, with fast-moving markets where recent comparables are already stale, and with features that are hard to quantify numerically, such as kerb appeal, a recent renovation's finish quality, or a noisy road. They also inherit any bias present in historical sales data — if certain neighbourhoods were historically under- or over-valued for non-market reasons, a naively trained AVM will project that pattern forward. This is why regulators generally require a human valuation, not an AVM alone, for high-stakes decisions like mortgage lending above a certain loan size.
Comparable sales are generated from a hidden "true" linear model plus random noise; a real ordinary least squares fit (Gauss-Jordan matrix inversion of XᵀX) recovers coefficients and a residual standard error live, and the confidence band is drawn from x₀ᵀ(XᵀX)⁻¹x₀ at every subject feature vector — nothing is precomputed or faked.
3D · Three.js / WebGL renderer · 60 FPS target · runs fully client-side, no install