When we began testing an automated valuation model for PropertyMesh, the initial plan appeared manageable.
Collect historical transactions. Standardize the property characteristics. Add geographic and market variables. Train several statistical and machine-learning models. Compare their errors. Use the strongest model to estimate the value of an unseen property.
That was the simplified version of the problem.
It did not survive contact with real estate data.
Generating a number was not especially difficult. Approaches such as hedonic regression, Random Forest, Gradient Boosting and spatial models can all produce estimates, and our Gradient Boosting prototype did. The much harder question was whether the number reflected the property well enough to deserve confidence.
The problems appeared one after another.
What exactly should the model predict? How should it distinguish an off-market valuation from a sale-price prediction after a property is listed? How do we determine whether two records actually represent comparable homes? How do we prevent a model from appearing highly accurate simply because nearly identical properties from the same building or street remain in its training data?
Then there was everything the structured data did not contain.
A database might tell us that a home has three bedrooms, two bathrooms and a finished basement. It cannot adequately describe workmanship, layout flow, renovation quality, or whether a kitchen received a relatively minor cosmetic refresh or a much more substantial rebuild. Materials, views, interior condition and the consistency of improvements throughout the property are often represented poorly or not at all.
Computer vision appeared to offer a way to recover some of that missing information.
We processed hundreds of thousands of listing photographs to extract basic image-derived signals. Doing that at scale introduced its own infrastructure requirements: images had to remain associated with the correct properties and listing histories, be stored and retrieved reliably, processed consistently and potentially processed again as the underlying models changed. We also built the code for a much richer condition-scoring layer, but development paused before that system was ever run and validated, so we never learned from our own data whether photographs could support the detailed distinctions a valuation would need.
As the project progressed, it became clear that the AVM was not just a prediction model. It depended on a data pipeline with substantial ongoing infrastructure requirements. The prediction model was only one component of that system. Properties had to be matched consistently across listing and transaction histories, records had to be cleaned without introducing information that would not have been available on the valuation date, locations had to be resolved accurately enough for spatial comparisons, comparable candidates had to be retrieved efficiently, and every additional source of information introduced its own requirements for processing, validation and maintenance.
PropertyMesh ultimately paused further development before public deployment. The continuing cost of the data, computing infrastructure, image processing and model maintenance required a larger allocation of resources than we could presently justify.
What follows is a record of what we built, what we measured and what remained unproven when we paused.