vnappraise
vnappraise.tech ↗A weekly price and liquidity index for Vietnam’s property market, beside a valuation model that publishes its own error.
Figures read from vnappraise.tech on 1 October 2026.
The problem
Vietnam’s existing property reports measure the primary market: absorption at new project launches. Time-to-sell for resale homes had never been published there. Before a bank-collateral pilot, vnappraise holds its model to a bar it fixed in advance, with error measured on listings the model has not seen.
The approach
- A weekly index of the resale market, built from asking prices on one portal (batdongsan.com.vn): median price per m², new and withdrawn listings, and time-to-sell, by province, district and ward.
- A mix-adjusted series holds a fixed basket of 53 province-and-type cells, so only price changes within each cell move it.
- The index is free under CC BY 4.0, with a versioned methodology (v1.3) and a source CSV; together they rebuild every published figure.
- Three CatBoost gradient-boosted models, trained at α = 0.1 / 0.5 / 0.9 on 48 features, predict log price per m² and return a median with a p10–p90 interval.
- An automated search (autoresearch) tuned the deployed CatBoost v7 to depth 10; candidate models are ranked by median error on a shared temporal holdout before promotion, and the TabICL foundation model is available as an alternative.
- A closed loop runs every day: new listings are scored, and the model’s error is measured on listings first seen after its training cutoff and published in 7-day windows. When that error rises above a set threshold, and at least once a month, the model retrains. The new model ships only if its median error on the same held-out listings is within 0.25 percentage points of the current model’s, its training rows are intact, and its p10–p90 band is no further off the 80% target than the current model’s; otherwise the current model stays. Between retrains, the band is refit each week on the last 28 days of outcomes.
Architecture
Listings crawler (batdongsan.com.vn) → listings database → rule-based filters → weekly market index and CSV; listings database → rule-based filters and an LLM price-quality filter → three-quantile CatBoost ensemble (Modal endpoint) → web app
Results
vnappraise has collected 139,549 listings across 33 provinces and 495 districts; the index for the week ending 27 September 2026 draws on 109,236 active listings and puts the median resale time-to-sell at 50 days (346 completed listings). The valuation model’s median error is 22.6% against asking prices, out of sample, on 469 predictions in the 7 days to 30 September 2026 (apartments 18.7%); it uses no sale-price data, and its p10–p90 band covered 77.2% against a nominal 80%. Before a bank-collateral pilot it must clear four conditions it published in advance, including an out-of-sample median error of 15% or less; today it meets 1 of the 4. A screening view, labelled a preliminary filter, lists asking prices 10% or more above or below the model’s estimate.
- Mix-adjusted price index
- Quantile regression
- Gradient-boosted trees
- Tabular foundation models
- Out-of-sample validation
- Continual learning
- Open data (CC BY 4.0)