Property records need listing history, not just today's price
Separate property identity from listing observations to track prices, status changes and relistings without false conclusions.
In this article
THE KEY IDEA
A property, a listing and a price observation are different entities. Preserve those distinctions before building a market trend.
01Separate the property from its advertisements
One property can appear on several portals, through different agents or in multiple listing periods. A listing identifier usually belongs to the source advertisement, not necessarily to the physical property. Keep source listing IDs and a separately reviewed property match.
Address matching needs care. Unit numbers, building names and approximate locations can make two records look identical when they are not. Do not merge apartments simply because the street address is the same. Preserve the original address and any uncertainty in the match.
02Keep measurements and price definitions explicit
Record currency, price type and period where relevant. Distinguish sale asking price from rent, and total area from living area or plot size. A numeric value without its unit and meaning cannot support a defensible comparison.
Preserve source labels alongside normalised fields. Local property terminology and measurement practices can differ. If a source does not clearly identify a measurement, flag it for review rather than forcing it into the nearest available column.
| Entity | Useful fields |
|---|---|
| Property candidate | Address, unit, type and match status |
| Source listing | Listing ID, URL, agent and advertised status |
| Observation | Price, availability and collection time |
| Measurement | Value, unit and source meaning |
| History event | Observed change and supporting source |
03Do not confuse missing with sold
A listing disappearing from search results does not prove that the property sold. The source may have changed its filters, the advert may have expired or the collection may have failed. Use an explicit source status when available and preserve the evidence behind any transition.
Track first seen, last seen and last successful check separately. First seen in your dataset is not necessarily the original listing date. These distinctions matter when estimating time on market or comparing listing turnover.
04Keep cohorts consistent over time
Compare the same geography, property type and collection scope. A shift toward larger homes in the sample can raise the median asking price without any individual property becoming more expensive. Report sample counts and composition alongside summary statistics.
Deduplicate carefully across portals while keeping source-level observations. If two advertisements disagree on price or area, do not silently choose one. Keep the conflict visible and apply a documented preference or review rule.
05Design the output for auditability
A consumer should be able to trace a reported price change to the relevant listing and observation. Keep schema versions, match decisions and source context with the history. Validate a sample of unit-level addresses, relistings and missing statuses before scaling.
Treat the result as a dataset of published information, not a valuation or a record of completed transactions unless the source and scope actually provide that. Clear boundaries make the data more useful for research and reduce misleading interpretation.
References & further reading
Put it into practice.
Try a public-page workflow, or scope a maintained dataset with our team.