How the data is collected, how estimates are built, how the models are tested, and what the numbers can and cannot tell you.
In brief. This project turns public Auckland listing information into a value range with a stated source, date and error. It is a research tool, not a registered valuation or financial advice.
The Research Lab shows the current numbers. This page explains how they are produced and where the limits are.
Auckland Property Scout is an independent, non-commercial research project covering 17 suburbs on Auckland's North Shore and Eastern Bays: Browns Bay, Murrays Bay, Mairangi Bay, Rothesay Bay, Campbells Bay, Castor Bay, Milford, Long Bay, Waiake, Torbay, Takapuna, Devonport, Mission Bay, Kohimarama, St Heliers, Glendowie and Ōrākei.
The project shows the evidence behind an estimate. Instead of one price, it gives a range, a source, a date and a record of past errors.
The collector reads public Trade Me search results and listing pages for the 17 suburbs. It stores the facts needed for research, with a timestamp for each capture.
| Group | Examples | What it is used for |
|---|---|---|
| Identity and location | Listing ID, address, suburb, latitude/longitude, property type | Remove duplicates, map the listing and compare nearby properties. |
| Physical facts | Bedrooms, bathrooms, parking, land area, floor area, build decade | Size and type adjustment. |
| Price and campaign | Asking price, guide/auction/tender display, sale method, deadline, listing date | The advertised signal and how the vendor is asking buyers to respond. |
| Third-party estimates | Homes.co.nz AVM range, its date, council capital value (CV), land/improvement split | Outside estimates and inputs for the fallback model. |
| Nearby sales | Sold price, date, distance, property type, size, CV | Comparable-sales evidence. |
| Text | Cleaned public description wording | Topic and wording analysis. |
| History | Repeated captures, asking-price states, method changes, description digest | Price and sale-method changes. |
Public counts and medians use standard residential listings that are currently active. Relocatable homes, tiny homes, rentals and other non-standard entries are excluded by default. A toggle shows them. Leasehold properties are kept but flagged, because a leasehold price is not comparable with a freehold estimate. Tenure comes from a Homes record where available, with listing text as a fallback. It is not a title check.
At the 28 October 2026 snapshot, the database holds just over 1,000 captured listings. About 1,000 are active and standard. The app shows the current counts.
Trade Me often leaves out tenure, build year and previous sales. We collect them from Homes.co.nz property records when there is a match.
The tenure values are freehold, cross-lease, leasehold, unit title and unknown. Freehold usually means the owner holds the land and buildings, subject to the title. A cross-lease shares one title between homes, with a lease for each unit. A unit title gives ownership of a unit plus a share of shared property, often through a body corporate. Leasehold means the land is leased and ground rent may apply. Listing text is used only when there is no Homes record.
Homes gives a build decade and, for many properties, a built date in its timeline. We store an approximate build year and its source, and show it as c. 1960. It is not an exact construction date. Older homes may need more maintenance or have different renovation needs, but age alone is not used to predict price.
The Homes timeline records previous sales: date, price if disclosed, record type and council confirmation. These records are stored in property_sales and shown in the listing drawer. A previous sale is history. It is not the current asking price.
| Profile field | Source | At the 28 Oct 2026 snapshot |
|---|---|---|
| Tenure | Homes.co.nz ownership record; listing text fallback; otherwise unknown | 69% of standard active listings known |
| Approximate build year | Homes built event/decade | 49% known |
| Previous sale records | Homes property timeline | 1,466 records across 458 listings |
We report coverage instead of guessing. The daily refresh adds new matches, and a random audit compares the database with the source.
Two prices are easy to confuse:
The map and listing cards use the same rule:
A tilde means there is no asking price, so the number is a value guide: ~$1.40m. A plain $1.02m means the listing asks that amount. The map bubble, listing card, price filter and price sort all use this rule.
Example. A property asks $1,023,000. The map bubble and card both show $1.02m; amounts are rounded on the map. If the same property went to auction with no asking price, the bubble would show ~$1.40m, with the tilde marking it as a guide.
Signals are used in a fixed order. Each one is shown with its source and confidence. A later method is used only when the earlier one is missing or weak.
We read the asking price, guide (“enquiries over”), auction date or deadline from the listing. This shows how the vendor is asking buyers to respond. It is not a valuation.
Homes.co.nz publishes an automated valuation model (AVM) range for many properties. We use its low, middle and high estimates, plus the update date, as the main range when available. It is an independent estimate, but still a model output, not a sale price.
When there is no AVM, we use recent nearby sales of a similar property type. Each sale is converted to a ratio of its price to its council CV. We apply those ratios to the subject property's CV. This makes small units and large houses easier to compare.
A sale 0.5 km away and a few months old counts more than a sale 2 km away and two years old. The 1.4 km and 11-month figures are model settings, not sharp cut-offs. A sale of the same property type gets more weight than a very different one, and a same-suburb sale gets a small extra weight. Q25, Q50 and Q75 are weighted quartiles: the low, middle and high points of the evidence.
Example. Suppose the property has a CV of $1,200,000. The weighted sales give ratios of 0.82, 0.90 and 1.01 at the 25th, 50th and 75th percentiles. The range is roughly:
This range is not a statistical confidence interval. It summarises the spread of the comparable sales. With only two or three usable sales, it gets a lower confidence label and should be read more cautiously.
The fallback is a hedonic model: it estimates a property from its features. We train it on listings that have a Homes AVM. It is used only when there is no AVM, no usable comparable range, and its confidence is acceptable.
The model learns how each feature relates to the AVM after allowing for the others. Logs make percentage differences easier to model and keep predictions positive. It is trained and tested on separate folds, so the error is measured on cases it did not see.
The council capital value is an official rating value, usually updated every few years. It lags the market. We use it as a feature, as the denominator for comparable ratios, and as a cross-check. It is not a current market estimate.
The listing detail shows the signals used, so you can see how the range was built.
A range is only helpful if its error is known. We report three standard measures.
MAE is the average dollar error. MAPE turns that into a percentage, which is easier to compare across cheap and expensive homes. R² runs from 0 to 1. A higher R² means the model follows the reference more closely, but says nothing about whether the reference is right.
Example. A model predicts $1.08m and the reference is $1.00m. The error is $80,000, or 8%. At a 7% MAPE, a $1.0m property is typically about $70,000 off. That helps research, but is not precise enough to call a valuation.
The 80% interval comes from out-of-fold errors: errors on cases left out during training. On the validation sample, about 80% of actual values fell inside it. It is a check on calibration, not a guarantee for one property.
| Signal (28 Oct 2026 snapshot) | Reference / test | Typical error | How to read it |
|---|---|---|---|
| Hedonic fallback with CV | 5-fold cross-validation against Homes AVM; 497 training cases | MAE $265k · MAPE 7.0% · R² 0.973 | Most accurate fallback. The target is an AVM, not a sale price. |
| Hedonic fallback without CV | Same test with CV removed | MAE $756k · MAPE 24.6% · R² 0.784 | A harder test. Much weaker, with a low-confidence label. |
| Comparable-sales model | Compared with Homes AVM on the same listings | MAE $275k · MAPE 7.2% · R² 0.969 | An independent check when an AVM exists. Small samples make it fragile. |
| Sale-price model | 320 recorded sold prices | MAE $195k · MAPE 13.4% · R² 0.830 | A different target: actual sale prices. It is a cross-check, not the primary range. |
| Old suburb-guide baseline | Same validation sample | MAE $1.22m · MAPE 47.5% | Shows the gain over a simple suburb median. |
Two points to keep in mind. The with-CV model is accurate partly because the AVM and CV are related. And the test uses random folds, not a time-based backtest. Daily snapshots will allow a time-based test later. Until then, these are internal validation figures, not an external audit.
Sale method follows a six-step ladder:
| Stage | Method | Interpretation |
|---|---|---|
| 0 | Auction | Vendor is testing the market and may accept a pre-auction offer. |
| 1 | Tender | Buyers submit offers by a deadline. |
| 2 | Deadline sale | Similar to tender, with a stated deadline. |
| 3 | Price by negotiation | No public number; a range may be discussed. |
| 4 | Price guide / enquiries over | A public expectation, often expressed as a floor. |
| 5 | Asking price | An explicit advertised number. |
The 0–100 sale-pressure score is a motivation proxy, not a prediction:
Half the score comes from how explicit the price signal is. Another 30% comes from time on market. Up to 20 points come from price cuts or method changes in the last 180 days. Scores of 40–64 are medium; 65+ is high. The weights are fixed by hand, not estimated from outcomes.
A single-snapshot test found no significant stage effect after controlling for suburb, type, size and other factors. The app therefore calls this a motivation or urgency proxy, not a price predictor. With enough price and method changes, we can test each listing over time.
Descriptions are public marketing copy. We test whether the wording carries information about price after controlling for the property and its location. Adjectives are not treated as facts.
We strip HTML, contact details, agency names, viewing details, tender dates and repeated developer copy. Suburb names are removed before topic modelling, so “Milford” or “St Heliers” does not become a topic that just repeats location.
TF-IDF turns words and two-word phrases into weighted counts. NMF (non-negative matrix factorisation) groups terms that often appear together into 12 topics. Each listing gets a topic share that adds to one. A listing can be partly about family living and partly about renovation.
NMF finds recurring word groups without being given the topics in advance. The labels are editorial summaries. The top terms in the Research Lab are the better guide to each topic.
Fixed word lists score urgency, luxury, renovation, views, family/schools and investment language. These scores are descriptive and are not added to the main value range.
From 28 October 2026, every listing has a dated asking-price history. We store each distinct observed price state, not a row for every day.
Each row stores the date, price, display text, sale method, previous price, dollar and percentage change, and days since the last observation.
Example. A St Heliers listing was first seen at $1,690,000 on 23 October 2026. On 28 October it was $1,550,000. That is −$140,000, or −8.3%, over 4.34 days. It is what was observed, not evidence that the property will sell at $1.55m.
The per-listing summary adds the number of changes, days to the first change, average gap between changes, cumulative change, largest drop and last direction. These measures can later show whether reductions cluster at a certain listing age, whether a description edit comes before a price cut, and how quickly vendors respond to a slow campaign.
A prediction can be tested when the property sells. The feedback layer compares the disclosed sale price with the estimate that existed before the sale. It records the error and recalibrates the model over time.
A Homes.co.nz sale is matched to a listing only when the sale date is on or after the listing start (the advertised date, or first observation). A sale before the listing is history, not feedback. The prior estimate is the last Homes AVM point before the sale, or a pre-sale snapshot if that is missing. Today's refreshed value is not used as a forecast.
For each group (all listings, suburb, property type and tenure), the layer calculates the median ratio of actual sale price to the prior estimate:
A ratio above 1 means prior estimates were, on average, too low; below 1 means too high. It is applied as a separate sale-feedback signal, not a silent replacement for the Homes AVM or comparable range. At least ten pre-sale outcomes are needed before a factor is applied. Until then the status is “warming up”.
At 30 outcomes, a ridge regression is fitted on actual sale prices. Ridge regression is a linear model that keeps its weights from becoming too large. Inputs include the prior value, asking price, CV, size, bedrooms, build year, days to sale, tenure, type, suburb and sale method. The target is log(sale price), which models percentage errors. Predictions are stored as sale_feedback_ml and tested on outcomes not used to fit the model. They are not the primary range.
Current snapshot. Four same-property sales are available. Their median absolute percentage error is about 5.5%, and 50% fell inside the prior 80% range. Four cases are not enough to recalibrate every property, so the layer is still warming up.
| Address | Sale date | Actual | Prior estimate | Absolute error |
|---|---|---|---|---|
| 101 Glamorgan Drive | 25 Mar 2026 | $1.50m | $1.44m | 4.5% |
| 1/36 Thatcher Street | 30 Mar 2026 | $1.312m | $1.205m | 8.9% |
| 40B Waiake Street | 26 Aug 2026 | $1.73m | $1.851m | 6.5% |
| 2A, 2B, 2E Rangitoto Terrace | 4 Sep 2026 | $1.40m | $1.419m | 1.4% |
The work is set up so someone else can check it, not just trust the interface.
Download the data: all data (ZIP) · SQLite database · listing facts CSV · price-change CSV · previous-sales CSV · checksums.
The ZIP bundle is the easiest single download. The checksum file records file hashes and build details. Derived data is CC BY 4.0; code is MIT. Source listing content remains subject to Trade Me's terms and is not redistributed.
When a number is uncertain, the interface should show a range, a confidence label, a source date or a caveat. A missing caveat is a defect, not a stronger claim.