I had the privilege of presenting at the International Conference on Real Estate Statistics 2026 in Tokyo, hosted by the IMF, the BIS / Irving Fisher Committee, the OECD, Eurostat, the Bank of Japan and Hitotsubashi University.
Give me six hours to chop down a tree and I will spend the first four sharpening the axe.
My talk, Cleaning the Whole House: Address Reconstruction and Spatial Matching, was about the sharpening. It is the less visible but decisive part of producing a Residential Property Price Index: reconstructing fragmented addresses, correcting entry errors and inconsistencies in transaction records, and matching every transaction to a place, so that raw housing data becomes reliable and fit for rigorous analysis.
Why Budapest
Hungarian house prices have grown exceptionally fast over the past two decades. The Corvin redevelopment in Budapest shows a clear gentrification effect, and capturing that effect over time was the original motivation of the project. It needed clean historical transaction data.
The mess
The data are 959,942 Budapest transactions from 2001 to 2023, taken from the tax authority database, where addresses were typed in by hand. They have to be matched to the official address registry. Fields and formats changed over time, some records keep the whole address in a single text cell, and historical spellings create typos everywhere. Before cleaning, only about half of the transactions had an identifiable address. One street alone, Bajcsy-Zsilinszky, appears in 29 different versions.
How the matching works
- Deterministic matching. Standardise the fields, then match on several sets of keys (street name and type, district or postal code, house number), keeping only unique candidates.
- Fixing typos. Correct street names with a string distance, using a conservative similarity threshold of about 70%.
- Property identifiers. Use property IDs to pass a known location on to other records, or to infer the district when only the street is known.
Where two sets of keys disagree, the pipeline flags it. In the most frequent conflict, between district and street type, the district wins.
What it delivers
After cleaning, about 93% of the transactions link automatically: 83% to a specific property, 10% to a street, and about 7% stay unmatched. A house number is available for about 89% of them. The whole pipeline runs in R on DuckDB.
With clean, geocoded transactions, the next question is which index best captures a market with strong spatial differences. The slides on the left walk through the full pipeline and the index comparison.
Dōmo arigatō to the organisers, and to the participants for the thoughtful comments and discussion.
The views expressed here are solely my own and do not necessarily represent the views of the National Bank of Hungary or the European Central Bank.