The problem
A property value or rent estimate is only as good as the comparable sales behind it, and those comparables don't live in one place. For-sale and for-rent listings across Australian states — and separately across New Zealand — are published through regional sites with their own layouts, their own field naming, and their own quirks. Building a valuation model first means solving a data problem, not a modelling one.
What was built
State-by-state (and, separately, NZ city-by-city) listing collection feeding into a single normalized property database — consistent fields for address, price, bedrooms, land size and listing status regardless of which regional source it came from. That normalized dataset fed a comparable-sales estimation layer: given a property, find genuinely similar recent sales and derive a value or rent estimate from them.
Why this is the hard part
The scraping itself is the easy 20%. The real difficulty is reconciliation: the same property listed twice with slightly different addresses, a price that's a "from" figure rather than an actual asking price, a listing that's gone stale but wasn't marked as such. A valuation model is only trustworthy if the data underneath it is deduplicated and current — which means the collection layer has to be built for correctness, not just volume.